Les variables dans Jeedom domotique – Introduction
5 (100%) 3 votes

Aujourd’hui on va parler « Variables ». On va décrire le principe et voir quelques exemples d’utilisation.

Les variables permettent dans le milieu des sciences blablablabla :

les variables

Non c’est bon rangez votre cahier et vos stylos on va parler d’autres variables

Oui en effet il s’agit des variables dans nos solutions domotiques adorées.

 

Les variables

En domotique les variables permettent de stocker une donnée afin de pouvoir la réutiliser plus tard ou ailleurs. Généralement on les trouve souvent dans les scénarios.

Alors c’est super ça, car c’est exactement ce dont je veux vous parler aujourd’hui « Les variables dans les scénarios ». Comme vous le savez tous je suis utilisateur de Jeedom, donc je me baserai sur cette solution pour vous donner les exemples. Il est toutefois bon de noter que le principe reste le même sur la plupart des solutions domotiques.

 

Un cas d’usage

J’ai déjà parler de ce point là dans un précédent billet mais je vais le remontrer. Il s’agit de la centralisation de mon système de notifications

les variables

Donc ce scénario est relativement simple en fait :

  • Il vérifie le statut d’un ping google
  • Si le ping est KO (donc potentiellement plus internet), le message écrit dans la variable « messageNotif » est envoyé sur mon téléphone et celui de madame via SMS
  • Si le ping est OK, je notifie via Telegram

Du coup tous mes scénarios qui doivent faire des notifications ont juste deux choses à faire :

  • Ecrire le message dans la variable
  • Appeler le scénario du dessus

Voilà rien de plus pour ce scénario, avant je notifiais SMS et Telegram (par mesure de sécurité) mais j’en avais marre de recevoir les notifications en double. Du coup dans mes autres scénarios, j’ai simplement à setter la variable « messageNotif » et appeler le scénario. L’avantage est de factoriser. En effet par exemple, lorsque j’ai reçu les mibands, j’ai eu simplement à les rajouter dans cet UNIQUE scénario et pas dans l’ensemble de mes scénarios qui font des notifications.

DONC ON VOIT ICI UN PENDANT DES VARIABLES : La centralisation

Mes alertes d’arrosage

Je possède plusieurs miflora. Mon usage est simple, je veux simplement un rappel par notification lorsqu’il faut arroser les plantes. Prenons l’exemple de mon Yucca. Il fait 1m80, ça serait dommage de le perdre. A force d’usages j’ai considéré qu’en dessous de 10% d’humidité il était temps de l’arroser et qu’au dessus de 20 je venais de l’arroser. Je vais essayer de vous montrer les étapes du raisonnement petit à petit.

Pour l’ensemble des scénarios l’élément déclencheur est le changement de valeur du taux d’humidité. Le scénario est donc en « Provoqué » sur l’événement de la commande correspondant au taux d’humidité du capteur.

les variables

Donc voici un premier scénario :les variables

Première chose que l’on peut constater, j’utilise bien mon scénario de notifications. Mais on voit quoi d’autres :

  • Si l’humidité est inférieure à 10% j’envoie une notif pour dire qu’il faut l’arroser
  • Si l’humidité est supérieure à 20% j’envoie une notif pour dire « Merci chef tu m’as arrosé »

 

Tout semble être là ! Mais pourtant ce scénario n’est pas bon

les variables

 

Alors je suis sûr que certains d’entre vous ont tout de suite vu ce qui n’allait pas. Mais pour les autres vous voulez que je vous explique ?

les variables

Je ne suis aucunement sponsorisé par OUI-OUI

Bon d’accord je vous explique. Le scénario du dessus aura pour fâcheuse tendance de vous notifier de manière récurrente, trop récurrente en effet :

  • Vous venez d’arroser votre plante. Disons que son taux d’humidité passe à 43%, vous aurez donc la notification qui va vous dire « Merci de m’avoir arrosé ». Une heure après le taux d’humidité passe à 42%, pouf vous aurez de nouveau la notification et ainsi de suite
  • Il se passera la même chose pour toutes les valeurs en dessous de 10%

 




Mais quelle est donc la solution ?

Les VARIABLES

 

Eh ben non ! Ce n’est pas parce que l’article concerne les variables que  c’est le bonne réponse. Il existe une option dans les scénarios pour répondre explicitement à ce problème. Regardez bien le bloc « SI » au tout début de la première ligne vous avez ça :

les variables

Si vous cliquez sur cette case on résout tout de suite le soucis. En effet cette cas est là pour dire « Si la condition est identique à la dernière fois ou le scénario c’est lancé, alors j’ignore ». Je vais détailler :

  • Votre taux d’humidité est inférieur à 20%. Vous arrosez votre plante vous passez à disons 50% donc la condition « supérieur à 20 devient vraie » et vous recevez la notif « Merci de m’avoir arrosé ». Ensuite l’humidité passe à 49%, ben grâce à l’option, le scénario se dira « la condition était déjà vraie la dernière fois, inutile de le refaire »
  • Le taux d’humidité va ensuite passer petit à petit en dessous de 20%. A partir de ce moment là la condition deviendra fausse. Et donc lorsqu’elle redeviendra vraie (logiquement que si vous l’arrosez ou que votre chien passe par là), il refera la notification et ainsi de suite.

Le scénario devient donc :

les variables

 

Nous avons donc maintenant un scénario qui :

  • Notifie le besoin d’arroser que lorsque l’humidité était au-dessus de 10% et passe en dessous (et celà une seule fois)
  • Nous remercie que lorsque l’humidité passe au-dessus de 20% et qu’elle était en dessous (idem une seule et unique fois)

PARFAIT ME DIREZ VOUS

 

Alors non ! Je n’étais pas satisfait. Pour la simple raison que je recevais la notification, mais que dès fois je le faisais pas dans l’immédiat (biberon, changement de couches, en train de faire une vidéo, pas à la maison ….). Vous pouviez être sûr qu’après c’était oublié. Et qu’ensuite ma seule alerte était :

les variables

Et là pour le coup la plante ne me dit pas MERCI

L’idée est donc d’utiliser les variables pour aller plus loin

Je me suis dit, ben pourquoi pas me notifier une fois par jour tant que je n’ai pas arrosé la plante !

les variables

 

Ahhhhhhhhhh ! Non ne prenez pas peur il est pas si compliqué :

  • Tout d’abord il faut noter que sur la partie « inférieur à 10%  » j’ai remis la petite case par défaut. En effet là je veux gérer ma répétition moi même
  • Donc au final j’ai rajouté un bloc « Si » supplémentaire alors il fait quoi :
    • Tout d’abord le sinon (c’est le cas classique d’avant à savoir la première fois que je passe sous 10%).  Je mets une variable « en train de mourir » à 1 et une variable « plante jour » avec la valeur du jour courant ( avec #jour#)
    • Le « Si » quand à lui fait deux choses il vérifie si la variable « en train de mourir » est égale à 1 et si la variable « plante jour » est différente du jour en cours. Si c’est le cas ça veut dire que la plante est en train de mourir et qu’on est un jour différent de la dernière notification.  Et donc, on notifie et on met à jour le jour dans « plante jour » pour plus le refaire de la journée.
  • Lorsque j’arrose la plante je remets « en train de mourir à 0 » et je mets « plante jour » à 32. Oui comme ça j’ai un jour impossible, et si la plante repasse à moins de 10% pile poile un mois après je me retrouve pas das un cas particulier.

 

NB: vous aurez remarqué que je mets toujours deux choses dans mes variables

  • Le nom de la variable
  • Une virgule suivie d’une valeur. En fait c’est une valeur par défaut à prendre si la variable n’existe pas. Si elle a été supprimée par exemple ou si elle n’existe pas encore (cela m’évite d’avoir à aller l’initier). Du coup le scénario s’initie de lui même et fonctionne quoi qu’il en soit

 

Conclusion

Voilà j’espère que vous aurez compris que les variables ouvrent des portes sur les possibilités. Et cela sans avoir à multiplier les scénarios. Un autre cas d’usage est le bilan santé après la pesée matinale qui peut vous donner l’évolution de votre poids depuis la dernière pesée avec la balance miscale par exemple (on verra cela dans un autre article si vous voulez)

Ce n’est pas spécialement compliqué à mettre en place. Il suffit juste de bien tout poser sur un papier pour être sûr de bien penser à tous les cas. Ou sinon simplement expérimenté et adapter au fil des jours.

 

 

A la prochaine 😉

 

 

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

9 commentaires

  1. Pingback: La répétition des événements dans Jeedom Domotique - La Domotique de Sarakha63

  2. Hello ! Merci pour cet article ! Encore un bon tuto de la part de Sarakha !

    J’aurais besoin d’un petit coup de main : j’ai un anémomètre qui me donne la vitesse du vent en mètres par seconde. Saurais-tu comment afficher sa valeur en kilomètres par heure sans passer par une variable et surtout, en utilisant son widget habituel ? Ce serait dommage d’avoir besoin d’une variable pour la conversion et d’afficher le résultat sur un widget spécialisé, non ? Pour info, mon anémomètre est en FRXCom.

    Merci de toute idée !

  3. Pingback: Les DomoNews qu'il ne fallait pas manquer durant la semaine du 05/02 au 11/02

Laisser un commentaire