Je viens de trouver mon problème.
J'utilise Espurna comme software sur mon Sonoff.
Vu que le soft est relativement récent il doit y avoir encore quelques bugs et j'ai pu voir passer des messages non corrects au broker :
Code : Tout sélectionner
Client mosqsub/22100-raspberry received PUBLISH (d0, q0, r1, m0, '��e��d', ... (1 bytes))
0
Client mosqsub/22100-raspberry received PUBLISH (d0, q0, r1, m0, '0', ... (1 bytes))
0
ce qui donne dans le plugin MQTT dans le debug :
Code : Tout sélectionner
[2017-01-28 22:26:53][DEBUG] : Message 0 sur ��e��d
[2017-01-28 22:26:53][DEBUG] : Message 0 sur 0
Sauf que ces messages non corrects (data en binaire) bloquent le traitement de tous les messages qui suivent car le script plante...
cf. ma précédente erreur :
Code : Tout sélectionner
[2017-01-23 13:56:03][ERROR] : Le nom de l'équipement ne peut pas être vide : MQTT Object ... ... ...
J'ai du patcher mqtt.class.php en rajoutant une condition en début de méthode :
Code : Tout sélectionner
public static function message( $message ) {
log::add('MQTT', 'debug', 'Message ' . $message->payload . ' sur ' . $message->topic);
if(!ctype_print($message->topic)) {
log::add('MQTT', 'debug', "Message skipped : $message->topic is not a valid topic");
return;
}
et maintenant tout à l'air de re-fonctionner correctement.
Lunarok, est-il possible d'effectuer la correction sur le plugin officiel ?
Puis-je t'envoyer une PR ?