je commence a être un peu plus familié avec MQTT , cependant je pèche encore sur un point
je voudrais pouvoir récupérer des infos sur ZwaveJS (santé, liste des nodes, pinger des noeuds)
normalement ca se fait via la commande ‹ getInfo › en MQTT par exemple
j’arrive a la lancer via un plugin
mais pour récupérer la réponse ca se corse, car de ce que je vois dans le code du plugin MQTT , seul un seul plugin peut s’abonner a un topic
public static function addPluginTopic($_plugin, $_topic) {
$mapping = config::byKey('mapping', __CLASS__, array());
$mapping[$_topic] = $_plugin;
config::save('mapping', $mapping, __CLASS__);
}
donc si j’abonne mon plugin au topic ‹ zwave › bein je vais désabonner le plugin ZwaveJS
hors je souhaiterais pouvoir envoyer des infos (ca j’y arrive) et lire la réponse
une idée ?
Pourquoi je veux faire ca ?
Avant avec openZwave j’avais des script via api rest qui vérifiait que tout tournait bien, vérifiait les noeuds etc
Avec ZwaveJS j’y arrive plus, hors j’ai plusieurs fois été confronté à des soucis du genre : le pluginZwaveJS est dans les choux (malgré un Daemon OK), des noeuds au statut Unknow qui du coup réponde plus, alors qu’il suffit de les pingguer pour les relancer, … Bref je veux monitorer cela et j’arrive pas a trouver de point d’entrée avec réponse
Ok, la notion de ClientID je viens de comprendre, oui ca se déclare lorsqu’on publie , j’ai testé c’est ok j’arrive a avoir la réponse dans MQTT2
par contre je persite, lorsqu’on abonne un plugin à MQTT2, on ne peut pas abonner 2 plugin au meme topic
voila le code du plugin MQTT2
public static function addPluginTopic($_plugin, $_topic) {
$mapping = config::byKey('mapping', __CLASS__, array());
$mapping[$_topic] = $_plugin;
config::save('mapping', $mapping, __CLASS__);
}
si je déclare mon plugin pour le topic ‹ zwave › je vais ecraser le plugin ZwaveJS qui y est abonné
je pense par contre pouvoir m’abonner à
zwave/_CLIENTS/monplugin_clientID
je vais test pour voir
=> Résultat du test : non ca marche pas bon faut que je trouve comment faire alors ça craint cette histoire
et en creusant dans le code du plugin MQTT2 on voit bien au niveau de la fleche rouge, que lorsque l’on fait une publication, la réponse est renvoyé au plugin et a un seul plugin associé au topic
Je comprends pas trop pourquoi tu as des lignes de codes pour t’abonner à un service mqtt. Ce n’est même pas une commande mqtt. Si tu veux interagir avec un service mqtt, cela se fait par l’intermédiaire de mosquitto. Si tu as besoin d’y aller en direct, je suis largué.
je réalise un plugin pour Jeedom (qui s’installe sur Jeedom)
ce plugin doit pouvoir regarder ce qu’il se passe sur MQTT côté Zwave
pour cela , je regarde comment cela a été développé sur MQTT2 puisque c’est celui-la que j’utilise et j’appelle les fonction public mise à disposition pour MQTT2 en PHP
Non je pense que ca va foutre le bordel car de mémoire quoi qu’il arrive mqtt2 ne va fwd le message qu’à un seul plugin.
Perso je pense que c’est une mauvaise idée ces pseudo check ou patch… faut régler les problèmes sur ton réseau @frixo et pas mettre des pansements de fortune…
Perso jamais aucun problème de noeud unknow ou de démon planté etc…
Bonjour @frixo , j’avais le même type de monitoring via des scénario en php pour pinger les noeuds et aussi tester via leur dernière communication, ceci via un scénario plus des commandes mqtt vers le serveur ZWAVE-JS. Etant passé sur le plugin zwave-js et non plus jMQTT, ton sujet m’intéresse. Tu as créer un plugin pour ça ? ou en es tu ? si tu peux partager. Merci.