Hallo.
Ich nutze Version 5.11.1 und hatte das gleiche Problem. Ich musste die Sonoffs alle immer wieder neu starten, jedoch nach spätestens 12 Stunden hatten sie sich vom MQTT verabschiedet und waren nur noch über die IP zu erreichen. Ich hatte dann auch immer die gleiche Fehlermeldung wie du.
Dann habe ich mir (mit gefährlichem Halbwissen) nochmal die user_config.h der Flashsoftware angeschaut und folgenden Bereich entdeckt:
// -- MQTT ----------------------------------------
#define MQTT_USE 1 // [SetOption3] Select default MQTT use (0 = Off, 1 = On)
// !!! TLS uses a LOT OF MEMORY (20k) so be careful to enable other options at the same time !!!
//#define USE_MQTT_TLS // EXPERIMENTAL Use TLS for MQTT connection (+53k code, +20k mem) - Disable by //
// Needs Fingerprint, TLS Port, UserId and Password
#ifdef USE_MQTT_TLS
#define MQTT_HOST "m20.cloudmqtt.com" // [MqttHost]
#define MQTT_FINGERPRINT "A5 02 FF 13 99 9F 8B 39 8E F1 83 4F 11 23 65 0B 32 36 FC 07" // [MqttFingerprint]
#define MQTT_PORT 20123 // [MqttPort] MQTT TLS port
#define MQTT_USER "cloudmqttuser" // [MqttUser] Mandatory user
#define MQTT_PASS "cloudmqttpassword" // [MqttPassword] Mandatory password
#else
#define MQTT_HOST "domus1" // [MqttHost]
#define MQTT_PORT 1883 // [MqttPort] MQTT port (10123 on CloudMQTT)
#define MQTT_USER "DVES_USER" // [MqttUser] Optional user
#define MQTT_PASS "DVES_PASS" // [MqttPassword] Optional password
#endif
Alles anzeigen
Dort gibt es einmal diesen MQTT_TLS Bereich und den normale MQTT Bereich. Zweiteres kann man ja später über die IP und Benutzeroberfläche eingeben (unseren ioBroker als MQTT-Server).
Der obere Bereich funkt aber nach außen zu irgendeinem Server (wenn ich es richtig verstanden habe, handelt es sich bei TLS um eine gesicherte Verbindung). In den Erklärungen zum Flashen habe ich niemals gesehen, dass jemand dort etwas geändert hat, somit habe ich das auch nie gemacht. Laut der Beschreibung im Quelltext ist das aber eine absolute Beta (EXPERIMENTAL Use).
Ich habe mir daraufhin nochmal ein Erklärvideo von Denis angeschaut und gesehen, dass er die Internetadresse "m20.cloudmqtt.com" dieses MQTT_HOST durch die IP seines Raspberry Pis ersetzt hat, die Sonoffs also nicht mehr nach außen funken können.
Ich habe nun einfach vor alle Zeilen von
#ifdef USE_MQTT_TLS
bis
#else
und vor
#endif
// gesetzt und sie damit rausgenommen (steht ja auch so oberhalb in der Erklärung des Quellcodes).
Was soll ich sagen, seit 48 Stunden laufen die Sonoffs ohne Probleme.
Ich weiß nicht, ob man die MQTT_TLS Einstellungen auch über die Konsole raus nehmen kann, habe dazu nichts gefunden. Ich habe es einfach nochmal neu geflasht.