FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Det20 am 17 Januar 2017, 13:09:55

Titel: Notify bei Tahoma
Beitrag von: Det20 am 17 Januar 2017, 13:09:55
Hallo,

man möge mir verzeihen und ich habe auch Google/das Forum durchsucht und viele, viele Beispiele probiert ... nur klappt es irgendwie nie. Also, ich habe eine Tahoma Box angebunden. Ich möchte nun, wenn einer der UP Schalter auf on wechselt, einen Fritz DECT schalten. Dafür habe ich definiert:

define timerWW notify tahoma_6:OnOffState:on|tahoma_6:OnOffState:off set FBDECT_18 on-for-timer 60

Laut Event Monitor kommt das Ereignis "OnOffState" mit dem Wert "off" bzw. "on" rein. Aber egal was ich versuche, die Steckdose (DECT) wird nicht geschaltet. Fange ich hingegen "tahoma_6:OnOffState*" ab, funktioniert es. Wo liegt denn hier der Fehler? Muss ich mit : oder . arbeiten? Und sind die Abfragen/erwarteten Werte Case-Sensitiv?
Titel: Antw:Notify bei Tahoma
Beitrag von: Markus Bloch am 17 Januar 2017, 13:16:35
Versuchs mal so:

define timerWW notify tahoma_6:OnOffState:.on|tahoma_6:OnOffState:.off set FBDECT_18 on-for-timer 60
Titel: Antw:Notify bei Tahoma
Beitrag von: Det20 am 17 Januar 2017, 13:40:57
Danke die Kombination hatte ich noch nicht probiert. Gerät wird von Ereignis mit einem : getrennt, ok. Aber wieso das :.on? Also wieso :.?
Und sind die Abfragen/erwarteten Werte Case-Sensitiv
Titel: Antw:Notify bei Tahoma
Beitrag von: Markus Bloch am 17 Januar 2017, 13:44:21
Weil dein Ausdruck auf folgendes Event matchen muss:

tahoma_6:OnOffState: off

Das ganze ist ja <NAME>:<EVENT> wobei Name und Event aus folgendem Inhalt besteht:

NAME = "tahoma_6"
EVENT = "OnOffState: off"

Da das Event quasi der Readingname + Wert enthält ist nach dem Readingname ein Doppelpunkt mit Leerzeichen. Dieses Leerzeichen muss man im regulären Ausdruck entsprechend berücksichtigen. Die einfachste Variante ist daher hier einen Punkt einzuschieben.

Gruß
Markus
Titel: Antw:Notify bei Tahoma
Beitrag von: Det20 am 17 Januar 2017, 13:48:55
Ah, das Leerzeichen war der Fehler, ok. Eine Frage noch: Wie kann ich das mit einem IF verstricken? DECT soll nur geschaltet werden, wenn es aktuell nicht geschaltet ist.

define timerWW notify tahoma_6:OnOffState:.on {(if FBDECT_18:state eq "off") {fhem("set FBDECT_18 on-for-timer 60")}}
Titel: Antw:Notify bei Tahoma
Beitrag von: Markus Bloch am 17 Januar 2017, 13:51:55
Zum Beispiel mit dem IF-Befehl (https://fhem.de/commandref_DE.html#IF)

define timerWW notify tahoma_6:OnOffState:.on IF ([FBDECT_18:state] eq "off") (set FBDECT_18 on-for-timer 60)

Titel: Antw:Notify bei Tahoma
Beitrag von: Det20 am 17 Januar 2017, 13:54:40
Vielen Dank für Deine Hilfe!
Cheers!