huhu,
hab nun meine erweiterte Treppenhausschaltung mit dem Shelly 1pm und Tasmota fast fertig
die Steuerung funktioniert bis auf einen kleinen Schönheitsfehler, evtl. kann mir dabei jemand helfen
Hier mal die Funktion
Wenn man im Openhab oder am Schalter (kein Taster) das Licht einschaltet, läuft ein Ruletimer von 10 Minuten wenn man in diesen 10 Minuten erneut den Schalter drückt oder im Openhab schaltet geht das Licht wider aus.
Wenn man nicht ausschaltet, blinkt nach diesen 10 Minuten das Licht 1x (geht einmal kurz aus und wider an) und brennt dann für weitere 10 Sekunden,
macht man nichts wird dieser Zyklus weitere 2x widerholt, danach geht das Licht aus.
Schaltet man in dieser Zeit wird erneut der 10 Minuten Ruletimer gestartet, also es beginnt von vorne.
(Das Blinken soll andeuten dass das Licht gleich aus geht und man es mit einem erneuten Druck verlängern kann)
Was ist der Schönheitsfehler?
Wenn man in Openhab das Licht einschaltet (Icon wird Grün Meldung geht auf ON und Schalter geht nach rechts) und man es dann mit dem Schalter ausschaltet, pasiert folgendes im OpenHab (Icon wird Rot Meldung geht auf OFF und Schalter bleibt rechts) der Schalter geht nicht mehr nach Links!
woran das genau liegt kann ich denke schildern, normalerweise wird im Thing der Schalter mit dem cmd POWER an und aus geschaltet, diese option geht aber durch die Regel nicht da sonst die Funktion gestört ist, damit würde aber der Schieberegler funktionieren
um dass die Regel auch mit openhab funktioniert wird eine variable var2 mit den befehlen on und off gesetzt, seit dieser Situation bleibt der Regler hängen, das ist aber nur dann wenn man EIN und AUS getrennt schaltet, schaltet man beides im Openhab oder beides am Schalter tritt dieser Schönheitsfehler nicht auf ausser dass es einmal gemischt gemacht wurde , dann ist der Schalter invertiert.
Hat jemand eine Idee wie man diesen Schönheitsfehler ausmerzen kann?
Hier die nötigen Einstellungen und daten:
Folgendes muss in der Tasmota Konsole einmalig per Hand eingegeben werden
mem1 off
BlinkCount 1
BlinkTime 3
SwitchMode 7
Rule1 1
hier die Regel, wird ebenfalls in die Konsole einmal eingefügt, so wie die da steht (nur im ganzen nicht zeilenweise)
Rule1
on var2#state do event toggle=%mem1%; endon
on Switch1#State do event toggle=%mem1%; endon
on Rules#Timer=1 do backlog RuleTimer1 10; add1 1; power1 3; mem1 OFF; mem2 OFF; endon
on var1#state=3.000 do backlog RuleTimer1 0; var1 0; power1 0; mem1 OFF; endon
on event#toggle=On do backlog mem1 OFF; POWER1 0; RuleTimer1 0; var1 0; endon
on event#toggle=OFF do backlog mem1 ON; POWER1 1; RuleTimer1 60; var1 0; endon
thing:
Code: Alles auswählen
Thing topic Shelly_KG_Treppe_Licht_Thing "KG_Treppe_Licht" {
Channels:
Type switch : PowerSwitch [ stateTopic="stat/Shelly_KG_Treppe_Licht/RESULT", transformationPattern="JSONPATH:$.POWER", commandTopic="cmnd/Shelly_KG_Treppe_Licht/var2", on="ON", off="OFF" ]
Type string : Version "Version Shelly" [ stateTopic="stat/Shelly_KG_Treppe_Licht/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Version"]
Type string : IP "IP vom Shelly" [ stateTopic="stat/Shelly_KG_Treppe_Licht/STATUS5", transformationPattern="JSONPATH:$.StatusNET.IPAddress"]
Type number : Temperature "Temperatur Shelly" [ stateTopic="tele/Shelly_KG_Treppe_Licht/SENSOR", transformationPattern="JSONPATH:$.ANALOG.Temperature"]
Type number : Leistung "Energie Leistung" [ stateTopic="tele/Shelly_KG_Treppe_Licht/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Power" ]
Type number : Total "Energie insgesamt" [ stateTopic="tele/Shelly_KG_Treppe_Licht/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Total" ]
Type number : Heute "Energie Heute" [ stateTopic="tele/Shelly_KG_Treppe_Licht/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Today" ]
Type number : Gestern "Energie Gestern" [ stateTopic="tele/Shelly_KG_Treppe_Licht/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Yesterday" ]
}
item:
Code: Alles auswählen
// Shelly_KG_Treppe_Licht //
Switch Shelly_KG_Treppe_Licht "KG Treppe Licht" { channel="mqtt:topic:MQTT_Broker:Shelly_KG_Treppe_Licht_Thing:PowerSwitch" }
String Shelly_KG_Treppe_Licht_V "Version Shelly [%s]" { channel="mqtt:topic:MQTT_Broker:Shelly_KG_Treppe_Licht_Thing:Version" }
String Shelly_KG_Treppe_Licht_IP "IP vom Shelly [%s]" { channel="mqtt:topic:MQTT_Broker:Shelly_KG_Treppe_Licht_Thing:IP" }
Number Shelly_KG_Treppe_Licht_T "Temperatur Shelly [%s °C]" { channel="mqtt:topic:MQTT_Broker:Shelly_KG_Treppe_Licht_Thing:Temperature" }
Number Shelly_KG_Treppe_Licht_P "Leistung [%s W]" { channel="mqtt:topic:MQTT_Broker:Shelly_KG_Treppe_Licht_Thing:Leistung" }
Number Shelly_KG_Treppe_Licht_ET "Energie insgesamt [%s kWh]" { channel="mqtt:topic:MQTT_Broker:Shelly_KG_Treppe_Licht_Thing:Total" }
Number Shelly_KG_Treppe_Licht_E "Energie heute [%s kWh]" { channel="mqtt:topic:MQTT_Broker:Shelly_KG_Treppe_Licht_Thing:Heute" }
Number Shelly_KG_Treppe_Licht_Y "Energie gestern [%s kWh]" { channel="mqtt:topic:MQTT_Broker:Shelly_KG_Treppe_Licht_Thing:Gestern" }
sitemap:
nn
Code: Alles auswählen
// Shelly_KG_Treppe_Licht //
Switch Shelly_KG_Treppe_Licht "KG Treppe Licht" { channel="mqtt:topic:MQTT_Broker:Shelly_KG_Treppe_Licht_Thing:PowerSwitch", autoupdate="true" }
String Shelly_KG_Treppe_Licht_V "Version Shelly [%s]" { channel="mqtt:topic:MQTT_Broker:Shelly_KG_Treppe_Licht_Thing:Version" }
String Shelly_KG_Treppe_Licht_IP "IP vom Shelly [%s]" { channel="mqtt:topic:MQTT_Broker:Shelly_KG_Treppe_Licht_Thing:IP" }
Number Shelly_KG_Treppe_Licht_T "Temperatur Shelly [%s °C]" { channel="mqtt:topic:MQTT_Broker:Shelly_KG_Treppe_Licht_Thing:Temperature" }
Number Shelly_KG_Treppe_Licht_P "Leistung [%s W]" { channel="mqtt:topic:MQTT_Broker:Shelly_KG_Treppe_Licht_Thing:Leistung" }
Number Shelly_KG_Treppe_Licht_ET "Energie insgesamt [%s kWh]" { channel="mqtt:topic:MQTT_Broker:Shelly_KG_Treppe_Licht_Thing:Total" }
Number Shelly_KG_Treppe_Licht_E "Energie heute [%s kWh]" { channel="mqtt:topic:MQTT_Broker:Shelly_KG_Treppe_Licht_Thing:Heute" }
Number Shelly_KG_Treppe_Licht_Y "Energie gestern [%s kWh]" { channel="mqtt:topic:MQTT_Broker:Shelly_KG_Treppe_Licht_Thing:Gestern" }
PS: Es gäbe zu der Option mit der
Var2 eine alternative in dem man es auf
Power lässt, und man dafür eine Pulsetime setzt die 5 Sekunden länger als die Zeit im RuleTimer ist, das würde funktionieren, aber ich möchte eine 2. Regel erstellen die wie folgt funktioniert
Wenn man den Schalter 5 Sekunden gedrückt hällt, wird die erste Regel auser Kraft gesetzt und das Licht brennt dauerhaft bis man es mit einem 5 Sekunden Tastendruck wider ausschaltet, das würde mit dem Pulsetimer nicht gehen, es sei denn man tut diesen in der regel ebenfalls deaktivieren was ja auch machbar wäre
ich würde aber gerne die oben beschriebene Variante vorziehen, da damit auch die Ausschaltvorwarnung funktioniert.