Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

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

Réservé à la création de scénarios dans JEEDOM
Avatar de l’utilisateur
dric
Timide
Messages : 188
Inscription : 12 juil. 2016, 15:53

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

Message par dric » 23 mai 2017, 21:28

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 ?

toregreb
Actif
Messages : 2510
Inscription : 20 août 2014, 22:19

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

Message par toregreb » 23 mai 2017, 21:35

Regarde la fonction StateDuration dans la doc des scénarios.
Jeedom v2.2.6 sur RPi2+razberry (Zwave)+RFXCom, Enocean et MySensors.
[TUTO]Index HP/HC avec pinces Ampèremétriques
Trucs&Astuces

Avatar de l’utilisateur
dric
Timide
Messages : 188
Inscription : 12 juil. 2016, 15:53

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

Message par dric » 24 mai 2017, 15:53

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

delawich
Timide
Messages : 257
Inscription : 11 nov. 2015, 11:31

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

Message par delawich » 05 juin 2017, 16:04

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

Avatar de l’utilisateur
dric
Timide
Messages : 188
Inscription : 12 juil. 2016, 15:53

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

Message par dric » 06 juin 2017, 02:15

Essaie avec la fonction php :
$html = file_get_contents("http://Adresse_IP_Wemos/NEXTION,ValTemp.txt=\"24.5\"");

Avatar de l’utilisateur
wipeout85800
Timide
Messages : 91
Inscription : 05 sept. 2014, 06:47

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

Message par wipeout85800 » 06 juin 2017, 05:57

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 ...
J'aime les pommes,pas toi?

nou
Actif
Messages : 557
Inscription : 17 mai 2015, 00:17

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

Message par nou » 10 août 2017, 23:07

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

chocorem
Timide
Messages : 216
Inscription : 26 juin 2016, 20:54

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

Message par chocorem » 12 août 2017, 01:20

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 ?
Armbian DIY Bananapro
- Z wave : 14xFGRM-222, 11xFGD-211, 2xFGS-211, 7xFGS-221, 3xWallPlug FGWPE-101, 2xRGBW, 6xFGMS-001, Téléc Aeon Labs Porteclé + 2xDSA03202
- Netatmo, Karotz, Withings
- NAS Thecus N7700Pro avec Ubuntu Server
- IBM X3650 avec ESXI

nou
Actif
Messages : 557
Inscription : 17 mai 2015, 00:17

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

Message par nou » 15 août 2017, 10:17

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

petoulachi
Timide
Messages : 128
Inscription : 24 mars 2015, 10:29

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

Message par petoulachi » 27 sept. 2017, 15:15

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 !

nou
Actif
Messages : 557
Inscription : 17 mai 2015, 00:17

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

Message par nou » 27 sept. 2017, 16:09

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();	


petoulachi
Timide
Messages : 128
Inscription : 24 mars 2015, 10:29

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

Message par petoulachi » 27 sept. 2017, 16:32

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 !

petoulachi
Timide
Messages : 128
Inscription : 24 mars 2015, 10:29

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

Message par petoulachi » 30 sept. 2017, 13:03

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 !

winhex
Actif
Messages : 3799
Inscription : 23 janv. 2015, 01:41

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

Message par winhex » 30 sept. 2017, 18:39

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!

chryss
Timide
Messages : 17
Inscription : 28 déc. 2017, 11:17

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

Message par chryss » 28 déc. 2017, 11:35

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 ?

Avatar de l’utilisateur
HerveL
Timide
Messages : 478
Inscription : 11 sept. 2015, 22:46
Localisation : Nantes

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

Message par HerveL » 28 déc. 2017, 18:29

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 ?
Hervé
Utilisateur Mini+ et SMART passionné
Zwave, IPX800V3, IPX800V4, Rfxcom, RFP1000

chryss
Timide
Messages : 17
Inscription : 28 déc. 2017, 11:17

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

Message par chryss » 28 déc. 2017, 23:06

Je persévère car je pense que Code suffira a couvrir mon besoin, et que je touche presque au but :-)

Avatar de l’utilisateur
HerveL
Timide
Messages : 478
Inscription : 11 sept. 2015, 22:46
Localisation : Nantes

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

Message par HerveL » 29 déc. 2017, 17:06

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 ?
Hervé
Utilisateur Mini+ et SMART passionné
Zwave, IPX800V3, IPX800V4, Rfxcom, RFP1000

Avatar de l’utilisateur
tomdom
Actif
Messages : 925
Inscription : 14 nov. 2016, 05:46

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

Message par tomdom » 29 déc. 2017, 18:10

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';
Il y a 10 catégories de personnes, celles qui connaissent le binaire et les autres
.

Avatar de l’utilisateur
HerveL
Timide
Messages : 478
Inscription : 11 sept. 2015, 22:46
Localisation : Nantes

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

Message par HerveL » 29 déc. 2017, 19:09

Supercool et 1000 merci !!!!
Ca fonctionne impec
Il suffisait de connaitre le bon include
Hervé
Utilisateur Mini+ et SMART passionné
Zwave, IPX800V3, IPX800V4, Rfxcom, RFP1000

Répondre

Revenir vers « Scénarios »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités