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 !

[Framework SC] les scenarios en php

Cette partie est dédiée à la programmation sur le logiciel JEEDOM
Avatar de l’utilisateur
dJuL
Actif
Messages : 1427
Inscription : 28 janv. 2016, 01:37
Localisation : Ile de France

Re: [Framework SC] les scenarios en php

Message par dJuL » 22 juin 2018, 12:31

cortex a écrit :
21 juin 2018, 09:15
Dans la doc en local et sur le site il y a une petite faute de frappe dans l'exemple du wait : $sc->wait('#[Salon][Lumière][Etat] == "1"', 600);

Il manque un #

Ok merci,
J'ai corrigé la doc (ce sera dans la prochaine maj) ;)
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.

cls-scripts
Timide
Messages : 48
Inscription : 12 oct. 2017, 19:19
Localisation : Toulouse ou presque
Contact :

Re: [Framework SC] les scenarios en php

Message par cls-scripts » 10 sept. 2018, 18:49

Salut,

Je viens d'installer la bête et dans les logs , le html n'est pas interprété mais juste écrit.
Est-ce normal?

Code : Tout sélectionner

[2018-09-10 18:44:59][SCENARIO] <span style="color:#555;"> - </span><span style="font-style:italic; color:#444;">----------------------------------------</span>
[2018-09-10 18:44:59][SCENARIO] <span style="color:#555;"> - </span><span style="font-style:italic; color:#444;">- Framework sc v0.97j                  -</span>
[2018-09-10 18:44:59][SCENARIO] <span style="color:#555;"> - </span><span style="font-style:italic; color:#444;">- Vos scenarios en PHP                 -</span>
[2018-09-10 18:44:59][SCENARIO] <span style="color:#555;"> - </span><span style="font-style:italic; color:#444;">- <span style="font-size:10px;">by dJuL</span>                                -</span>
[2018-09-10 18:44:59][SCENARIO] <span style="color:#555;"> - </span><span style="font-style:italic; color:#444;">----------------------------------------</span>

Jeedom Smart, GH, IFTTT, Legrand My Home, RFXCom, EspEasy, OWL, APC.

Avatar de l’utilisateur
Jeandhom
Actif
Messages : 1386
Inscription : 20 oct. 2015, 17:32

Re: [Framework SC] les scenarios en php

Message par Jeandhom » 10 sept. 2018, 19:03

Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5

(ou bien vider le cache de votre navigateur et recharger la page).
http://rulistaff.free.fr/sc/doc/?Installation

cls-scripts
Timide
Messages : 48
Inscription : 12 oct. 2017, 19:19
Localisation : Toulouse ou presque
Contact :

Re: [Framework SC] les scenarios en php

Message par cls-scripts » 10 sept. 2018, 19:14

Merci, j'avais raté ça.
Je découvre ta class, elle est cool.
Par contre j'ai pas trouvé comment modifier la valeur un objet, l'info d'un virtuel par exemple, est-ce possible?
Jeedom Smart, GH, IFTTT, Legrand My Home, RFXCom, EspEasy, OWL, APC.

Avatar de l’utilisateur
Jeandhom
Actif
Messages : 1386
Inscription : 20 oct. 2015, 17:32

Re: [Framework SC] les scenarios en php

Message par Jeandhom » 10 sept. 2018, 19:17

Ce n'est pas ma class, mais celle à dJuL.

cls-scripts
Timide
Messages : 48
Inscription : 12 oct. 2017, 19:19
Localisation : Toulouse ou presque
Contact :

Re: [Framework SC] les scenarios en php

Message par cls-scripts » 10 sept. 2018, 19:49

ouppss désolé

sinon pour la mise à jour de l'info, une idée?
Jeedom Smart, GH, IFTTT, Legrand My Home, RFXCom, EspEasy, OWL, APC.

kthm
Timide
Messages : 23
Inscription : 21 mars 2017, 21:42

Re: [Framework SC] les scenarios en php

Message par kthm » 01 oct. 2018, 22:32

Merci pour ce framework.
Installé aujourd'hui, et mes deux scénarios de gestion de ma chaudière (les plus complexes) sont déjà convertit ! (Gestion de la mise en marche/arret de la chaudière en fonction de mes vannes thermostatiques. Le plugin Thermostat ne répondait pas à mon besoin.

De deux scénarios, je suis passé à un seul plus clair, plus fonctionnel et facilement modifiable.
Le debug coloré aide beaucoup à debogguer.

Par contre, j'ai trouvé un petit bug : Ce petit bout de code:

Code : Tout sélectionner

//DEBUG ON

for ($i=0; $i < 4; $i++) {
 $sc->setLog($i); 
}

//DEBUG OFF
Donne comme résultat :

Code : Tout sélectionner

[2018-10-01 22:25:32][SCENARIO] <span style="color:#555;"> - </span><span style="color:#D79556;">/* - Execution du Bloc code n°1 - <span style="font-weight:bold; border-bottom: 1px solid #36A2DD;">DEBUG ACTIF (dev)</span> */</span>
[2018-10-01 22:25:32][SCENARIO] <span style="color:#555;"> - </span><span style="color:#444;"><span style="color:#555;">- </span><span style="color:#555;">- </span></span>
[2018-10-01 22:25:32][SCENARIO] <span style="color:#555;"> - </span>1
[2018-10-01 22:25:32][SCENARIO] <span style="color:#555;"> - </span>2
[2018-10-01 22:25:32][SCENARIO] <span style="color:#555;"> - </span>3
[2018-10-01 22:25:32][SCENARIO] <span style="color:#555;"> - </span><span style="color:#444;"><span style="color:#555;">- </span><span style="color:#555;">- </span></span>
[2018-10-01 22:25:32][SCENARIO] <span style="color:#555;"> - </span><span style="color:#D79556;">/* - Fin du Bloc code n°1 - */</span>
Au lieu de :

Code : Tout sélectionner

[2018-10-01 22:25:32][SCENARIO] <span style="color:#555;"> - </span><span style="color:#D79556;">/* - Execution du Bloc code n°1 - <span style="font-weight:bold; border-bottom: 1px solid #36A2DD;">DEBUG ACTIF (dev)</span> */</span>
[2018-10-01 22:25:32][SCENARIO] <span style="color:#555;"> - </span><span style="color:#444;"><span style="color:#555;">- </span><span style="color:#555;">- </span></span>
[2018-10-01 22:25:32][SCENARIO] <span style="color:#555;"> - </span>0
[2018-10-01 22:25:32][SCENARIO] <span style="color:#555;"> - </span>1
[2018-10-01 22:25:32][SCENARIO] <span style="color:#555;"> - </span>2
[2018-10-01 22:25:32][SCENARIO] <span style="color:#555;"> - </span>3
[2018-10-01 22:25:32][SCENARIO] <span style="color:#555;"> - </span><span style="color:#444;"><span style="color:#555;">- </span><span style="color:#555;">- </span></span>
[2018-10-01 22:25:32][SCENARIO] <span style="color:#555;"> - </span><span style="color:#D79556;">/* - Fin du Bloc code n°1 - */</span>
J'ai mis quelques minutes à comprendre que la fonction setLog considère 0 comme false et donc n'affiche rien. N'ayant pas pris le temps de regarder tes sources, je n'ai pas vu d'où cela venait.
En tout cas, bravo pour la doc, très claire et très lisible.

Avatar de l’utilisateur
dJuL
Actif
Messages : 1427
Inscription : 28 janv. 2016, 01:37
Localisation : Ile de France

Re: [Framework SC] les scenarios en php

Message par dJuL » 03 oct. 2018, 20:59

Ahah voici justement une petite maj :D


Update du framework SC v0.97l en ligne :D


------------


Changelog v0.97l :

- Ajout dans la doc (rubrique installation) de la procédure d'utilisation du déclencheur #end_update# dans le scénario d'install
- Petites optimisations
- Correction de petits bugs concernant le log (des ' ' pouvaient apparaître sur certains systèmes dans lignes du log)

http://rulistaff.free.fr/sc


------------


* Pour installer / mettre à jour le framework :

- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :

Code : Tout sélectionner

eval(file_get_contents("http://rulistaff.free.fr/sc/install"));
- Sauvegarder le scénario
- Lancer le scénario
- Utiliser l'événement #end_update# comme déclencheur du scénario pour que le framework soit réinstallé automatiquement après une maj du CORE de Jeedom
http://rulistaff.free.fr/sc/doc/?Installation


------------


ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).

rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:

Code : Tout sélectionner

chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html
Dernière édition par dJuL le 10 févr. 2019, 19:15, édité 1 fois.
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.

Avatar de l’utilisateur
Bono2007
Timide
Messages : 182
Inscription : 27 août 2014, 19:47

Re: [Framework SC] les scenarios en php

Message par Bono2007 » 07 févr. 2019, 10:31

Bonjour, je découvre le framework et j'aime bien, ayant programmé en lua avec Fibaro.
Le framework est toujours d'actualité ? je ne vois plus de mises à jour depuis plusieurs mois de ce post.
Jeedom VM + RFXCom + Z-wave + blea sur Proxmox VE
5 volets Somfy – prises AN158 – Wallplugs – OWL CM180 – compteurs d'eau Gianola – Oeil FGMS001 – Eco-Device – sondes THGR810 - FGS 212 - FGBS321 - DS18B20 - ESCAM Pearl QF100 IP[/size]

Avatar de l’utilisateur
dJuL
Actif
Messages : 1427
Inscription : 28 janv. 2016, 01:37
Localisation : Ile de France

Re: [Framework SC] les scenarios en php

Message par dJuL » 10 févr. 2019, 19:16

Ahah voici justement une petite maj :D


Update du framework SC v0.97l en ligne :D


------------


Changelog v0.97l :

- Ajout dans la doc (rubrique installation) de la procédure d'utilisation du déclencheur #end_update# dans le scénario d'install
- Petites optimisations
- Correction de petits bugs concernant le log (des ' ' pouvaient apparaître sur certains systèmes dans lignes du log)

http://rulistaff.free.fr/sc


------------


* Pour installer / mettre à jour le framework :

- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :

Code : Tout sélectionner

eval(file_get_contents("http://rulistaff.free.fr/sc/install"));
- Sauvegarder le scénario
- Lancer le scénario
- Utiliser l'événement #end_update# comme déclencheur du scénario pour que le framework soit réinstallé automatiquement après une maj du CORE de Jeedom
http://rulistaff.free.fr/sc/doc/?Installation


------------


ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).

rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:

Code : Tout sélectionner

chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.

Avatar de l’utilisateur
Bono2007
Timide
Messages : 182
Inscription : 27 août 2014, 19:47

Re: [Framework SC] les scenarios en php

Message par Bono2007 » 18 févr. 2019, 11:03

Bonjour, je me suis lancé dans les blocs code.
A la base je veux récupérer dans des variables pleins d'informations issues de suivi conso (conso à j-2 j-1 j s-2 s-1.... -> la faute à benj29 ;-) ).
J'ai déjà créé un scénar avec les blocs actions et variable... mais je n'aime pas du tout la forme (c'est juste personnel, je viens de Fibaro et lua).
J'ai créé donc un bloc code en utilisant ton framework et ... c'est top.

Code : Tout sélectionner

$sc->setVar('conso_electricite_m_HP',$sc->getCmd('#[Maison][ConsoEDF][Conso Mois HP]#'),true);
$sc->setVar('conso_electricite_m_HC',$sc->getCmd('#[Maison][ConsoEDF][Conso Mois HC]#'),true);
Avec un fichier excel, on arrive facilement à générer une vingtaine de lignes.

Petit problème :

Code : Tout sélectionner

$sc->setVar('conso_electricite_m_1_HP',$sc->getCmd('maxBetween(#[Maison][ConsoEDF][Conso Mois HP]#,last day of 1 months ago noon,last day of 1 months ago 23:59)'),true);
Impossible de trouver la commande #maxBetween(#3985#,last day of 1 months ago noon,last day of 1 months ago 23:59)#

Des idées ? merci.
Jeedom VM + RFXCom + Z-wave + blea sur Proxmox VE
5 volets Somfy – prises AN158 – Wallplugs – OWL CM180 – compteurs d'eau Gianola – Oeil FGMS001 – Eco-Device – sondes THGR810 - FGS 212 - FGBS321 - DS18B20 - ESCAM Pearl QF100 IP[/size]

Avatar de l’utilisateur
dJuL
Actif
Messages : 1427
Inscription : 28 janv. 2016, 01:37
Localisation : Ile de France

Re: [Framework SC] les scenarios en php

Message par dJuL » 18 févr. 2019, 12:21

Oui car getCmd sert uniquement a retrouver des valeurs de commandes de type info.
Pour ce que tu veux faire, à savoir traiter une expression Jeedom, il faut utiliser getExp :

http://rulistaff.free.fr/sc/doc/?class-sc#_getExp

;)

Code : Tout sélectionner

$sc->setVar('conso_electricite_m_1_HP',$sc->getExp('maxBetween(#[Maison][ConsoEDF][Conso Mois HP]#,last day of 1 months ago noon,last day of 1 months ago 23:59)'),true);

Pour compléter ma réponse (image issue de la doc) :

sc.gif
sc.gif (29.49 Kio) Consulté 3315 fois
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.

caplam
Actif
Messages : 646
Inscription : 02 déc. 2014, 15:36

Re: [Framework SC] les scenarios en php

Message par caplam » 23 avr. 2019, 22:24

Il y avait bien longtemps que je n'avais pas touché à mes scenarios.
Je suis en train d'en convertir un avec l'emploi du framework sc.
Je me pose une question : chaque bloc code est-il indépendant ?
je defini une variable (pas une variable jeedom) dans le bloc n°1 mais quand je veux l'utiliser dans un autre bloc (du même scenario) elle est à "null"
C'est normal ?
Jeedom sur vm esxi stretch
Principaux plugins: eibd, homebridge, maxcube, icalendar

Avatar de l’utilisateur
dJuL
Actif
Messages : 1427
Inscription : 28 janv. 2016, 01:37
Localisation : Ile de France

Re: [Framework SC] les scenarios en php

Message par dJuL » 23 avr. 2019, 22:52

Il faut utiliser setVar pour créer une variable SC temporaire, récupérable et dans les blocs visuels, et dans les blocs code (avec getVar) n'importe où au sein du scénario.

http://rulistaff.free.fr/sc/doc/?class-sc#_setVar

http://rulistaff.free.fr/sc/doc/?Utilisation => scroller jusqu'à : ★ Mixer les blocs
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.

caplam
Actif
Messages : 646
Inscription : 02 déc. 2014, 15:36

Re: [Framework SC] les scenarios en php

Message par caplam » 24 avr. 2019, 08:48

ok j'étais passé à côté de la distinction variable de classe et de jeedom.

En lisant les exemples de code que tu donnes je me pose d'autres questions:

Code : Tout sélectionner

$inter_etat = array(
      '#[Cachés][Lampe bureau][Intensité]#',
      '#[Cachés][Lampe Yanna][Intensité]#',
      '#[Cachés][Lampe oeuf][Intensité]#',
      '#[Cachés][Lampe salon][Intensité]#'
  );

ou

Code : Tout sélectionner

if ($sc->getcond('#[Salon][Lampes salon][Etat]# < #[Salon][Lampes salon][Val_Demandée]#'))
tu ne passes pas par getCmd pour récupérer l'état des lampes ?
Jeedom sur vm esxi stretch
Principaux plugins: eibd, homebridge, maxcube, icalendar

pierrot87
Timide
Messages : 78
Inscription : 12 oct. 2018, 18:58

Re: [Framework SC] les scenarios en php

Message par pierrot87 » 16 mai 2019, 21:52

Bonsoir,
je désire récupérer le nom de l'utilisateur logué pour ouvrir un design en fonction de l'utilisateur
comment faire
cordialement

ffp17
Timide
Messages : 280
Inscription : 02 sept. 2016, 23:09
Localisation : 17

Re: [Framework SC] les scenarios en php

Message par ffp17 » 17 mai 2019, 07:14

pierrot87 a écrit :Bonsoir,
je désire récupérer le nom de l'utilisateur logué pour ouvrir un design en fonction de l'utilisateur
comment faire
cordialement
Bonjour
Je chercher également la même chose depuis quelques temps mais pas encore trouvé. J'ai ouvert un post à ce sujet où j'ai mis ce que j'ai pour le moment
https://r.tapatalk.com/shareLink?url=ht ... are_type=t
Si tu trouves je suis intéressé évidemment.
Bonne journée

Envoyé de mon ONEPLUS A6013 en utilisant Tapatalk


Avatar de l’utilisateur
dJuL
Actif
Messages : 1427
Inscription : 28 janv. 2016, 01:37
Localisation : Ile de France

Re: [Framework SC] les scenarios en php

Message par dJuL » 14 juin 2019, 20:19

caplam a écrit :
24 avr. 2019, 08:48

Code : Tout sélectionner

if ($sc->getcond('#[Salon][Lampes salon][Etat]# < #[Salon][Lampes salon][Val_Demandée]#'))
tu ne passes pas par getCmd pour récupérer l'état des lampes ?

getCond utilise le moteur d'expressions Jeedom (tout comme si la condition serait écrite dans un bloc si / sinon)
Si tu regarde bien le signe < est dans une chaine de texte et n'est donc pas évalué dans une condition php.

en gros ça :

Code : Tout sélectionner

if ($sc->getCond('#[Salon][Lampes salon][Etat]# < #[Salon][Lampes salon][Val_Demandée]#'))
est équivalent à ça :

Code : Tout sélectionner

if ($sc->getcmd('#[Salon][Lampes salon][Etat]#') < $sc->getcmd('#[Salon][Lampes salon][Val_Demandée]#'))
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.

Avatar de l’utilisateur
dJuL
Actif
Messages : 1427
Inscription : 28 janv. 2016, 01:37
Localisation : Ile de France

Re: [Framework SC] les scenarios en php

Message par dJuL » 14 juin 2019, 20:22

Sinon je viens de voir qu'il y a un pet avec l'installeur, la fonction tag() du moteur jeedom est retirée...
Je vais corrigé ça et en même temps faire quelques améliorations.
(Je suis entrain de corriger l'installeur pour qu'il ne télécharge plus l'archive si non nécessaire, avec une option tout de même pour forcer l'installation complète)
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.

Avatar de l’utilisateur
dJuL
Actif
Messages : 1427
Inscription : 28 janv. 2016, 01:37
Localisation : Ile de France

Re: [Framework SC] les scenarios en php

Message par dJuL » 15 juin 2019, 02:07

Update du framework SC v0.98 en ligne :D


ATTENTION, SI VOUS AVEZ DEJA LE FRAMEWORK INSTALLÉ, AVANT DE FAIRE LA MAJ :

Vous devez
- soit forcer une maj du core de Jeedom pour restaurer les fichiers,
- soit exécuter le code suivant dans un scénario :

Code : Tout sélectionner

$jf=realpath(dirname(getcwd())).'/class/scenarioExpression.class.php';
copy($jf.'.bak', $jf);
$jf=realpath(dirname(getcwd())).'/class/scenario.class.php';
copy($jf.'.bak', $jf);
$jf=realpath(dirname(getcwd())).'/js/log.class.js';
copy($jf.'.bak', $jf);


------------


Changelog v0.98 :

- Refonte complète de l'installation / mise à jour.
La version est vérifiée en ligne
L'archive n'est plus téléchargée et installée en cas de maj non disponible.
Les modifications des fichiers du core de Jeedom sont faites uniquement si nécessaires (par exemple après une maj de jeedom)
- Correction d'un bug qui supprimait l'action tag() dans le moteur d'expression de Jeedom
- Correction d'un bug concernant le rafraîchissement de Jeedom
- Suppression des actions obsolètes
- Ajout de la fonction $sc->jeedom_reboot() (redémarre Jeedom)
- Ajout de la fonction $sc->setTag() (pour modifier / définir des tags de scénario)
- Maj de la librairie sc_install
Suppression des références au thème darksobre, car trop modifié depuis par la team Jeedom
Ajout d'une option pour forcer la réinstallation du framework (même si pas de maj disponible)
- Maj de la doc (installation, fonctions, syntaxe, et liens morts vers la doc jeedom)
- Diverses petites corrections et optimisations


http://rulistaff.free.fr/sc


note: le framework et l'installeur restent compatibles avec les version 2.x de Jeedom (si ce n'est que les nouvelles fonctions ne marcheront pas)

------------


* Pour installer / mettre à jour le framework :

- Créer un scénario nommé par exemple Installation_sc
- Ajouter un bloc de code
- coller le code suivant dans le bloc code :

Code : Tout sélectionner

eval(file_get_contents("http://rulistaff.free.fr/sc/install"));
- Sauvegarder le scénario
- Lancer le scénario
- Utiliser l'événement #end_update# comme déclencheur du scénario pour que le framework soit réinstallé automatiquement après une maj du CORE de Jeedom
http://rulistaff.free.fr/sc/doc/?Installation


------------


ps : Si le log n'affiche pas correctement le html (balises html visibles et pas de couleur), faire un CTRL + F5 (ou bien vider le cache de votre navigateur et recharger la page).

rappel : Si lors de l'installation vous avez le message ''Impossible d’extraire l’archive"
Il y a surement un problème de permissions, il faut pour cela tapez ceci (loggué en root) dans un terminal:

Code : Tout sélectionner

chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html
Dernière version de JPI
Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l'interface web si vous souhaitez soutenir le projet.

Répondre

Revenir vers « Développements sur Jeedom »

Qui est en ligne ?

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