NEWS
Power-State einer Shelly-Lampe am physischen Schalter
-
Ich habe Shelly-Lampen und schalte sie über den normalen Lichtschalter. Sie wird also physisch stromlos. Ich suche nun einen Trigger um über ioBroker festzustellen, welchen Status sie tatsächlich hat.
Derzeit habe ich mir zwei Felder definiert: "uptime" und "powered" (im folgenden Script spreche ich sie mit "virtualUptime" und "virtualPowered" an Mit diesem Script erkenne ich den Zusatnd über den Vergleich der UP-Timelet realDevice:string = "shelly.0.SHCB-1#98CDAC1E2F57#1.uptime"; let virtualDevicePath:string = "0_userdata.0.Shelly.Lampe_Esszimmertisch."; // *************************************************************************************************** // Uptime Shelly is checked every 20 seconds - so it makes no sense to use a smaller interval here // *************************************************************************************************** schedule("*/20 * * * * *", async function () { let realUptime:number = Number(getState(realDevice).val); let virtualUptime:number = Number(getState(virtualDevicePath+"uptime").val); let virtualPowered:boolean = Boolean(getState(virtualDevicePath+"powered").val); // ************************************************************************************************ // realUptime does not change any more when bulb ist physically switched off. // Means, if it remains same, when checked again, we know for sure it is not working. // So we set the virtualPowered statalso to flase (off)! // ************************************************************************************************ let switchedOn = !(realUptime == virtualUptime); if (switchedOn) { setState(virtualDevicePath+"uptime", realUptime, true); }; if (!(switchedOn === virtualPowered)) { setState(virtualDevicePath+"powered", switchedOn, true); }; });
Elegant erscheint mir das nicht.
-
Kompakter würde ich es auch nicht hinbekommen...
Gibt es im Daten-Baum der Shelly-Lampe keinen Datenpunkt "alive" oder "connected"? Der wäre doch ansonsten prädestiniert, das physische Ausschalten zu tragen (!alive)....
Der real sichtbare Schaltzustand ist jedenfalls (PhysischAn && powered )
!(realUptime == virtualUptime) würde ich durch (realUptime != virtualUptime) ersetzen ...
-
@martinp said in Power-State einer Shelly-Lampe am physischen Schalter:
Gibt es im Daten-Baum der Shelly-Lampe keinen Datenpunkt "alive" oder "connected"? Der wäre doch ansonsten prädestiniert, das physische Ausschalten zu tragen (!alive)....
Es gibt ein Feld "online", das könnte ich vielleicht nehmen. Sonst ist mir nichts eingefallen
Der real sichtbare Schaltzustand ist jedenfalls (PhysischAn && powered )
Powered wird aber nur am Softschalter gesetzt. Mein Lichtschalter nimmt nur den Strom weg. Dann kann die Lampe natürlich nichts mehr melden. Da passt vielleicht das o.g Feld "online" rein. Womöglich pflegt der Adapter das. Dann würde das ja passen. Ich versuchs mal.
!(realUptime == virtualUptime) würde ich durch (realUptime != virtualUptime) ersetzen ...
Hast recht - ist besser lesbar.
-
@gombersiob Da ich keine shelly Lampe habe, fische ich im Trüben: Wie verhält sich denn die Lampe in folgenden beiden Situationen nach dem Wieder-Einschalten des normalen Lichtschalters, wenn man ihn kurz ausschaltet:
Lampe "SoftOn" beim Ausschalten des Lichtschalters -> Ist die Lampe nach dem wieder-Einschalten An?
Lampe "SoftOff" beim Ausschalten des Lichtschalters -> Ist die Lampe nach dem wieder-Einschalten An? -
@martinp said in Power-State einer Shelly-Lampe am physischen Schalter:
Da ich keine shelly Lampe habe, fische ich im Trüben
Das hatte ich mir gedacht. Ich hatte auch gedacht, dass jemand mit Shelly bulb-Erfahrung antwortet. Ich habe jetzt mal auf das Feld "online" getriggert. Das scheint zu funktionieren, Ich finde nur keine Beschreibung dazu. Ich lebe mal damit, bis es Probleme gibt.
Die Lampe ist nach Einschalten am Schalter immer wieder da - egal ob sie SoftOn oder SoftOff-Status beim Ausschalten hatte
-
Okay, wenn der Soft Off Datenpunkt nach dem Einschalten der Shelly-Lampe über den Lichtschalter auch den realen Zustand wiederspiegelt, wird das doch einfach ...
der reale Schaltzustand ist dann ("Online" && "SoftOn")
Online == False, SoftOn == Egal -> Realer Schaltzustand = False
Online == Egal, SoftOn == False -> Realer Schaltzustand = False
nur bei ...Online = True, SoftOn =True -> Realer Schaltzustand = True...
Eine Unklarheit gibt es natürlich, wenn die Shelly-Lampe aus dem WLAN fliegt, aber der Netzschalter an bleibt ...
-
@martinp said in Power-State einer Shelly-Lampe am physischen Schalter:
Okay, wenn der Soft Off Datenpunkt nach dem Einschalten der Shelly-Lampe über den Lichtschalter auch den realen Zustand wiederspiegelt
Das ist ja nicht der Fall: SoftOff wird ja bei mir nie gesetzt, es ist immer SoftOn - auch wenn es physisch ausgeschaltet ist. Der Status dieses Schalters ist nicht aussagekräftig. Wie gesagt ich teste jetzt auf online alleine und hoffe dass es auch immer auf online geht, wenn es eingeschaltet ist.
-
@gombersiob Okay, Du nutzt die Fernbedienbarkeit der Sonoff-Lampe generell nicht, oder nur bzgl. des An/Ausschaltens nicht?
-
@martinp said in Power-State einer Shelly-Lampe am physischen Schalter:
Okay, Du nutzt die Fernbedienbarkeit der Sonoff-Lampe generell nicht
So ist es