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
wipeout85800
Timide
Messages : 91
Inscription : 05 sept. 2014, 06:47

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

Message par wipeout85800 » 05 mars 2017, 16:06

Bonjour, concernant le bout de code pour rendre invisible un "objet", ya une petite erreur, voila celui qui marche, a corriger sur le premier post ;) :

Code : Tout sélectionner

$o=object::byId(8);
$o->setIsVisible(0);
$p=$o->save();
J'aime les pommes,pas toi?

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

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

Message par winhex » 05 mars 2017, 22:14

je l’ajoutes mais chez moi ta méthode ne marche pas
avec le plug forescat, virtuel, ... . donc ?

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 mars 2017, 06:01

Non, y'a incompréhension entre "équipement" et "objet" du menu "outils" qui peut servir a modéliser les pièces de ta maison par exemple ... le code ci dessus cache un "objet" pas un équipement ou plugin
Par exemple mon organisation :
en général 1 objet par pièce de vie de la maison pour le dash, des virtuels dedans pour reprendre les infos de mes équipements issu de plugin qui eux sont parqué dans un objet "divers" que je rends visible quand j'ai besoin d'y retoucher, en régime établis, je n'ai donc que mes objets "piece de vie" affiché dans le dashboard ...

Donc en visuel cela donne cela :
objet "divers invisible :
2017-03-06 06_03_35-Dashboard - Jeedom.png
2017-03-06 06_03_35-Dashboard - Jeedom.png (64.74 Kio) Consulté 5346 fois
objet "divers" visible
visible Dashboard - Jeedom.png
visible Dashboard - Jeedom.png (113 Kio) Consulté 5346 fois
J'aime les pommes,pas toi?

Avatar de l’utilisateur
cyrilphoenix
Timide
Messages : 435
Inscription : 28 juil. 2015, 16:46
Localisation : 71

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

Message par cyrilphoenix » 06 mars 2017, 15:18

Je découvre ce sujet extrement intérressant, merci à l'auteur je met en favoris :)
Jeedom fan / NextDom fan
Mon Matos : RPI 3, NAS Synology, Xiaomi Gateway, Aeotec Gen5, Broadlink RM3, Clé BLEA
Mes plugins : FlipClock

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

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

Message par winhex » 06 mars 2017, 16:01

cyrilphoenix a écrit :Je découvre ce sujet extrement intérressant, merci à l'auteur je met en favoris :)
de rien c'est fait pour (à l'origine fait pour me souvenir/aide memoire perso)
wipeout85800 a écrit :Non, y'a incompréhension entre "équipement" et "objet" du menu "outils"
ok y a un decallage tu es dans le bon, désolé
objets / équipements / info | action

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

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

Message par wipeout85800 » 10 mars 2017, 08:08

wipeout85800 a écrit :Non, y'a incompréhension entre "équipement" et "objet" du menu "outils"
ok y a un decallage tu es dans le bon, désolé
objets / équipements / info | action[/quote]
Pas de soucis faut pas etre désolé, cela m'a fait potassé l'api ;-)
d'ailleurs, ce post peux aider aussi :
viewtopic.php?f=115&t=16166&p=292039&hi ... Id#p292039
J'aime les pommes,pas toi?

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 » 11 mars 2017, 08:55

plusieurs valeurs JSON en une seule passe :
Exemple a adapter en fonction de la structure de votre json ....

Code : Tout sélectionner

//
$contents = '{"emeter":{"get_realtime":{"current":0.633437,"voltage":231.162328,"power":113.206474,"total":3.106000,"err_code":0}}}'; //pour test
// Convert JSON string to Array
 $someArray = json_decode($contents, true);
// print_r($someArray); // pour visualiser le tableau en debug
$power = $someArray[emeter][get_realtime]['power'];
// print_r($power); //visualise la valeur pour debug
$scenario->setData('power',$power); // alimente la variable power
//recupere le total
$total = $someArray[emeter][get_realtime]['total'];
$scenario->setData('total',$total); // alimente la variable total
[EDIT] '$contents' peut'etre l'url de votre retour json ....

Code : Tout sélectionner

$contents = file_get_contents('http://192.168.50.18/all.json');
ou un equipment script

Code : Tout sélectionner

$contents = $scenario->getData(iddetonscript)
Dernière édition par wipeout85800 le 11 mars 2017, 10:12, édité 3 fois.
J'aime les pommes,pas toi?

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

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

Message par winhex » 11 mars 2017, 09:18

merci pour le partage j'essaierai

Avatar de l’utilisateur
bartounet
Actif
Messages : 2541
Inscription : 14 juil. 2016, 10:09

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

Message par bartounet » 11 mars 2017, 10:14

Merci.
Je suis pas du tout développeur, je ne comprend donc pas trop l’intérêt.

J'ai l'impression que tous les exemples sont faisable avec les commandes classiques Jeedom non ?
Jeedom à jour Debian 9
VM VMWARE ESXi 6.7 ( SSD)
Stick ZWave / FIBARO / Ikea Light / Yeelight / Google Home
Wifi Unifi / PFSENSE / Reverse Proxy DMZ SSL

Passionné de bidouillage informatique en tout genre
Mon blog : http://blog.info16.fr

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 » 11 mars 2017, 10:24

cela permet de limiter le nombre de requete json vers l'equipment a une seule pour récuperer toute les valeurs dispo, contrairement au plugin script qui fait une requete pour chaque info a parser ....
Dans mon cas j'ai un arduino qui collecte une 20 taines de valeurs, donc 20 requetes toutes les minutes cela lui faisai bcp...
J'aime les pommes,pas toi?

Avatar de l’utilisateur
bartounet
Actif
Messages : 2541
Inscription : 14 juil. 2016, 10:09

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

Message par bartounet » 11 mars 2017, 10:31

merci.
Je parlais du post en général.

par exemple récupérer une valeur etc ..
Jeedom à jour Debian 9
VM VMWARE ESXi 6.7 ( SSD)
Stick ZWave / FIBARO / Ikea Light / Yeelight / Google Home
Wifi Unifi / PFSENSE / Reverse Proxy DMZ SSL

Passionné de bidouillage informatique en tout genre
Mon blog : http://blog.info16.fr

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 » 11 mars 2017, 11:18

ok, dans ce cas la le post "sert a poser" des "exemples simples" que tu peux combiner pour faire des choses plus complexe pas couverte par le standard.
J'aime les pommes,pas toi?

BLM79
Timide
Messages : 57
Inscription : 16 janv. 2017, 17:36

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

Message par BLM79 » 13 mars 2017, 21:54

Merci le forum pour ces infos ! La doc est vraiment pas assez développée sur ce sujet... c'est vraiment dommage !
C'est quand même un gros avantage de pouvoir écrire ses scénarios en PHP...
Cependant un désavantage: Les appels d'objets ne seront pas mis à jour si leur nom change...
EDIT: je retire ce que j'ai dit, le nom des objets change bien si on les modifies.

Avatar de l’utilisateur
Bello65
Actif
Messages : 706
Inscription : 16 déc. 2016, 11:20
Localisation : 31

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

Message par Bello65 » 16 mars 2017, 14:25

Alors là, je suis super content :D :D :lol:
J'ai cherché depuis pratiquement mes débuts (récent soit !) sur le forum, comment changer la valeur d'une commande info d'un virtuel (ou équipement type RTS) lorsqu'on a lié le paramètre des commandes à un Etat (avant, je créé deux commandes en plus des commandes pour générer l'Etat), sans succès, et là, je tombe sur une mine d'or :o
Il faudrait vraiment que dans la doc scénario, il y ait un lien vers ce tuto, avec par exemple : Et si vous souhaitez aller plus loin dans vos scénarios, visiter ce post (adresse). J'aurai perdu moins de temps :|
Jeedom, c'est vraiment génial, merci à toutes et à tous.... :lol:
PROXMOX VM JEEDOM (NUC merci benj29 ;)) v3.3.24 Stable&Béta
RfxCom - JPI - Blue Connect (sonde piscine) - Alarme Risco - Xiaomi Home - Z Wave - BLEA - Enocean

Mes débuts de débutant

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

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

Message par toregreb » 16 mars 2017, 16:34

Tu as le post "Trucs et Astuces" (voir ma signature) qui recense les sujets intéressants du forum, dont celui-ci. Ce topic est épinglé dans les discussions générales.
C'est déjà pas mal, non ? 8-)
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
Bello65
Actif
Messages : 706
Inscription : 16 déc. 2016, 11:20
Localisation : 31

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

Message par Bello65 » 16 mars 2017, 16:46

J'y passes dans Trucs et Astuces, mais le titre ne me parlais pas (code php scénario) oulalala !!! sujet pour les programmeurs ça ;) Surtout lorsque je cherche 'changer valeur commande état'
Maintenant, je comprends le bloc code php et ces perpectives, même pour un débutant qui parle pas php :D
PROXMOX VM JEEDOM (NUC merci benj29 ;)) v3.3.24 Stable&Béta
RfxCom - JPI - Blue Connect (sonde piscine) - Alarme Risco - Xiaomi Home - Z Wave - BLEA - Enocean

Mes débuts de débutant

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

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

Message par winhex » 16 mars 2017, 20:21

le nombre de fois ou j'ai cité se sujet dans des questions !

de mon point de vue
débutant c'est tout un language à apprendre
je te rassure pour guru (non dev) aussi :
je suis incompetant dans beaucoup de domaine, c'est se qui me plais encore dans la domotique apprendre j'ai l'impression que c'est sans fin, alors vouloir tous, tous de suite ça serai gâché trêve de plaisanterie la fonction code ont y viens pas naturellement (moi non plus), tous se que tu as appris n'est pas une perte de temps c'est un cheminement dans un système actuel. tes scénario vont évoluer et toi avec (comme un language)

j'ai simplement réuni se qui se trouvait dans des sujets (perso le seul trouvé le changement de valeur dans l'historique)

il t'a fait gagné du temps et plus tard quand se sera sur une doc en fera gagné encore plus mais des etapes seront brûlé, je sais qu'apprendre n'est pas la vocation de la domotique mais pour ton futur ça te servira.

mais si tu regardes la fonction script le fait aussi (exemple market min-max date.php) une étape de plus si tu veux aller plus loin (plus de ligne)

ça viendra dans la doc
systeme, bug, plug, ticket, concevoir la smart,.. la petit équipe à de quoi faire.

après si tu (vous) veux donner un coup de main à l'équipe des sujets existent. ils acceptent

exemples simple
crée un petit scenario
changer une valeur sans cmd (ou autres)
poste le sur le market avec un petit lien pour aller plus
tu auras participé.

faut du temps et/ou de la patience

Avatar de l’utilisateur
Bello65
Actif
Messages : 706
Inscription : 16 déc. 2016, 11:20
Localisation : 31

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

Message par Bello65 » 16 mars 2017, 21:39

@winhex, c'est exactement ça, j'apprends, je regardes partout (des fois sans tout comprendre, alors j'insiste :D) puis le déclic: "Ah d'accord, c'est pour çaaaa ...."
Mais même en étant débutant, on sait ce qu'on veut faire (je ne fais pas de programme dit 'super informatique' mais dans mon taf je fais beaucoup de vba pour facilité mon travail en 'Excel', et oui, c'est la base de donnée même dans les grandes entreprises :D et je suis aussi à l'origine d'un logiciel, pour les idée et le fonctionnement)
Donc j'ai le raisonnement, mais pas encore les outils. Je les ramasse par ci, par là, et d'ailleurs, je les met dans ma présentation (pour ne pas les oublier entre autre, puis ça peut aider aussi).
Et c'est vrai, Jeedom est incroyable, énormément de flexibilité, même pour un débutant qui peut de temps en temps 'mettre ces mains de le cambouis'.
Le plus difficile est de savoir que ça existe même lorsqu'on y a pensé...
Encore merci pour ces espaces (Trucs et Astuces par exemple) qui font avancer. Je participerai peut être un jour à l'édifice, qui sait ;)
PROXMOX VM JEEDOM (NUC merci benj29 ;)) v3.3.24 Stable&Béta
RfxCom - JPI - Blue Connect (sonde piscine) - Alarme Risco - Xiaomi Home - Z Wave - BLEA - Enocean

Mes débuts de débutant

BLM79
Timide
Messages : 57
Inscription : 16 janv. 2017, 17:36

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

Message par BLM79 » 08 mai 2017, 17:22

Salut à tous,

J'ai un petit soucis. Jusque la j'ai fait mon alarme avec des scénario en mode code avec du PHP, ça a bien fonctionné.
La j'ai voulu me lancer dans autre chose: démarrer une webradio sur la squeezebox du salon le matin. Jusque la rien de bien compliqué, je teste en mode scénario avancé, ça fonctionne.
Je me met à vouloir refaire la même chose en PHP et la, ça coince: en effet, il allume bien la radio, par contre il ne modifie pas le volume et ne joue pas l'URL passée en paramètres.
Ci-joint une capture du scénario fonctionnel et de son équivalent en PHP:
Image

Ai-je fait une erreur ?

BLM79
Timide
Messages : 57
Inscription : 16 janv. 2017, 17:36

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

Message par BLM79 » 08 mai 2017, 20:05

Je me réponds: les clés des arrays n'étaient pas les bonnes.
Il a fallu inspecter les champs du formulaire pour récupérer les bonnes clés qui se trouvent dans l'attribut "data-l2key".
Du coup ça donne:

Code : Tout sélectionner

cmd::byString('#[Salon][SB Salon][Allumer]#')->execCmd();
cmd::byString('#[Salon][SB Salon][Volume]#')->execCmd(array('slider' => '100'), $cache=0);
cmd::byString('#[Salon][SB Salon][Jouer Url]#')->execCmd(array('message' => RADIO_URL), $cache=0);

Répondre

Revenir vers « Scénarios »

Qui est en ligne ?

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