[Framework SC] les scenarios en php

Salut,

Alors je trouve les scénarios de jeedom très bien foutus, avec les blocs, mais jeedom étant super ouvert ça donne toujours envie d’en faire plus.
Je me suis retrouvé parfois à faire des conditions à rallonge, avec des blocs dans des blocs…
Et là j’ai commencé a regarder le code source de jeedom pour pouvoir faire mes scénarios en php.
Puis du coup je me suis dit autant faire une classe que ce soit plus propre dans les balises codes.
Puis là je me dis peut être que ça peut intéresser du monde, pour ceux qui connaissent un peu la programmation.

Voilà donc l’idée, un petit framework pour manier tous les objets et fonctions propre à jeedom facilement dans des blocs codes.
Voici les avantages que je trouve à cette technique :

  • Permet d’avoir toute la puissance du langage php
  • Permet de facilement réadapter des script en LUA
  • Permet de créer des opération rapides en une ligne qui prendrait 20 blocs en mode visuel
  • Peut se découper en autant de blocs code que l’on veut (pratique pour déboguer, permet de désactiver un bloc…)
  • reste compatible à 100% avec les blocs visuel (d’où l’autre avantage de splitter les blocs de code : pouvoir insérer des blocs classiques entre les blocs de code)
  • Log détaillé
  • Utilise une architecture avec des librairies, infini ou presque en évolutions et en possibilités
  • Encore plus geek ! :grin:

Pour consulter la documentation et la procédure d’installation, ça se passe ici :
https://www.jpi-domotique.com/sc

La doc est assez complète et comporte des exemples complet ainsi qu’un exemple d’utilisation pour chaque fonction.

Voilou ! :wink:

Lien vers l’ancien forum pour voir les anciens changelog:
https://forum.jeedom.com/viewtopic.php?f=27&t=17645


*** 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 :

eval(file_get_contents("https://www.jpi-domotique.com/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
    https://www.jpi-domotique.com/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:

chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html

pps: beaucoup de boulot en ce moment, mais une petite maj ne devrait pas tarder.


Pour améliorer l’affichage des blocs codes et des logs :

5 « J'aime »

Bonjour @dJuL
Ca fait un bout de temps…

C’est compatible jeedom v3 et v4?
Merci

Salut @domoggvad
V3 oui, V4 il parait que oui mais j’ai pas encore eu le temps de tester faute de temps…

@Alexandre,

Ce serait possible d’avoir un tag « Framework_SC » ?

Je viens de passer en V4.
Le framework est nickel, installation et utilisation de base OK
J’ai pas encore tout testé, je suis entrain de refaire mes widgets…

2 « J'aime »

Comme

Je suis aussi passé en V4.
Le seul problème rencontré, c’est le scénario de réinstall du framework qui ne s’est pas déclenché sur l’évènement provoqué #end_update# .

Curieux car chez moi il s’est déclenché direct à la fin de la maj en V4…

Oui, surtout que je n’ai jamais eu de problème lors des nombreuses mise à jour en V3.

Update du framework SC v0.98f en ligne :slightly_smiling_face:


Changelog v0.98f :

  • Validation pour Jeedom v4
  • Correction de warning intempestif dans les log Jeedom avec PHP v7 (avec la librairie JPI notamment)
  • Ajout du temps d’exécution des blocs codes du scénario
  • Diverses petites corrections et optimisations (je ne me souviens plus de tout car il a des vieilles modifs).
  • Reste compatible avec Jeedom v3.xx

Pour améliorer l’affichage des blocs codes et des logs :

1 « J'aime »

Tiens, bientôt deux ans que j’utilise ton Framework.
Merci.

1 « J'aime »

Update du framework SC v0.98g en ligne :slightly_smiling_face:


Changelog v0.98g :

  • Modification de l’action scenario qui retournait NULL au lieu de true avec les actions ‹ stop ›, ‹ deactivate ›, ‹ activate ›, ‹ resetRepeatIfStatus ›
  • Diverses petites corrections et optimisations.
  • Compatible avec Jeedom v3.xx et Jeedom v4

Pour améliorer l’affichage des blocs codes et des logs :

1 « J'aime »

Update du framework SC v0.98h en ligne :slightly_smiling_face:


Changelog v0.98h :

  • Mise à jour de la librairie sc jpi en v0.98 afin de supporter les nouvelles acrions de JPI v0.98
  • Diverses petites corrections et optimisations.
  • Compatible avec Jeedom v3.xx et Jeedom v4

Pour améliorer l’affichage des blocs codes et des logs :

1 « J'aime »

Update du framework SC v0.98i en ligne :slightly_smiling_face:


Changelog v0.98i :

  • Mise à jour de la librairie sc jpi en v0.985 afin de supporter en natif les nouvelles actions de JPI v0.983 et de JPI v0.985
  • Diverses petites corrections et optimisations.
  • Compatible avec Jeedom v3.xx et Jeedom v4

Pour améliorer l’affichage des blocs codes et des logs :


Pour installer le framework SC c’est ICI

Update du framework SC v0.98j en ligne :slightly_smiling_face:


Changelog v0.98j :

  • Mise à jour de la librairie sc jpi en v0.986 afin de supporter en natif les actions de JPI v0.986.
  • Compatible avec Jeedom v3.xx et Jeedom v4

Pour améliorer l’affichage des blocs codes et des logs :


Pour installer le framework SC c’est ICI

1 « J'aime »

Update du framework SC v0.98k en ligne :slightly_smiling_face:


Changelog v0.98k :

  • Mise à jour de la librairie sc jpi en v0.987 afin de supporter en natif les actions de JPI v0.987.
  • Correction de typos
  • Compatible avec Jeedom v3.xx et Jeedom v4

Pour améliorer l’affichage des blocs codes et des logs :


Pour installer le framework SC c’est ICI

1 « J'aime »

Update du framework SC v0.99 en ligne :slightly_smiling_face:


Changelog v0.99 :

  • Mise à jour de la librairie sc jpi en v0.99 afin de supporter en natif les actions de JPI v0.99.
  • Compatible avec Jeedom v3.xx et Jeedom v4

Pour améliorer l’affichage des blocs codes et des logs :


Pour installer le framework SC c’est ICI

1 « J'aime »

Update du framework SC v0.991 en ligne :slightly_smiling_face:


Changelog v0.991 :

  • Mise à jour de la librairie sc jpi en v0.991 afin de supporter en natif les actions de JPI v0.991x.
  • Compatible avec Jeedom v3.xx et Jeedom v4

Pour améliorer l’affichage des blocs codes et des logs :


Pour installer le framework SC c’est ICI

1 « J'aime »

Update du framework SC v0.992 en ligne :slightly_smiling_face:


Changelog v0.992 :

  • Mise à jour de la librairie sc jpi en v0.992 afin de supporter en natif les actions de JPI v0.992x.

  • Support de l’authentification http (si activée côté JPI dans les paramètres)
    image
    http://rulistaff.free.fr/sc/doc/?class-sc_jpi#_SET_URL

  • masquage automatique du mot de passe dans les logs :
    image

  • Compatible avec Jeedom v3.xx et Jeedom v4


Pour améliorer l’affichage des blocs codes et des logs :


Pour installer le framework SC c’est ICI

1 « J'aime »

Update du framework SC v0.992b en ligne :slightly_smiling_face:


Changelog v0.992b :

  • Correction d’un bug avec la fonction variable de Jeedom, un caractère était retiré de la valeur par défaut si la variable n’existe pas dans le moteur d’expression.
  • Compatible avec Jeedom v3.xx et Jeedom v4

Pour améliorer l’affichage des blocs codes et des logs :


Pour installer le framework SC c’est ICI

1 « J'aime »

Dans un bloc code de scénario, l’instruction

require_once dirname(__FILE__) . '/../../data/php/user.function.class.php';

génère l’erreur

PHP Warning:  require_once(/var/www/html/sc/../../data/php/user.function.class.php): failed to open stream: No such file or directory in /var/www/html/sc/sc.class.php(2059) : eval()'d code on line 1

J’ai donc remplacé par

require_once '/var/www/html/data/php/user.function.class.php';

J’en profite pour te signaler deux erreurs récurrentes dans les logs

PHP Warning:  Use of undefined constant rssi - assumed 'rssi' (this will throw an Error in a future version of PHP) in /var/www/html/sc/sc.class.php(2059) : eval()'d code on line 24
PHP Warning:  Use of undefined constant uptime - assumed 'uptime' (this will throw an Error in a future version of PHP) in /var/www/html/sc/sc.class.php(2059) : eval()'d code on line 25