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 ?
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).
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.
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.
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)
}