Démarrer scénario si réseau Zwave status « driver ready » ou « scan done »

Dans la partie api driver : Z-Wave JS - Z-Wave driver written entirely in JavaScript/TypeScript
Sachant qu’on peut appeler l’api via mqtt comme avec ton getInfo.

Tu as raison en effet : le scan est après le driver ready. Mais comme c’est rapide on pourrait rajouter dans le scénario un sleep pour attendre la fin du scan. Ou alors allNodesReady ?

Pas mal tout ceci !

Comment on peut scripter ceci pour récupérer les info ?

Directement avec le plugin-jmqtt ou sinon voir si ce n’est pas déjà disponible ou pourrait être disponible avec le plugin-zwavejs (que je n’utilise pas).

1 « J'aime »

Bonjour,

Mes propositions ne fonctionnent pas après test. J’ai dû mal comprendre la documentation qui laissait penser que je pouvais appeler n’importe quelle api via mqtt.

Donc il reste getInfo comme proposé par @Jeandhom

On peut utiliser cette proposition de quelle manière dans un scénario ?

Avec le plugin-jmqtt, il faut créer une commande action et une commande info.

Avec ton scénario, tu lances la commande action et tu agis après en fonction du résultat de la commande info.

EDIT : suite à la précision de @Madcow :

Pour les utilisateurs du plugin-zwavejs :

Topic commande action
zwave/_CLIENTS/ZWAVE_GATEWAY-jeedom/api/getInfo/set

Topic commande info
zwave/_CLIENTS/ZWAVE_GATEWAY-jeedom/api/getInfo

5 « J'aime »

Dans le cas du plugin zwavejs, je précise que cela sera ZWAVE_GATEWAY-jeedom dans le topic.

1 « J'aime »

On peut faire cela avec MQTT manager ?

Depuis le plugin ZwaveJS on fait cela comment ?

Je suis un peu largué…

Je n’ai pas réussi à remonter l’info avec mqtt manager, je ne sais pas pourquoi.

Regarde le post de @Jeandhom.
Il faut installer le plugin-jmqtt.

Cela doit être possible, mais je ne sais pas faire.

Qu’as-tu fait ?

J’ai créé une commande info autre avec (topic racine zwave) : _CLIENTS/ZWAVE_GATEWAY-jeedom/api/getInfo/results/cntStatus étant donné que ma sortie est un json (d’après la doc mqtt2). Mais aucune valeur.

Même sans /results/cntStatus je n’obtenais également aucune valeur (je m’attendais à obtenir le json).

Le json était bien visible par mqtt explorer.

La commande action par contre fonctionnait très bien.

Bonsoir,

Problement à cause de cela …

https://community.jeedom.com/t/infos-reseau-zwave-js-via-mqtt-manager/96802/2?u=arnog23

2 « J'aime »

Du coup :

:thinking:

Il me semblait bien avoir lu la confirmation de Loic.

https://community.jeedom.com/t/recuperer-une-info-jeedom-via-mqtt-manager/109838/17?u=arnog23

2 « J'aime »

Ca marche impeccable avec Jmqtt et facilement. Merci ça peut être très pratique :wave:

2 « J'aime »

J’ai fait comme ca. Plus simple pour moi :

try {
    // Appelle la fonction 'byId' du plugin avec l'identifiant 'zwavejs'
    plugin::byId('zwavejs');
    
    // Récupère des informations et des statistiques sous forme de JSON
    zwavejs::getInfo();
    
    // Initialise la variable ZwaveStatus avec la valeur "0" dans le contexte du scénario
    $scenario->setData("ZwaveStatus", "0");
    
    // Récupère le contenu d'un fichier de type 'info' du plugin 'zwavejs'
    $json = zwavejs::getFile('info', null);
    
    // Met à jour la variable ZwaveStatus avec le statut récupéré du fichier JSON
    $scenario->setData("ZwaveStatus", $json['status']);
} catch (Exception $e) {
    // Capture toute exception qui pourrait être lancée dans le bloc try
    // (Ce bloc catch est actuellement vide, ce qui signifie qu'il ne fait rien avec l'exception capturée)
}
3 « J'aime »

Finalement, cette info était déjà disponible via le plugin-zwavejs .

Je n’ai pas saisi à quoi sert cette ligne ?