Hallo,
ich würd gerne in meiner Installation ( Shelly2.5 per MQTT dann 24V Trafo und danach einen Shelly RGBW2 per MQTT und alles im HomeKit) mit einem Schaltvorgang das Licht ein und Ausschalten. Meine ersten Versuche waren das mit der setList im Shelly zu lösen was allerdings ohne Erfolg war. Danach habe ich versucht das Ganze mit einer Structure zu lösen was teilweise funktionierte allerdings bekam ich keine Rückmeldung, wenn ich das Licht an dem Taster in der Wand geschaltet habe. Dann hatte Beta-User mich auch den Weg mit einem Notify gebracht. Bei einem Notify klappte es in einer Richtung also, wenn ich den Shelly RGBW ein oder aus Schalte schaltet auch der Shelly 2.5 mit aber andersherum nicht. Da habe ich nichts gefunden ob man mehrere Bedingungen in ein Notify schreiben kann in meinem Fall. Somit kam ich zu DOIF da weiß ich das mehrere Bedingungen gehen. Allerdings komme ich nicht weiter wie ich das schreiben soll ohne das die Zustände sich gegenseitig aufheben. Eigentlich sollen beide Device immer den gleichen Status haben egal was ich von wo schalte.
Probiert habe ich folgendes allerdings Funktioniert nur cmd 1 und 2 danach beißt sich das ganze.
([Licht_WZ:relay0] eq "on" and [Licht_Kueche:state] eq "off") (set Licht_Kueche on)
DOELSEIF([Licht_WZ:relay0] eq "off" and [Licht_Kueche:state] eq "on") (set Licht_Kueche off)
DOELSEIF([Licht_Kueche:state] eq "on" and [Licht_WZ:state] eq "off") (set Licht_WZ on)
DOELSEIF([Licht_Kueche:state] eq "off" and [Licht_WZ:state] eq "on") (set Licht_WZ off)
Hierbei funktioniert nur eine Richtung:
([Licht_WZ:relay0] ) (set Licht_Kueche [$DEVICE:relay0])
DOELSEIF([Licht_Kueche:state]) (set Licht_WZ $EVENT)
Vielleicht kann mir da jemand helfen.
Vielen Dank im Voraus
Christian
Lösung für notify von https://forum.fhem.de/index.php/topic,117878.msg1123118.html#msg1123118, ungetestet angepaßt:
defmod n_switchtogether notify Licht_WZ:o[nf]+|Licht_Kueche:o[nf]+ set (Licht_WZ|Licht_Kueche):FILTER=state!=$EVENT $EVENT
(Das unterstellt, dass auch Licht_WZ ein state-Event hat und nicht nur relay0 einen Event wirft...)
Hallo,
vielen Dank. Es funktioniert auf Anhieb. Ich würde das ja wirklich gerne verstehen. Gibt es eine Möglichkeit, dass ich das aufdröseln kann um zu verstehen was genau da steht und passiert? Ich müsste mir noch eine Verzögerung von ca 5 Sekunden da mit einbauen, damit der Shelly Zeit hat sich ins Wlan einzuloggen bis er den Befehl "on" bekommt. Wenn er direkt den Befehl ohne Strom bekommt bleibt das Device auf "set_on " stehen und die Birne mit dem Ausrufungszeichen ist da, was jetzt auch nur ein Schönheitsfehler ist denn an geht er sobald Spannung anliegt. Ich würde das gerne verstehen und mir selbst erarbeiten aber, wenn ich deine Codezeile sehe, sehe ich nur Bahnhof.
Vielen Dank
Christian
Sollte so gehen:
defmod n_switchtogether notify Licht_WZ:o[nf]+|Licht_Kueche:o[nf]+ sleep 5;;set (Licht_WZ|Licht_Kueche):FILTER=state!=$EVENT $EVENT
Bitte erst mal die Wiki-Seite zu notify und die commandref lesen, und dich etwas mit der Detail-Seite dieses Devices befassen. Fragen zu den Details beantworte ich dann gerne danach (grade ist auch wenig Zeit dazu).
Danke für die schnelle Antwort.
Funktioniert leider nicht, aber du hast mir schon sehr weiter geholfen. Ich werde mir die genannten Artikel durchlesen und mich daran probieren. Falls dann noch Fragen offen sein sollten werde ich mich melden.
Vielen Dank nochmal
Grüße
Christian
Den Trigger im notify kannst Du ev. hiermit "nachlesen" https://regex101.com/r/auA7Ox/1
"funktioniert nicht" ist komisch, gibt es Fehler im Log?
Zeig mal ein list n_switchtogether
Gruß Otto
Man muss dann disableAfter... so setzen, dass der verzögerte Schaltvorgang innerhalb der Spanne liegt, sonst hat das einen lustigen Effekt, wenn man zwischendurch gegen-Schaltet.... ;) .
so kann man das m.E. vermeiden:
defmod n_switchtogether notify Licht_WZ:o[nf]+|Licht_Kueche:o[nf]+ cancel $SELF quiet;; sleep 5 $SELF quiet;; set (Licht_WZ|Licht_Kueche):FILTER=state!=$EVENT $EVENT
Die Lektüre-Emfpfehlung wird um "help sleep" und "help cancel" erweitert ;) ...
Hallo Otto123,
Das Log file ist leer. Anbei auch noch das List von dem Notify
Internals:
CFGFN
DEF Licht_WZ:o[nf]+|Licht_Kueche:o[nf]+ sleep 5;;set (Licht_WZ|Licht_Kueche):FILTER=state!=$EVENT $EVENT
FUUID 61990eb7-f33f-b214-f54d-4d0345681feb62a3
NAME NOTIFY_LED_Spitze
NOTIFYDEV Licht_Kueche,Licht_WZ
NR 51801
NTFY_ORDER 50-NOTIFY_LED_Spitze
REGEXP Licht_WZ:o[nf]+|Licht_Kueche:o[nf]+
STATE 2021-11-20 19:56:25
TRIGGERTIME 1637434585.49892
TYPE notify
READINGS:
2021-11-20 19:50:58 state active
Attributes:
Viele Grüße
Christian
Hallo Christian,
ein leeres Log File ist sehr bedenklich!
Du hast Beta-Users Vorschlag in die DEF geschrieben, deswegen funktioniert es nicht!!! In der DEF muss anstatt sleep 5;;set sowas stehen: sleep 5;set
Gruß Otto
Hallo Otto
Ja hab das mit 2;; genommen. Probiere es aber morgen mit einem ; aus.
Danke für die Info und Hilfe.
Viele Grüße