Page 4 sur 9

Re: [tuto] bloc code PHP scénario (petite commande simple)

Publié : 23 mai 2017, 21:28
par dric
Bonsoir,
J'aimerais comptabilisé la durée de filtration de ma piscine dans la journée, savez-vous récupérer une durée pour une valeur ou un état dans l'historique ?

Re: [tuto] bloc code PHP scénario (petite commande simple)

Publié : 23 mai 2017, 21:35
par toregreb
Regarde la fonction StateDuration dans la doc des scénarios.

Re: [tuto] bloc code PHP scénario (petite commande simple)

Publié : 24 mai 2017, 15:53
par dric
toregreb a écrit :
23 mai 2017, 21:35
Regarde la fonction StateDuration dans la doc des scénarios.
Top ! Je teste de suite, merci.

Re: [tuto] bloc code PHP scénario (petite commande simple)

Publié : 05 juin 2017, 16:04
par delawich
Bonjour

je chercher a exécuter une commande de ce type : http://Adresse_IP_Wemos/NEXTION,ValTemp.txt="24.5"
je n'ai pas trouver comment l'exécuter, avec les fonctions proposées dans scénario.
Je me dis qu'il est peut être possible avec des lignes de codes.

merci

Re: [tuto] bloc code PHP scénario (petite commande simple)

Publié : 06 juin 2017, 02:15
par dric
Essaie avec la fonction php :
$html = file_get_contents("http://Adresse_IP_Wemos/NEXTION,ValTemp.txt=\"24.5\"");

Re: [tuto] bloc code PHP scénario (petite commande simple)

Publié : 06 juin 2017, 05:57
par wipeout85800
le plugin script pour exécuter l'action... et le scénario qui exécute l'action du script (standard dans jeedom...) pas besoin de code php ...

Re: [tuto] bloc code PHP scénario (petite commande simple)

Publié : 10 août 2017, 23:07
par nou
Bonsoir à tous,
Je cherche à faire (dans un bloc code) la même chose qu'avec ´trigger()' ou ´triggervalue()'
Mes recherches m'ont amené qu'à une solution (partielle) : $scenario->getRealTrigger()
Est ce bien cela ?
Merci

Re: [tuto] bloc code PHP scénario (petite commande simple)

Publié : 12 août 2017, 01:20
par chocorem
Bonsoir,

je cherche a l'aide d'un code php a lister tous mes modules dimmer zwave. J'ai pense a faire une boucle sur l'id pour récupérer l'équipement, mais ensuite comment faire pour tester la nature de l'équipement ?

par ailleurs est il possible de connaitre le nombre d'ID ?

Re: [tuto] bloc code PHP scénario (petite commande simple)

Publié : 15 août 2017, 10:17
par nou
bonjour,
une autre interrogation : pourquoi est ce que le code suivant $scenario->stop(); met le scenario en erreur , alors que l'action stop dans un bloc ne le met pas en erreur ?

merci

Re: [tuto] bloc code PHP scénario (petite commande simple)

Publié : 27 sept. 2017, 15:15
par petoulachi
Bonjour à vous,

je mets en place un scénario qui se base sur des tag pour savoir quoi faire. Ca c'est ok. SAUF QUE, je ne sais pas appeler un scénario en lui donnant des tags depuis du code ?
J'ai essayé (32 étant l'ID du scénario qui prend des tag en param)

Code : Tout sélectionner

$hop = scenario::byId(32);
$tags = $hop->getTags();
$tags['#MODE#'] = 'ABSENT';
$hop->setTags($tags);
$hop->launch();
sans succès. En fait le scénario 32 n'est pas appelé à partir du moment ou je fais le setTags() et mon scénario appelant se met en erreur. Si je fais pas le setTags, bah ça l'appelle bien mais sans les tags :D

Merci de votre aide !

Re: [tuto] bloc code PHP scénario (petite commande simple)

Publié : 27 sept. 2017, 16:09
par nou
Hello,
j'ai pas tout suivi aux échanges, mais voici ce que j'ai en place chez moi :

Code : Tout sélectionner

//pour récupérer (dans le scénario cible)
$tags = $scenario->getTags();
$mode = $tags['#MODE#'];

// scénario source 
        $tags['#MODE#'] = 'absent';
        $scenarioNotification = scenario::byId(32);
        $scenarioNotification->setTags($tags);
        $scenarioNotification->launch();	


Re: [tuto] bloc code PHP scénario (petite commande simple)

Publié : 27 sept. 2017, 16:32
par petoulachi
Humpf en effet en fait mon appel fonctionne très bien, c'est le scénario appelé qui est buggé et qui ne génère aucun log du coup...

Désolé du dérangement, merci pour l'aide en tout cas, ça m'a forcé à relire mon code !

Re: [tuto] bloc code PHP scénario (petite commande simple)

Publié : 30 sept. 2017, 13:03
par petoulachi
Rebonjour par ici !

une question, je cherche à avoir pour un capteur de mouvement la derniere fois qu'il a détecté un mouvement. Le "pb", c'est que mon détecteur envoit toutes les 30 minutes son état même si rien a changé : l'historique est donc mis à jour, et utiliser
$cmd = cmd::byString("#[sondes][Mouv SdB][Mouvement]#");
$value = $cmd->execCmd();
$collectDate = $cmd->getCollectDate();
Ne va pas puisqu'il va me renvoyer la derniere mise à jour, pas la derniere fois que ça valait 1.

J'ai trouvé history::lastChangeStateDuration(IdCmd, 1); qui a l'air de faire ce que je veux, mais ça m'a l'air très couteux (il me faut plus de 5 secondes pour récupérer 5 valeurs en procédant ainsi).
Il n'y a rien de plus "light" pour le système ?

Merci !

Re: [tuto] bloc code PHP scénario (petite commande simple)

Publié : 30 sept. 2017, 18:39
par winhex
dans la config de ton virtuel / script
configuration
mettre jamais en gestion de répétition valeur.
et voit

Pour du rfx,zwave,gpio en 2.4.6
je laisse à toujours (pour verif) histo 1jours
Et je reporte sur virtuel à jamais pour scénarisé et histo à +
évite de charger la bdd et scénario déclenché souvent tous en ayant une verification.
j'ai pas essayé avec la nouvelle version mais celle d'avant :
la methode de 2 etats avec et sans toutes les remontés ne fonctionnais pas (tester avec jeedouino) une des raisons pour lequel j'attends. (patiemment sans rien dire)
je restesterai se soir

essai de voir si il n'y a pas un getstatuevalue dans l'api peut être!

Re: [tuto] bloc code PHP scénario (petite commande simple)

Publié : 28 déc. 2017, 11:35
par chryss
Bonjour à vous tous les sachants ;-),

Je ne suis pas développeur et je deviens chèvre a vouloir faire fonctionner mon code.
Voilà ma problématique :
Je veux récupérer dans une commande Jeedom un texte (darksky par exemple météo de la semaine) et convertir celui-ci avant de l'envoyer dans un Url. Je souhaite également convertir une date en français.

J'ai bien le code qui va bien, mais impossible d'agencer tout ça Grrrrr, un peu d'aide serait la bienvenue.

Alors pour la conversion c'est : "iconv('UTF-8', 'ISO-8859-1', $value)"
Pour la date c'est : "date('l d F')" et pour la conversion c'est "setlocale(LC_TIME, 'fr_FR')"
Pour l'envoie : "file_get_contents("http://ip/control?cmd=equip,obj1.txt=$value")"

Vous l'aurez peut-être compris, j'essaye d'envoyer avec Jeedom du texte (date + textes divers) a un équipement qui ne comprend que l'ISO-8859-1, c'est bête mais il ne comprend que ça.

Donc, je résume :
En 1 je récupère le texte de la commande Jeedom
En 2 je la convertie
En 3 je l'envoie a mon équipement dans un url
Idem pour la date au format : Jeudi 28 Décembre

Y a t-il une âme charitable pour me filer un coup de main ?

Re: [tuto] bloc code PHP scénario (petite commande simple)

Publié : 28 déc. 2017, 18:29
par HerveL
Salut,
Je ne suis pas spécialiste non plus, mais pourquoi ne pas utiliser le plugin script avec soit une requête action HTTP, ou encore une requête de type message qui te permettrait dans la partie title et message de faire réaliser par Jeedom des operations qui constitueront ensuite une partie de ta requete HTTP ?

Re: [tuto] bloc code PHP scénario (petite commande simple)

Publié : 28 déc. 2017, 23:06
par chryss
Je persévère car je pense que Code suffira a couvrir mon besoin, et que je touche presque au but :-)

Re: [tuto] bloc code PHP scénario (petite commande simple)

Publié : 29 déc. 2017, 17:06
par HerveL
Salut,

J'essaie désespérément de trouver comment récupérer une valeur dans un script php
Tout ce que je trouve concerne les scripts des scénarios (en même temps c'est un peu l'objet du fil) et ne semble pas fonctionner sur les scripts (du plugin script)
Exemple:

Code : Tout sélectionner

$cmd = cmd::byString("#[Maison][Motion Sensor Couloir][Présence]#");
$value = $cmd->execCmd();
$scenario->setData("test_php", $value);
retourne des fatal error en cascade sur la classe cmd, puis sur la function byString

j'ai fait un post la dessus cette nuit dont la réponse me renvoit sur ce fil (génial par ailleurs) mais ou je ne parviens pas à trouver de réponse à mon problème.

Ca n'existe pas, ou je suis trop :roll: pour le voir ?

Re: [tuto] bloc code PHP scénario (petite commande simple)

Publié : 29 déc. 2017, 18:10
par tomdom
Bonjour,

Essaie en ajoutant la ligne suivante au début de ton script (je n'ai pas testé) :

Code : Tout sélectionner

require_once dirname(__FILE__) . '/../../../../core/php/core.inc.php';

Re: [tuto] bloc code PHP scénario (petite commande simple)

Publié : 29 déc. 2017, 19:09
par HerveL
Supercool et 1000 merci !!!!
Ca fonctionne impec
Il suffisait de connaitre le bon include