Grâce au tuto de nicoca-ine, j’ai réussi à intégrer ma sonnette ring doorbell wired.
Les commandes remontent bien sauf le snapshop. Le sujet avec l’image au format JFIF est bien visible dans mqtt-explorer mais pas dans JMQTT.
Dans les logs j’ai ça : [2022-04-23 09:50:31,374][WARNING] : Message skipped: payload ffd8ffe000104a4649460001010000010...eb4867fffd9 is not valid for topic ring/0965157e-xxxx-xxxx-xxxx-dae593axxxxx/camera/54exxxxxxxx/snapshot/image
On y retrouve bien le début et la fin d’un fichier JFIF (j’ai tronqué une grosse partie du contenu le message fait 31495 caractères soit un tout petit peu moins que 32 ko), mais a priori JMQTT n’en veut pas.
La commande n’est pas créée automatiquement ni en cliquant sur JSON. J’ai bien essayé de créer la commande à la main, sans plus de résultat.
Quelqu’un aurait une idée pour récupérer le contenu de ce message dans jeedom (la conversion en binaire dans un fichier ne sera pas compliquée ensuite) ?
Je pense que le flux des snapshot/video ne doit pas passer par jmqtt mais le plugin vidéo :
J’avais essayé il y a un temps de faire un widget pour afficher des images à partir d’un payload en binaire/base64 mais ça fait beaucoup de données à traiter (events) pour Jeedom.
La payload n’est pas en binaire mais en hexa, donc texte.
Il suffit de lire les caractères 2 par 2 et de les convertir en valeurs décimales.
J’ai fait le test en vbs sous Windows, j’obtiens bien l’image attendue. Transcrire ça en JS, PHP ou python n’est pas compliqué…
Je vais essayer de trouver un client mqtt en ligne de commande qui pourra faire le traitement et renvoyer le résultat (par ex. sous forme d’URL) à Jeedom.
Je n’ai pas eu le temps de regarder où se trouve ce message d’erreur dans le code, mais il me semble qu’il survient dans le daemon, le message n’arrive donc pas jusqu’à Jeedom.
Ton programme devra donc tourner hors de Jeedom pour fonctionner.