notify help - SAT receiver state off --> Licht aus

Begonnen von ChristianH, 18 September 2017, 20:40:33

Vorheriges Thema - Nächstes Thema

ChristianH

Hallo in die Runde,

Ich bräuchte maöl eure Hilfe - ich möchte die state Änderung meines Sat Receivers zum Schalten einer Lampe nutzen (wenn aus, dann kann 15 min später auch das Licht im Wohnzimmer aus usw.)

Folgendes habe ich definiert:

DEF                  wz.SATReceiver:state:off set IT_V3_Dose4 off
NAME             ntest
NOTIFYDEV     wz.SATReceiver
REGEXP          wz.SATReceiver:state:off
STATE             active
TYPE               notify

Irgendwie löst die State Änderung vom wz.SATReceiver von "on" zu "off" nichts aus - habe ich hier einen Denkfehler? "set IT_V3_Dose4 off/on" funktioniert händisch perfekt.

Gruss und Danke

Christian

KölnSolar

versuch es mal ohne state:  ;)

Die events/regex immer so aufbauen, wie sie im event monitor zu sehen sind. Dort kannst Du Dir ein notify auch über den Create/Modify Device Button erzeugen lassen.
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

pcbastler

Ich mach das ähnlich mit einem notify, TV aus -> Licht aus.
DEF: SonyTV:off.* {fhem("set WZ_Licht_Sw off")}
REGEXP: SonyTV:off.*

CoolTux

Wer bringt den Anfängern bloß den Unsinn bei auf Perlebene gehen zu müssen bei einem einfachen set Befehl.

DEF: SonyTV:off.* set WZ_Licht_Sw off


Und es sollte nur ein off ohne weitere RegEx auf Zeichen reichen

DEF: SonyTV:off set WZ_Licht_Sw off

Es sei denn im Event steht hinter off noch mehr



wz.SATReceiver:off set IT_V3_Dose4 $EVENT

Sollte reichen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

pcbastler

Sorry, ich hab nur den passenden Ausschnitt gepostet.
Komplett sieht das DEF so aus:

SonyTV:off.* {fhem("IF ([WZ_Fenster] eq \"closed\") (set WZ_heiz1_Clima controlMode auto)"); fhem ("set WZ_Licht_Sw off")}


Anders hab ich das mit IF und mehreren Befehlen einfach nicht hinbekommen :(

CoolTux

Zitat von: pcbastler am 19 September 2017, 12:14:40
Sorry, ich hab nur den passenden Ausschnitt gepostet.
Komplett sieht das DEF so aus:

SonyTV:off.* {fhem("IF ([WZ_Fenster] eq \"closed\") (set WZ_heiz1_Clima controlMode auto)"); fhem ("set WZ_Licht_Sw off")}


Anders hab ich das mit IF und mehreren Befehlen einfach nicht hinbekommen :(

Da Du das FHEM IF verwendest brauchst Du auch hier nicht auf Perlebene gehen. Schau mal bitte in die Commandref wie man es macht.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Otto123

#6
Würde ich so versuchen (DEF), das Erste ist die IF Bedingung, das Zweite nach dem Semikolon einfach ein Befehl
SonyTV:off.* IF ([WZ_Fenster] eq "closed") (set WZ_heiz1_Clima controlMode auto); set WZ_Licht_Sw off

Quelle
https://fhem.de/commandref_DE.html#command
https://fhem.de/commandref_DE.html#IF

@Christian Zur eigentlichen Frage: Beachte unbedingt den Hinweis von Kölnsolar! https://wiki.fhem.de/wiki/Event_monitor

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

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Hoggle

Hallo.
Ich hänge mich da mal an, auch auf die Gefahr der Steinigung ???:

Mein Receiver ist aus, also State:off und die Dämmerung setzt ein. Meine Lampe (wz.Schranklicht) geht an

defmod Wz.Lichtsim.on at *{sunset("REAL",-1000,"16:00","22:15")} set  Wz.Schranklicht on

Naja, das Licht geht 1000 Sekunden früher an  ;)

So wie es bei uns üblich ist, setzen wir uns irgendwann vor den Fernseher und schalten den Receiver an (State:on)

jetzt gibt es aber 2 Situatione, wann das Licht (wz.sch...) ausgehen soll:

1. Wenn wir nicht zuhause sind, dann geht es ein paar Stunden nach Sonnenuntergang aus (Das kann ich und hab ich wie folgt gemacht):

defmod Wz.Lichtsim.off at *{sunset("REAL",10000,"16:00","22:15")} set  Wz.Schranklicht off


ABER: Wenn der Fernseher läuft, dann soll das Licht erst 1 Minute nach dem ausschalten des Receivers ausgehen. Da scheine ich zu blöd zu sein.
Wie kann ich das denn einbinden? Ich habe an ein IF gedacht, oder sollte ich auf doif schauen? Kann mir da jemand weiterhelfen?
Mir fehlt die Zeitverzögerung. Wenn das Licht ausgehen soll, wenn der Fernseher ausgeht, dann sehe ich kein Problem, aber ich möchte ja noch bis in die Küche kommen, ohne gegen die Tür zu treten (Ich glaube, die verschiebt sich im dunkeln  ::)

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Hoggle

#10
Zitat von: CoolTux am 19 September 2017, 13:08:55
Du könntest ein sleep davor setzen

Mhh, das habe ich verstanden, aber wenn der Fernseher an ist, dann möchte ich das Licht ja nicht 10000 Sekunden nach Sonnenuntergang ausschalten (Mit oder ohne sleep) sondern erst, wenn der Fernseher ausgeschaltet wird und dann mit 60 Sekunden Verzögerung.

Bin leider nicht zuhause, aber vom Verständnis her, kann das wie folgt funktionieren??:

defmod Wz.Lichtsim.off at *{sunset("REAL",10000,"16:00","22:15")} IF ([receiver:state] = off) (set  Wz.Schranklicht off)

und dann mit nem Notify beim ausschalten des receivers mit einem sleep 60 das licht ausschalten??:
defmod n_WZ_schranksch notify ([receiver] eq "off") (sleep 60) (set  Wz.Schranklicht off)

Hab ich da irgend etwas richtig gemacht? ???

CoolTux

Leider nein


defmod n_WZ_schranksch notify receiver:off sleep 60; set  Wz.Schranklicht off
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

ChristianH

Sehr cool - nun läuft es. Nun haben ja einige in diesem Thread ähnliche Vorhaben geäussert - ich dachte, alles weitere wäre einfach. Wie kombiniere ich das den mit eine Bedingung von "nur zwischen 22:00-23:55" ..... also nur innerhalb der knapp 2h soll ein Receiver ausschalten auch den Licht auschalten (mit sleep verzögert).

Danke für eure Hilfe

Christian

CoolTux

Dafür hatte ich mir mal Code geklaut und hier angeboten. Mom ich schaue.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net