Gekoppelte Shelly 1 werden ungewollt zum Oszillator

  • Ich habe zwei Shelly-1, die im Prinzip jeweils eine Lampe schalten (in Wahrheit ist es etwas komplizierter, siehe hier, sollte aber für das Problem hier keine Rolle spielen). Jeder der beiden hat Action-URLs wie folgt:

    OUTPUT SWITCHED ON URL:

    http://<Adresse anderer Shelly>/relay/0?turn=on

    OUTPUT SWITCHED OFF URL:

    http://<Adresse anderer Shelly>/relay/0?turn=off

    Und dazu Button Type auf "Edge", Power on default Mode = OFF.

    Wenn also eine Seite EIN schaltet, geht die andere mit. Und wenn man per API irgendwas schaltet, macht das nächste manuelle Schalterumlegen rückgängig (wegen "edge"). Soweit so gut - funktioniert im Prinzip einwandfrei.

    Aber es gibt nun doch ein in der Praxis selten auftretendes (aber wenn man es darauf anlegt leicht reproduzierbares) Problem:

    Wenn die beiden Lichter eingeschaltet sind und ich dann an einem Shelly-Taster AUS und schnell (aber erst nachdem die lokale Lampe ausging) wieder EIN schalte, dann fängt das Gesamtgebilde an zu oszillieren! Meistens hilft nur noch die Sicherung, um es wieder zu stoppen.

    Ich vermute es liegt an Verzögerungen im Netz (die gekoppelten Shellys sind übrigens in verschiedenen WLANs) und stelle mir das so vor:

    Ich sende der Gegenseite AUS, und diese tut das und sendet AUS zurück, was normalerweise nichts bewirkt. Wenn ich aber beim Eintreffen des "Echos" lokal schon wieder angeschaltet habe, schaltet das Echo ihn gleich wieder aus, was einen AUS-Befehl in die andere Richtung auslöst. Währenddessen läuft aber das manuelle ausgelöste AN bereits rüber zur Gegenseite und schaltet diese ein, kurz bevor dann das AUS eintrifft usw. usf. ==>> Geflacker ohne Ende.

    Gibt es dafür eine Lösung (ohne die funktionierende Grundfunktion) zu ändern?

  • Probiere mal bei einem Shelly die Actions zu deaktivieren und stattdessen unter Switch turned on / off jeweils die Toggle Action an den anderen zu senden. Button Type muss dann "detached" sein.

    Aber eben nur bei einem der Shellies!

    Für den umgestellten gilt dann:

    Schalterzustand geändert -> sende "toggle" an den anderen -> der andere sendet "on", bzw. "off" zurück.


  • Das sieht nach einer sehr guten Idee aus, auch erste Tests verliefen vielversprechend.

    Es deckt nur zwei eher exotische Fälle nicht so ab, wie die ursprüngliche Lösung:

    - wenn das WLAN oder Stromnetz beim "edge-type"-Shelly ausfällt, lässt sich mit dem Schalter am anderen gar nichts mehr schalten, also auch nicht das lokale Licht.

    - wenn man auf dem "detached-type"-Shelly per Webinterface das Licht einschaltet, dann geht das andere nicht mit an.

    Die Einschränkungen sind aber so minimal, dass ich damit wohl allemal besser fahre als mit dem Oszillator-Risiko.

  • Für ersten Fall könntest du versuchen, dass du es nochmals in den vorherigen Zustand versetzt und hinter die Actions "&Timer=1" (ohne ") setzt. On und off muss dann umgedreht werden.

    Für zweiteren Fall blende einfach den Shelly aus, der den anderen nicht per Web-UI steuert.

  • Für ersten Fall könntest du versuchen, dass du es nochmals in den vorherigen Zustand versetzt und hinter die Actions "&Timer=1" (ohne ") setzt. On und off muss dann umgedreht werden.

    Was bewirkt das? In der Doku steht "A one-shot flip-back timer in seconds", aber nicht, was vor und nach der Verzögerung passiert.

    Also das wäre dann nach Deiner Beschreibung mit on/off über Kreuz sowas (wieder mit Button Type = edge):

    OUTPUT SWITCHED ON URL:

    http://<Adresse anderer Shelly>/relay/0?turn=off&timer=1

    OUTPUT SWITCHED OFF URL:

    http://<Adresse anderer Shelly>/relay/0?turn=on&timer=1

    Das verstehe ich aber nicht.

  • Dieses Thema enthält 5 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind.