Ce Forum passera en lecture seule en janvier 2020
Image
Merci de vous rendre sur https://community.jeedom.com maintenant pour vos prochains postes ;)

[Framework SC] les scenarios en php

Cette partie est dédiée à la programmation sur le logiciel JEEDOM
nou
Actif
Messages : 557
Inscription : 17 mai 2015, 00:17

Re: [Framework SC] les scenarios en php

Message par nou » 18 déc. 2016, 09:27

jeedom/core/js/log.class.js
à la ligne 160, remplacer :
_params.display.text(log); par _params.display.html(log);

Avatar de l’utilisateur
domoggvad
Actif
Messages : 1880
Inscription : 29 avr. 2015, 16:02
Localisation : Seine-Saint-Denis (Villepinte)

Re: [Framework SC] les scenarios en php

Message par domoggvad » 18 déc. 2016, 14:35

dJuL a écrit :
nou a écrit :Bonsoir,
les derniers échanges me font m'interroger (probablement pour rien) : le framework sera t il maintenu dans le temps, ou faut il commencer à basculer ces scripts php en les rendant indépendant de la classe ?

Bonne soiré
Tant que ça marche aucune raison de basculer...
Sinon oui je vais faire en sorte qu'il continu à marcher. ;)
Bonjour dJul,
bizarre mon affichage de log, ai-je raté quelque chose ?
merci
Pièces jointes
php.png
php.png (122.76 Kio) Consulté 967 fois
3 Odroid C2 (Prod - secours - test) Z83 tests: rfxcom + Z-wave- Clims DAIKIN - espeasy - thekey - Xiaomi - Telinfo - broadlink... widget V3 :viewtopic.php?f=29&t=44183&p=717810#p717810

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 déc. 2016, 15:09

dJuL a écrit : Sinon pour avoir le log html, je le remet au cas où, il faut faire cette modif (faut que je l'intègre dans l'installeur un de ces 4)
dJuL a écrit :Pour corriger les pb d'affichage du log c'est très simple :

/jeedom/core/js/log.class.js

remplacer ligne 160 :

Code : Tout sélectionner

_params.display.text(log);
par

Code : Tout sélectionner

_params.display.html(log);
Puis CTRL + F5 ou bien vider le cache du navigateur pour prendre en compte la modif ;)
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
domoggvad
Actif
Messages : 1880
Inscription : 29 avr. 2015, 16:02
Localisation : Seine-Saint-Denis (Villepinte)

Re: [Framework SC] les scenarios en php

Message par domoggvad » 18 déc. 2016, 15:26

Un grand merci

Envoyé de mon HUAWEI VNS-L31 en utilisant Tapatalk
3 Odroid C2 (Prod - secours - test) Z83 tests: rfxcom + Z-wave- Clims DAIKIN - espeasy - thekey - Xiaomi - Telinfo - broadlink... widget V3 :viewtopic.php?f=29&t=44183&p=717810#p717810

DERLOUX
Timide
Messages : 19
Inscription : 27 nov. 2015, 21:42

Re: [Framework SC] les scenarios en php

Message par DERLOUX » 18 déc. 2016, 21:18

Super merci

Bostoc
Timide
Messages : 129
Inscription : 08 déc. 2016, 20:15

Re: [Framework SC] les scenarios en php

Message par Bostoc » 14 janv. 2017, 00:30

Super travail, moi qui me demandais si j'allais pouvoir donner du php à jeedom au petit déjeuner !

Vais me faire un projet "WAF liste de course" en php je pense.
NUC Debian / Zwave / RfxCom / EnOcean

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 juil. 2017, 13:14

Pour info aucun pb avec la V3 de jeedom
Je vais essayer de mettre à jour l'installeur dans la semaine afin d'avoir la modif du log (pour affichage 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
m.georgein
Timide
Messages : 299
Inscription : 18 mars 2016, 23:46
Localisation : 13820

Re: [Framework SC] les scenarios en php

Message par m.georgein » 03 juil. 2017, 13:17

On aura aussi droit au passage de param dans les scénarios ??? ;)
Plateforme :
NUCNUC6i5SYK en VM STRETCH
Version Jeedom 4.0.9
Version PHP 7.0.33-0+deb9u1
Version OS Linux debian9 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux [9.6]
Version database 10.1.26-MariaDB-0+deb9u1

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

Re: [Framework SC] les scenarios en php

Message par nou » 03 juil. 2017, 13:48

super !

merci du retour !
(le framework étant tellement bien intégré, que je l'ai oublié dans ma checklist pré migration v3...)

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 juil. 2017, 19:31

m.georgein a écrit :
03 juil. 2017, 13:17
On aura aussi droit au passage de param dans les scénarios ??? ;)
Oui je vais rajouter ce qui manque :
- paramètre tags pour la fonction de contrôle des scenarios
- jeedom_poweroff
- scenario_return (interaction)

Dites moi si il faut d'autres trucs ;)
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 » 06 juil. 2017, 20:12

Update du framework SC v0.9 en ligne :D

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

* Refonte de l'installeur / dé-sinstaleur :
- Optimisations
- Vérifications accrues
- Désinstallation automatique si echec durant l'installation
- Modification automatique des fichiers de jeedom pour que le log soit pris en compte en html

* Mise à jour de la documentation :
- Démarrage / Installation
- Démarrage / Vérification
- Nouvelles fonctions du framework ajoutées

* Prises en compte des tags passés en paramètre dans les scénarios :
- Tags exploitables via les fonctions du framework (getTag, getExp, getCond)
- Ajouts du paramètre $tags dans la fonction sc::scenario:
http://rulistaff.free.fr/sc/doc/?class-sc#_scenario

* Nouvelles fonctions :

- sc::htmlLog (Active ou désactive le html dans le log) :
http://rulistaff.free.fr/sc/doc/?class-sc#_htmlLog

- sc::scenario_return (Texte ou une valeur de retour du scénario) :
http://rulistaff.free.fr/sc/doc/?class- ... rio_return

- sc::alert (Permet d’afficher un message d’alerte avec 4 niveaux) :
http://rulistaff.free.fr/sc/doc/?class-sc#_alert

- sc::popup (Permet d’afficher un popup) :
http://rulistaff.free.fr/sc/doc/?class-sc#_popup

- sc::jeedom_poweroff (Demande à Jeedom de s’éteindre) :
http://rulistaff.free.fr/sc/doc/?class- ... m_poweroff

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

* 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
http://rulistaff.free.fr/sc/doc/?Installation

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

Voilou ;)

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
Theduck38
Helper
Messages : 2714
Inscription : 22 févr. 2015, 17:32
Localisation : Près de Grenoble
Contact :

Re: [Framework SC] les scenarios en php

Message par Theduck38 » 06 juil. 2017, 20:19

Bonjour,

C'est toujours compatible avec la version 2.4.6 de Jeedom ? J'ai mis un scénario d'update automatique toutes les nuits, mais je n'ai pas encore migré... et j'ai pas envie de tout casser !
-- TD38 --
Helper Officiel Jeedom
Zimeteo sur Jeedom : http://www.meteo.lecoin.info
Jeedom Stable sur serveur custom
Le risque électrique - Afficheur leds RGB - Tablette Murale - Thermostat connecté

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 » 06 juil. 2017, 20:28

En théorie oui, aucun soucis (mis à part que certaines nouveautés liées à la V3 ne marcheront pas)
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
Theduck38
Helper
Messages : 2714
Inscription : 22 févr. 2015, 17:32
Localisation : Près de Grenoble
Contact :

Re: [Framework SC] les scenarios en php

Message par Theduck38 » 06 juil. 2017, 23:28

Oki, merci !
-- TD38 --
Helper Officiel Jeedom
Zimeteo sur Jeedom : http://www.meteo.lecoin.info
Jeedom Stable sur serveur custom
Le risque électrique - Afficheur leds RGB - Tablette Murale - Thermostat connecté

Avatar de l’utilisateur
m.georgein
Timide
Messages : 299
Inscription : 18 mars 2016, 23:46
Localisation : 13820

Re: [Framework SC] les scenarios en php

Message par m.georgein » 09 juil. 2017, 13:13

Bonjour,
Il doit y avoir un truc qui m'échappe :(
Impossible de récupérer les tags envoyés par un scénario.
j'appelle avec :

Code : Tout sélectionner

sc::scenario(119, 'start', 'toto=1 titi=2');
et dans le scenario cible je met

Code : Tout sélectionner

echo sc::getTag('#toto#');
et au résultat sc me met dans les logs

Code : Tout sélectionner

WARNING: getTag() - L'évaluation du tag a échoué ( #toto# = #toto# )
Je me suis endormi à quel moment ???? :(
Plateforme :
NUCNUC6i5SYK en VM STRETCH
Version Jeedom 4.0.9
Version PHP 7.0.33-0+deb9u1
Version OS Linux debian9 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux [9.6]
Version database 10.1.26-MariaDB-0+deb9u1

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 » 09 juil. 2017, 21:49

Effectivement j'ai réussi à reproduire en créant 2 scénarios de test.
Bizarrement je n'ai pas ce pb avec mes vieux scénarios...

En fait il se trouve que le 2ème scénario est exécuté dans le même runtime que le scénario déclencheur, ce qui fait que le contexte du framework n'est plus le bon car il croit qu'il est encore dans le 1er scénario.
Du coup le log du scénario déclenché se trouve dans le log du scénario déclencheur, et forcément les tags envoyés n'arrivent pas car on est dans le mauvais contexte.
Ce n'était pas le cas avant avec la v2.6.4
Surement une optimisation des devs pour éviter de relancer un runtime.

Du coup j'ai du réécrire toutes les classes :o , et du coup forcément nous ne sommes plus sur des fonction statiques pour pallier au pb.
Cela veut dire concrètement que vous allez devoir modifier la syntaxe de tous vos scénarios !

Par exemple :
sc::getTag('montag');
deviendra
$sc->getTag('montag');
Il faudra que vous modifiez partout.

Je dois encore mettre à jour l'installeur et la doc, puis tout tester, donc la nouvelle version sera en ligne d'ici quelques jours...
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
m.georgein
Timide
Messages : 299
Inscription : 18 mars 2016, 23:46
Localisation : 13820

Re: [Framework SC] les scenarios en php

Message par m.georgein » 10 juil. 2017, 11:45

Je reviens sur le problème de passage de tag, en fait cela fonctionne très bien avec sc, le problème n'existe que SI le scénario qui reçoit les tags est en mode "Synchrone", si il ne l'est pas le passage de tag fonctionne sans problème.
Cela pourrait expliquer pourquoi tes anciens scénarios fonctionnent et pas les nouveaux, d'autant que la case à cocher "Synchrone" semble impossible à décocher en 3.09 (elle se recoche systématiquement à l'enregistrement).

PS : Je viens de vérifier tous mes autres scénarios (une centaines), je n'en avais qu'un autre coché en synchrone et lui j'ai pu le décocher ...

En attendant cela va peut être t'épargner la réécriture de tes class j'espère !!!
Plateforme :
NUCNUC6i5SYK en VM STRETCH
Version Jeedom 4.0.9
Version PHP 7.0.33-0+deb9u1
Version OS Linux debian9 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux [9.6]
Version database 10.1.26-MariaDB-0+deb9u1

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 juil. 2017, 13:05

Ah cool merci pour l'explication / confirmation du mode synchrone
Me disais bien que ça venait de ça mais effectivement ça semble buggué avec la 3.09 donc je ne pouvais pas décocher et sauver sur mes scénarios de test.
Bon de toutes façons c'est trop tard, j'ai déjà tout ré-écrit...
Comme ça ça marchera aussi en mode synchrone ;)
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 » 11 juil. 2017, 10:55

Update du framework SC v0.91 en ligne :D

Cette version est une refonte totale afin de supporter les scénarios imbriqués en mode synchrones.
Le framework n'est plus statique.

ATTENTION, CHANGEMENT DE SYNTAXE !

Code : Tout sélectionner

sc::getTag('montag');
devient

Code : Tout sélectionner

$sc->getTag('montag');
--------

Code : Tout sélectionner

//Charge la librairie install
sc::load('install');
//Lance la mise à jour/réinstallation du framework sc
sc_install::update_sc();
devient

Code : Tout sélectionner

//Charge la librairie install
$sc->load('install');
//Lance la mise à jour/réinstallation du framework sc
$sc->install->update_sc();

Il faut mettre à jour tous vos scénarios après avoir fait la maj !

http://rulistaff.free.fr/sc/doc/?Utilisation


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

* Refonte de l'installeur / dé-sinstaleur :
- Nouvelles modifications des fichiers de jeedom pour supporter le mode synchrone

* Mise à jour de la documentation :
- Maj des rubriques Installation manuelle / Vérification
- Maj afin d'afficher la nouvelle syntaxe du framework dans toutes les rubriques (textes, images, exemples...)

* Maj des librairies :
- Maj des fichiers pour supporter le mode synchrone et la nouvelle syntaxe
- Suppression de la librairie sc_test

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

* 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
http://rulistaff.free.fr/sc/doc/?Installation


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


Voili voilou ;)

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
@todo : Librairie JPI pour pouvoir facilement interagir avec JPI grâce au framework (support natif de toutes les actions !)
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
m.georgein
Timide
Messages : 299
Inscription : 18 mars 2016, 23:46
Localisation : 13820

Re: [Framework SC] les scenarios en php

Message par m.georgein » 11 juil. 2017, 12:46

Après install nickel du new framework, et SANS AUCUN appel à celui ci je vois apparaître par dizaine cette ligne dans les logs :

Code : Tout sélectionner

PHP Warning:  Missing argument 2 for scenarioExpression::variable() in /var/www/html/core/class/scenarioExpression.class.php on line 623
PHP Notice:  Undefined variable: _name in /var/www/html/core/class/scenarioExpression.class.php on line 624
Les logs des scénarios eux sont totalement vide mais pourtant ils semblent fonctionner normalement....

Si je désisntalle sc tout redevient normal
Plateforme :
NUCNUC6i5SYK en VM STRETCH
Version Jeedom 4.0.9
Version PHP 7.0.33-0+deb9u1
Version OS Linux debian9 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux [9.6]
Version database 10.1.26-MariaDB-0+deb9u1

Répondre

Revenir vers « Développements sur Jeedom »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité