Schaltzustände Abgleichen

Begonnen von seule3008, 20 November 2021, 15:21:15

Vorheriges Thema - Nächstes Thema

seule3008

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






Beta-User

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...)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

seule3008

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

Beta-User

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).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

seule3008

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

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Beta-User

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.... ;) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Beta-User

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 ;) ...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

seule3008

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

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

seule3008

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