Salut à tous, aujourd’hui on va commencer une petite série concernant les scénarios dans Jeedom. Et pour commencer nous allons plus particulièrement parler des blocs scénarios. Les blocs scénarios ? Ben oui les pièces que vous emboîtez ensemble pour faire un scénario.

Les blocs scénarios

Oui grosso modo c’est quasi ça !!

Donc ce premier article ne peut pas vraiment être qualifié de tutos réellement, mais je le verrai plus comme un lexique et probablement une découverte de certains blocs pour quelques uns. Alors allons y !

Les blocs scénarios et les commandes c’est quoi ?

Les blocs scénarios

Alors prenons exemple sur le screen ci-dessus qui représente un scénario sans sens (uniquement pour la capture), on retrouve :

  • des blocs en bleu
  • une commande en rouge

Les blocs sont des ensemble de fonctionnalités, et peuvent permettre d’y glisser une ou plusieurs commandes voir un ou plusieurs autres blocs. Les commandes quand à elles ne peuvent pas contenir d’autres commandes ou blocs et généralement ont un rôle unique bien précis.

Jeedom en propose plusieurs, et je dirai même qu’il en met à disposition beaucoup. Alors faisons un tour de ce qui est mis à disposition. Alors attention je ne vais les lister un par un mais je vais me focaliser sur les plus utiles et je tacherai d’essayer de donner un exemple de cas d’usage pour que chacun puisse visualiser au mieux le cas d’application.

Les Blocs scénarios dans Jeedom

Les blocs scénarios

Comme on peut le voir les blocs sont aux nombres de 7 dans la liste.

Si/Alors/Sinon

Alors je pense que tout le monde connait ce bloc, il doit être l’un des plus utilisé.

Il se présente sous la forme de 3 zones distinctes :

  • l’une pour mettre une ou des conditions –> SI
  • l’autre pour définir ce qu’il doit se passer si la ou les conditions sont remplies –> ALORS
  • et enfin quoi faire si les conditions ne sont pas remplies –> SINON

Exemple :

  • Si mouvement détecté alors allume la lumière sinon éteins la lumière
  • Si température supérieure à 25° alors allume le ventilateur sinon rien

Action

Ce bloc doit être le second bloc le plus utilisé, il s’agit du bloc action.

Il contient une seule et unique zone et celle-ci permet d’ajouter des blocs des actions directs voir même des commandes.

Exemple :

  • Allume la lumière
  • Allume la lumière du salon puis allume la lumière de la cuisine

Boucle

Le bloc boucle porte bien son nom. Il permet d’itérer plusieurs fois les mêmes actions. Il attend une valeur numérique pour dire combien de fois il doit itérer et ce qu’il doit faire.

Exemple :

  • De 1 a 10 fait sonner le carillon
  • De 1 à 5 allume la lumière attend éteins la lumière (pour faire un clignotement)

Dans

Le bloc Dans se décompose en deux zones.

  • l’une attend une durée en minutes
  • l’autre attends des actions ou des blocs (en gros des choses à faire)

Le but de ce bloc est de programmer ce qu’il y a à faire après une certaine durée.

Exemple :

  • Dans 15 minutes couper la prise
  • Dans 20 minutes si la température est supérieure à 25° alors m’envoyer une notification

A

Le bloc A est un peu comme le bloc Dans à la différence que celui-ci attend une horaire pour exécuter ce qu’il contient.

Exemple :

  • A 18h10 ferme les volets
  • A heure du coucher de soleil moins 15 minutes fermer les volets

Code

Ce bloc est réservé aux utilisateurs avertis. Il permet au sein d’un scénario d’écrire du code PHP et de pouvoir utiliser le framework Jeedom. Il se présente sous la forme d’un champ texte libre mais à la différence du bloc commentaire que l’on verra juste en dessous, il fait de la représentation syntaxique.

 

Commentaire

Ce bloc a un seul et unique usage. Il vous permet d’annoter vos scénarios. Cela peut être pratique lorsque vous relisez une de vos scénarios longtemps après l’avoir créé de savoir pourquoi vous avez fait tel choix. Il se présente sous la forme d’un champ texte libre.

Exemple : Pense bête si j’ai fais cette condition c’est pour éviter le problème lorsque balbalablaba

 

Voilà le tour des blocs est fait. Vous inquiétez pas dans la série de tutos qui va arriver ensuite, on les verra quasiment tous en application. Mais il faut bien commencer par le lexique.

Les commandes des scénarios dans Jeedom

Alors ici on attaque une partie intéressante. Je ne vais pas toutes les présenter mais je vais me focaliser sur les plus à même de trouver un usage dans nos futurs tutos Scénarios.

Pause:

Alors cette commande est à utiliser avec parcimonie en effet comme son nom l’indique elle fait une pause dans le scénario. C’est donc une commande bloquante. Il faut donc la réserver à des durées très courtes et sinon favoriser le bloc Dans ou le bloc A qu’on a vu au dessus.

Variable

Les variables sont très utile dans Jeedom, je vous en avais parlé sur cet article que je vous invite à relire ou découvrir (Les variables dans Jeedom domotique – Introduction). Cette commande permet donc de mettre à jour ou initialiser la valeur d’une variable dans votre scénario.

Scenario

Cette commande permet d’appeler un scénario au sein même d’un scénario. Et il faut savoir qu’un scénario peut s’appeler lui même comme je vous l’avais montré ICI.

On retrouve plusieurs champs :

  • le scénario
  • l’action  à faire (start, stop , activer, désactiver)
  • et les éventuels tags à passer au scénario

Pour voir un exemple d’usage et plus de détails sur les tags je vous invite à parcourir ce tuto.

Attendre

Alors je dois vous avouer que cette commande est très certainement celle qui m’a fait tomber amoureux de Jeedom il y a 3 ans quand j’hésitais encore à savoir quelle solution domotique retenir.

Cette commande possède 3 champs :

  • son nom
  • une condition
  • un délai de timeout (délai au delà du quel le scénario continuera même si la condition n’est pas remplie)

Vous allez me dire “Ben du coup ça fait quoi”. Alors en fait ça va dire au scénario d’attendre que la condition soit remplie pour passer à la suite. Et bien utilisé ça peut faire des miracles.

Exemple :

  • il y a eu un mouvement dans la salle de bain on peut faire attendre qu’il y ait un mouvement dans le couloir pour enchaîner. vous l’avez compris on peut séquencer une routine matinale grâce à cette commande. Le timeout est très important puisqu’il va éviter d’attendre indéfiniment et donc de bloquer le scénario.

Retourner

Cette commande permet dans un scénario de renvoyer une valeur/message.

Cette commande est assez particulière mais elle a un cas d’usage qui va tout de suite vous montrer son intérêt.

Exemple :

Prenez le cas d’une interaction qui serait du type “Dis moi combien de fenêtres sont ouvertes”. En l’état rien de simple ne permettrait de remonter l’info. Il y a toujours la solution de faire un virtuel pour. Mais l’interaction peut simplement appeler un scénario, celui-ci ferait un tas de comparaison calcul et retournerait avec la fonction “retourner” la réponse à l’interaction qui se chargera de vous la transcrire.

Voilà vous avez compris à quoi sert cette commande retourner.

Faire une demande

La commande “faire une demande” ou plus simplement la commande ask.

Cette commande est magique. Elle permet à votre domotique de vous poser une question par notification et d’agir selon votre réponse. OUI OUI vous avez bien lu, welcome in the future. Alors j’en dis pas plus ici, pour plusieurs raisons :

  • on reverra très prochainement cette commande
  • et je vous avais déjà présenté ICI et ICI cette commande magique

Supprimer dans/a

Pour finir pour aujourd’hui, voici la commande remove_inat (supprimer dans/a). On a vu au dessus qu’un scénario pouvait créer des planifications avec le bloc DANS et le bloc A. Mais que faire si entre le moment où la planification à été créé et son exécution pour une quelconque raison vous ne voulez plus que la tâche planifiée soit exécutée. Vous l’avez compris c’est exactement le rôle de cette commande. Celle-ci supprimera l’ensemble des tâches planifiées DANS et A créé par ce scénario. Vous pouvez voir un cas d’usage dans cet article (Synchroniser son réveil avec Jeedom et Tasker)

Conclusion

Pour conclure même si ce ne sera pas vraiment une conclusion, je vous invite fortement à aller découvrir la nouvelle documentation Jeedom notamment celle des scénarios ICI.  J’espère que cet overview lexical a permis à certains d’entre vous de découvrir des commandes ou blocs inconnus. N’hésitez pas à faire des tests faire des essais. Ainsi vous serez paré pour la suite où on rentrera dans le vif.

 



Partager sur :

Infos de l'auteur

Je m’appelle Ludovic Sarakha j’ai 32 ans et je suis habitant de Clermont-Ferrand. Concernant les études il faut savoir que bien que j’ai travaillé dans l’informatique (SSII internationale) et maintenant dans la domotique, j’ai un doctorat de Chimie des matériaux. Je suis un autodidacte passioné d'informatique, de domotique et de tout ce qui tourne autour des objets connectés

8 commentaires

  1. Merci pour ce rappel des fonctions élémentaires de jeedom. Pour ma part, je n’utilise pas le wait, mais je vois bien son utilité au travers de ton exemple.

  2. Super ce genre d’article !! J’aime beaucoup.

    Par exemple, je ne connaissais pas du tout le “Supprimer dans/a” … j’ai 2 cas où ça peut m’être super utile : interrupteurs pour enfants avec extinction de leur lampe de chevet après X minutes, mais si jamais, ils éteignent la lampe avec l’extinction auto puis la rallume, ça réteint avant les X minutes etc. et ça fait “boule de neige” …

    Les cas concrets sont sympa aussi, ça donne des idées !!

    Merci

  3. Je n’ai toujours pas compris la boucle, tu pourrais me donner un exemple concret? Je pense que ça pourrait remplacer mon wait quand je mets l’alarme en route, je m’explique: le passage du clavier à 5 ou à 6 suivant si je rentre ou sort, j’enclenche la sirène 1s et stoppe, pour être sûr que l’alarme est bien activer.
    Je pense pouvoir utiliser une boucle mais ne sais comment faire ça
    Merci si tu peux m’aider

Laisser un commentaire