Shellys schalten von alleine an oder aus wenn MQTT aktiv ist

  • Ich habe bei mir zu Hause u.a. eine Reihe von Shelly-Geräten (Shelly 1, Shelly 2 und Shelly Plug S) im Einsatz, die alle ausschließlich über MQTT gesteuert werden. Das funktioniert mit fast allen Shellys ohne Probleme, nur zwei der Shellies (erste Generation, Produktionsjahr 2018) verhalten sich (vermutlich schon immer) seltsam, indem sie sich mitten in der Nacht automatisch ein- oder ausschalten! Ich vermute mittlerweile einen Hardwaredefekt bei diesen 2 Geräten?

    Verhalten

    - Ein Shelly 1 schaltet von Zeit zu Zeit von alleine aus (aber noch nie automatisch ein)

    - Ein Shelly 2 schaltet einen Kanal automatisch ein (aber nie automatisch aus) und dies auch nur auf Kanal #1, nie auf Kanal #2

    Das Schaltverhalten ist auch unabhängig vom konfigurierten "Power On Default Mode" der Geräte, also egal ob ich ON, OFF oder Restore Last Mode konfigurieren, der eine Shelly geht automatisch aus, der andere an.

    Konfiguration

    - Die Firmware beider Geräte ist aktuell

    - Gesteuert wird nur über MQTT

    - Cloud ist nicht aktiv

    - Es sind keine Timer in den Geräten selbst gesetzt

    - Keine Steuerung oder Zugriff über HTTP

    - Betrieb nur im lokalen Netzwerk

    - Frontend und MQTT sind passwortgesichert

    - Der Shelly 2 in der Küche ist nur 50cm überhalb der WLAN-Repeaters

    - Der Shelly 1 im Flur ist ca. 3m vom Repeater entfernt

    Die kompletten Settings der beiden Shellys habe ich mal als Dateiangang an diesen Post drangehängt.

    Fehlereingrenzungen bisher

    Wenn MQTT ausgeschaltet ist, tritt das Verhalten nicht auf!


    Ursprünglich hatte ich vermutet, dass vielleicht ja eine MQTT-Nachricht fehlerhafter Weise gesendet wird (von einem Timer in NodeRed), aber selbst wenn ich in NodeRed jegliche MQTT-Kontrolle für diese Geräte entferne und die Geräte nur mit dem MQTT-Server (Mosquitto) verbunden sind, tritt dieses Verhalten auf.

    Dann hatte ich vermutet, dass es vielleicht etwas mit Retained Messages zu tun haben könnte, aber das ist im MQTT Broker nicht aktiviert und alle Shellys sind auf QOS 0 eingestellt, so dass keine Nachrichten mehrfach gesendet bzw. nachversendet werden.

    Um das Problem weiter einzugrezen, protokolliere ich nun die Topics announce, command und input für die beiden Geräte in eine Datei.

    Dabei fällt schon mal auf, dass (wie erwartet) keine /relay/0/command Message zu den Geräten gesendet wurde, wenn diese von alleine schalten!

    Interessanter Weise schalten beide Shellys zeitgleich und ich erhalte nur eine Message zum Relaiszustand.

    Bei ersten automatischen Schalten gestern Abend hatten beide Geräte auch eine announce-Message schickt, was auf einen Reconnect hindeutet, oder?

    12/14/2021 21:13:53 Shelly Kitchen: shellies/shellyswitch-55967C/announce: {"_msgid":"2439dc8a07f19c98","_topic":"shellies/shellyswitch-55967C/announce","payload":"{\"id\":\"shellyswitch-55967C\",\"model\":\"SHSW-21\",\"mac\":\"CC50E355967C\",\"ip\":\"192.168.178.31\",\"new_fw\":false,\"fw_ver\":\"20211109-125129/v1.11.7-g682a0db\",\"mode\":\"relay\"}","qos":0,"retain":false,"topic":"shellies/shellyswitch-55967C/announce"}


    12/14/2021 21:13:53 Shelly Frontdoor: shellies/shelly1-4FFC37/announce: {"_msgid":"01ca12dcadc81706","_topic":"shellies/shelly1-4FFC37/announce","payload":"{\"id\":\"shelly1-4FFC37\",\"model\":\"SHSW-1\",\"mac\":\"CC50E34FFC37\",\"ip\":\"192.168.178.35\",\"new_fw\":false,\"fw_ver\":\"20211109-124958/v1.11.7-g682a0db\"}","qos":0,"retain":false,"topic":"shellies/shelly1-4FFC37/announce"}

    14.12.2021 21:13:53 Shelly Kitchen: shellies/shellyswitch-55967C/relay/0: {"_msgid":"c8ea34ef8e6d8972","_topic":"shellies/shellyswitch-55967C/relay/0","payload":"on","qos":0,"retain":false,"topic":"shellies/shellyswitch-55967C/relay/0"}

    14.12.2021 21:13:53 Shelly Frontdoor: shellies/shelly1-4FFC37/relay/0: {"_msgid":"4d25495a9532f8b0","_topic":"shellies/shelly1-4FFC37/relay/0","payload":"off","qos":0,"retain":false,"topic":"shellies/shelly1-4FFC37/relay/0"}

    Heute Morgen hatten bei beiden Shellys dann noch mal automatisch geschaltet, diesmal aber ohne eine announce-Message zu senden:

    15.12.2021 03:14:06 Shelly Kitchen: shellies/shellyswitch-55967C/relay/0: {"_msgid":"2f6a5367e64125d4","_topic":"shellies/shellyswitch-55967C/relay/0","payload":"on","qos":0,"retain":false,"topic":"shellies/shellyswitch-55967C/relay/0"}

    15.12.2021 03:14:06 Shelly Frontdoor: shellies/shelly1-4FFC37/relay/0: {"_msgid":"0b16c26d77d91e53","_topic":"shellies/shelly1-4FFC37/relay/0","payload":"off","qos":0,"retain":false,"topic":"shellies/shelly1-4FFC37/relay/0"}

    An den Min- und Max MQTT Reconnect Timeouts oder an der Keep alive time habe ich in den Shellys noch nie etwas verstellt!

    Komisch ist auch, dass bei dem Shelly 2 immer nur der eine Kanal betroffen ist und noch die das Licht auf dem anderen Kanal von alleine an- oder ausgegangen ist!?

    Vielleicht hat ja von euch noch einer eine Idee was das Verhalten erklären könnte?

    Ein ähnliches Verhalten wird bei einem Shelly Pro 4 übrigens auch in folgenden Post beschrieben:
    ShellyPro4PM Schaltet sich aus

  • Hallo Marzipanologe (klingt lecker!),

    das ist tatsächlich ein merkwürdiges Verhalten. Solche Effekte kenne ich, wenn mein Node-Red Raspi neu gestartet wird und manchmal! dann Schaltungen, die nicht retained sind, trotzdem nochmal ausgeführt werden.

    Probier mal, in den shellies und in den Node-Red Ausgängen die QoS auf 2 zu stellen. Damit dürften die Aktionen ja nur genau 1x (mit Rückschein) ausgeführt werden...

    VG Martin

  • Interessanter als die MQTT-Logs wäre zeitnah nach einem solchen Verhalten der Aufruf

    Code
    IP/status

    um in der Response den Grund des Schaltvorgangs zu erkennen. ;)

  • Hallo Marzipanologe (klingt lecker!),

    das ist tatsächlich ein merkwürdiges Verhalten. Solche Effekte kenne ich, wenn mein Node-Red Raspi neu gestartet wird und manchmal! dann Schaltungen, die nicht retained sind, trotzdem nochmal ausgeführt werden.

    Probier mal, in den shellies und in den Node-Red Ausgängen die QoS auf 2 zu stellen. Damit dürften die Aktionen ja nur genau 1x (mit Rückschein) ausgeführt werden...

    VG Martin

    Hallo Martin!
    Danke schon mal für den Tipp!
    Ich hatte gestern auch schon überlegt, ob vielleicht der Shelly selbst neu startet aber unter http://%7bshely_ip%7d/status sieht man auch die Laufzeit des Shellys und die beiden liefen durch. NodeRed und Mosquitto werden auch nicht neu gestartet. Falls Nachrichten "nachversendet" würden, sollte die ja eigentlich dem zuletzt gesendeten Status entsprechen und dann sollte sich am Device selbst nichts tun.
    Ich frage mir nur, ob dann nicht auch ein grundsätzliches Problem mit Node-Red und/oder Mosquitto vorhanden sein müsste und das Verhalten hin und wieder auch bei anderen Shelly-Devices auftreten sollte!? Unter dem Topic shellies/shelly1-4FFC37/relay/0/command stehe ich zu dem Zeitpunkt auch keine Nachricht mit einem Payload, der die Shellys ein- oder auschalten würde.

    Aber vielleicht liegt das Problem eher im Shelly selbst? Ich versuche mal, was bei QoS 2 passiert!

  • Interessanter als die MQTT-Logs wäre zeitnah nach einem solchen Verhalten der Aufruf

    Code
    IP/status

    um in der Response den Grund des Schaltvorgangs zu erkennen. ;)

    Gute Idee! Ich baue ich mal mit ins Log ein, dass der Status per HTTP GET mit abgefragt und protokolliert wird!

  • Dieses Thema enthält 2 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind, bitte registrieren Sie sich oder melden Sie sich an um diese lesen zu können.