Jeedom, MQTT et scénarios

Jeedom, MQTT et scénarios
0

Bonjour,
je débute sur Jeedom.
Venant de l’univers de la Vera (j’y reste), je cherche à l’interfacer avec Jeedom, pour combler certaines lacunes.

Jeedom est très souple, mais après un rapide tour, je me perds dans le nombre de choses à paramétrer. D’habitude je cherche par moi même, mais je n’ai pas trop de temps en ce moment… du coup je fais appel à la communauté pour m’orienter.

Contexte :
Je souhaite utiliser MQTT pour échanger entre les 2 systèmes. J’ai installé le plugin MQTT sur Jeedom, et après avoir un peu tâtonné, j’arrive à récupérer des messages MQTT. Il ne faut surtout pas créer les objets à l’avance et laisser le plugin en mode découverte, sinon il n’est pas possible d’avoir les commandes de type “info”.
J’arrive aussi à envoyer un message sur le broker en créant une commande de type “action”.

Maintenant il me manque le “liant”. J’ai commencé à chercher du côté des scénarios. On trouve pas mal de documentation dessus (et sur les widgets) mais de ce que je peux en voir, ça a l’air fastidieux.
Je me méfie de ce type de paramétrage qui dure des heures et qui a tendance à disparaître au moindre problème, d’autant plus que l’aspect graphique m’importe peu pour l’instant.

J’ai l’impression que la solution passe par un script.

Mon besoin:

  • A chaque message sur un sujet, pouvoir déclencher une action
    Par exemple:
    à la réception d’un message MQTT
    Sujet: Jeedom/Actions/HomeCinema
    Payload: {“Ampli”:“Vol-”}
    lancer l’action “Ampli Vol-” de l’équipement “RM 2”

  • Au changement d’état de certains équipement, envoyer un message MQTT.
    Là je sens, que je ne vais pas éviter les scénarios.

Regarde les options avancées de commande tu peux directement lancer des actions sur valeur.

Merci @lunarok, je regarde la piste.

J’ai tenté de créer l’action, mais il ne se passe rien sur réception du message

Pour info, après avoir coché “parseJson” sur l’action “principale”, de nouvelles commandes “décomposées” ont été créées à la réception des messages MQTT.

Bon finalement, j’ai réussi à réagir aux messages MQTT en passant par un scénario:

La subtilité est que le déclencheur ne peut pas être la commande qui parse le JSON.

J’ai commencé à définir les cas possibles… et c’est long et difficilement maintenable en passant par les blocs “SI-ALORS-SINON”

Du coup je souhaite tester le bloc “CODE”, mais je ne trouve aucune information sur Internet.

Quelqu’un a-t-il un exemple de code php qui peut être inséré dans un scénario ?
Je souhaite accéder à la valeur de la commande déclencheur (surement dans le contexte du script) et pouvoir appeler l’action d’un équipement.

Merci pour nous tous!

1 J'aime

Hello @lunarok, j’avance un peu. Je passe finalement par les scénarios.

J’ai une question sur le plugin MQTT:

Les informations de l’action, “Titre” et “Message”, semblent purement informatives. Elles n’ont aucun effet et ce sont les paramètres sauvés dans l’action qui sont pris:

C’est normal ? Du coup il faut faire une action par évènement ?

Biensur, il devine comment où il doit mettre les valeurs avec le topic donné là ? Y a rien de variable dedans. Standard Jeedom, comme pour les scripts et autres plugins il faut lui dire où mettre les infos.

Merci pour ta réponse @lunarok.

Du coup, si je comprends bien ta remarque, le scénario doit positionner une valeur dans une variable (à déclarer au début du scénario je suppose), qui sera utilisée dans l’action côté équipement ?

Dans les exemples que j’avais pu voir sur les variables dans les scénarios, j’avais conclu, trop rapidement sans doute, qu’elles avaient une portée seulement locale, et donc non disponible ailleurs.

J’avoue ma méconnaissance de l’écosystème Jeedom, et effectivement il me manque les bases concernant les standards Jeedom.

J’ai quand même une question sur les textbox “Titre” et “Message” de l’action dans le scénario, liées à l’action de l’équipement:
Pourquoi sont-elles là, puisqu’elles n’ont pas de lien direct avec l’équipement ?

Non pas de variables.
Et si justement Titre et Texte ont un lien avec l’équipement vu que la commande est de type message. C’est ca qu’il faut regarder. Je sais pas où c’est dans la doc mais c’est du standard, quasiement tous les plugins génériques utilisent un label remplacer par la valeur des champs (titre, message, slider …)

Je n’avais pas vu cette possibilité d’utiliser les labels dans les commandes (je ne retrouve pas non plus l’information en cherchant dans les documentations).

Après avoir tâtonné un petit bout de temps, j’arrive enfin à faire une partie de ce que je souhaiterai.
Les labels “Titre” et “Message” de l’action dans le scénario peuvent être récupérés via les mots clé “#message#” et “#title#” dans la commande de l’équipement lié au plugin MQTT, au niveau de la textbox “Valeur”:

Seulement voilà… j’ai encore des questions :slight_smile: (c’est pour toi @lunarok):

  • Dans le scénario, le titre et le message sont obligatoires. C’est ce qui m’a mis sur une fausse piste au début, car je les avais pris pour l’équivalent de topic et payload. Le problème: la textbox “Topic” de la commande ne gère pas le mot clé “#title#”. Du coup le topic ne peut pas être variable.

  • Le contenu de “Message” dans le scénario est modifié (ça permet de mettre du contenu dynamique comme le statut d’un équipement). Le problème: les guillemets sont systématiquement enlevés. J’ai essayé de les “échaper” ou de les encoder, mais au final je ne les récupère pas. Du coup, je n’arrive pas à mettre du JSON dans le message (par ex: {“Someone”:"#[Bracelets][BLE MI1A][Present]#"} ).

J’avais laissé un peu tout en stand-by, n’ayant plus trop de temps libre.

Je viens de reprendre l’interfaçage Vera / MQTT / Jeedom.

Finalement, je n’ai pas réussi à utiliser l’option “parseJson” dans le plugin MQTT, la commande ne déclenche pas les scénario sur réception.

Je passe par un scénario et un bloc code.
J’ai installé aussi le framework pour les scénario : http://rulistaff.free.fr/sc/doc/

Le code :

Il faut aussi penser à paramétrer “Toujours répéter” dans la configuration avancée des commandes liées aux messages MQTT.

Voilà :slight_smile:

2 J'aimes