FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: seule3008 am 20 November 2021, 15:21:15

Titel: Schaltzustände Abgleichen
Beitrag von: seule3008 am 20 November 2021, 15:21:15
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





Titel: Antw:Schaltzustände Abgleichen
Beitrag von: Beta-User am 20 November 2021, 15:57:59
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...)
Titel: Antw:Schaltzustände Abgleichen
Beitrag von: seule3008 am 20 November 2021, 16:29:17
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
Titel: Antw:Schaltzustände Abgleichen
Beitrag von: Beta-User am 20 November 2021, 16:34:30
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).
Titel: Antw:Schaltzustände Abgleichen
Beitrag von: seule3008 am 20 November 2021, 16:55:26
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
Titel: Antw:Schaltzustände Abgleichen
Beitrag von: Otto123 am 20 November 2021, 17:09:45
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
Titel: Antw:Schaltzustände Abgleichen
Beitrag von: Beta-User am 20 November 2021, 17:15:14
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.... ;) .
Titel: Antw:Schaltzustände Abgleichen
Beitrag von: Beta-User am 20 November 2021, 17:33:41
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 ;) ...
Titel: Antw:Schaltzustände Abgleichen
Beitrag von: seule3008 am 20 November 2021, 19:57:18
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
Titel: Antw:Schaltzustände Abgleichen
Beitrag von: Otto123 am 20 November 2021, 23:55:41
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
Titel: Antw:Schaltzustände Abgleichen
Beitrag von: seule3008 am 23 November 2021, 22:26:46
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