Par exemple, j'ai un statut qui s'appelle "présence légitime". Si je détecte un mouvement, ou si un appareil est allumé par je ne sais qui, ça veut dire qu'il y a quelqu'un, ça ne veut pas dire que la présence est légitime. Si par contre un membre de la famille est vu/reconnu par la caméra, là il y a une présence légitime. Et concrètement, plein de choses ne vont pas se passer dans la maison de la même manière selon qu'il y a une présence légitime ou pas légitime ...
mais cette notion de présence légitime, quand je la crée, je ne sais pas forcément tout de suite à quoi elle va me servir. Si je crée un nouveau scénario de gestion automatique des éclairages dans six mois, je vais utiliser ce virtuel=> on active les scénarios de gestion auto de l'éclairage notamment si le statut "présence légitime" est "on", sinon c'est un intrus, on ne va pas lui allumer la lumière. Ou pour une alarme par exemple. Conceptuellement, ça revient à dire : il y a une présence légitime qui sert de donnée d'entrée à la gestion automatique d'un éclairage ou au déclenchement d'une alarme.
En fait j'en suis venu là par souci de simplification des scénarios et des conditions qui les déclenchent, et pour faciliter l'évolutivité du système dans un contexte ou je préfère modifier ce qui met à jour le statut logique d'un virtuel, plutôt que de modifier mes 50 scénarios qui utilisent ce statut.
Par contre, clairement, le point faible de ce mode d'organisation : beaucoup de virtuels à gérer, et des latences .... ce n'est sans doute pas ce qu'on fait de mieux pour la performance. Et puis il faut être bien logique et ordonné dans sa tête, ou bien documenter, pour savoir in fine dans quelles conditions un scénario s'est lancé à tort ou à raison.
Un autre exemple de brique basse : j'ai une fonction "parle". Je sais que dans mon utilisation quotidienne je vais vouloir faire en sorte parfois que ma box me parle ... je ne sais pas encore dans quel contexte, mais peu importe. Donc plutôt que de faire dire ce qu'il y a à dire au scénario qui nécessite une vocalisation, je passe le contenu du message dans une variable qui déclenche la fonction / le scénario "parle" dédié uniquement à cela. D'ailleurs, peut-être qu'aujourd'hui Jeedom me "parle" via le plugin tts ou via Sarah, mais que demain, parce que c'est plus pratique, j'utiliserai JPI ou Googlecast ou que sais-je encore... Je n'aurais que "parle" à modifier, ça ne remet pas en cause mes 1000 scénarios qui vocalisent des trucs.
Ou alors peut-être que je vais vouloir vocaliser à terme, dans la pièce où je me trouve... en séparant "parle" du scénario qui l'utilise, et en associant "parle" avec un autre statut autonome "où je suis", je vais pouvoir améliorer mon système un peu plus tard.
Autre exemple, je mémorise tout ce qui est dit, pour pouvoir faire répéter... chaque fois que je déclenche "parle", dans ce scénario, je fais mémoriser la dernière chose dite, au cas où j'en aurais besoin pour plus tard.
Oui, je sais, je suis dingue....
![Laughing :lol:](./images/smilies/icon_lol.gif)