Hauptmenü

Notify bei Tahoma

Begonnen von Det20, 17 Januar 2017, 13:09:55

Vorheriges Thema - Nächstes Thema

Det20

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?

Markus Bloch

Versuchs mal so:

define timerWW notify tahoma_6:OnOffState:.on|tahoma_6:OnOffState:.off set FBDECT_18 on-for-timer 60
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Det20

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

Markus Bloch

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
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Det20

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")}}

Markus Bloch

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)

Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Det20

Vielen Dank für Deine Hilfe!
Cheers!