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 !

Bloc Code

Avatar de l’utilisateur
Sshafi
Actif
Messages : 3882
Inscription : 01 juil. 2014, 16:08
Localisation : Albi

Bloc Code

Message par Sshafi » 23 nov. 2016, 13:24

D'après Loïc le code est une fonction eval en php.
Cette fonctionnalité requiert donc des compétences en programmation php.
Une aide est dispo directement dans jeedom sur la page scénario en cliquant sur "?"
Afin d'accéder aux paramètres de vos modules, vous pouvez vous aider de la liste des class de jeedom.

Les exemples de base
  • Exemple de commande permettant de récupérer une valeur d'un module (ex: état "Off" ou une température):

    Aller dans "général"/"Affichage" et déplier l'arborescence sur la gauche pour repérer l'information de votre module (Etat ou Température par exemple).
    Dans cet exemple, mon module est FBS 001 universal sensor, la température renvoyée par le module possède l'ID 3 dans "Affichage".
    Les lignes de code permettant de récupérer la température seront:

    Code : Tout sélectionner

            $id=3;
            $cmd=cmd::byId($id);
            $result=$cmd->execCmd();
            //la ligne ci dessous permet d'afficher la valeur dans le log situé dans général/administration/log/Code
            log::add('Code','[debug]','Température: '.$result); 
  • Commande permettant de piloter un module:

    Aller dans "général"/"Affichage" et déplier l'arborescence sur la gauche pour repérer votre module.
    Dans cet exemple, mon module est un switch FGS221 sa commande "On" possède l'ID 33 dans "Affichage".
    La ligne de code permettant de piloter le module sur "On" à la lecture du scénario sera:

    Code : Tout sélectionner

            $cmd =cmd::byId(33);
            $cmd->execCmd();
  • NB1: Il est possible de remplacer la ligne: $cmd =cmd::byId(33); par $cmd =cmd::byString('#[Maison][Capteur][Température]#'); avec comme argument le chemin vers l'information à mettre à jour en fonction de votre installation et de votre nommage de vos objets.
  • NB2: N'utilisez pas de variables globales avec la syntaxe "global MaVariable", voir le wiki dédié aux variables
  • Un exemple de scénario complet comportant du code : Contrôle_dynamique_du_CRON.
  • Exemple pour exécuter un scénario tierce à partir de celui en cours d’exécution:
    si le 2eme scénario possède l'id 16, on peut le lancer en plaçant ces lignes dans le scénario 1

    Code : Tout sélectionner

    $scenario2 = scenario::byId(16);
    $scenario2->launch();
    
??? Menfin ...
VM ESXi # Aeon Lab Gen5 | RFXtrx433E | ...
Trucs & Astuces

Verrouillé

Revenir vers « Scénarios »

Qui est en ligne ?

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