Hallo,
eine kleine Frage:
ich habe ein notify definiert. Das DEF sieht folgendermaßen aus:
CUL_FHTTK_194d8b.(open|closed)
{
if("$EVENT" eq "open")
{ fhem("set FS20_774a74 on") }
else
{ fhem("set FS20_774a74 off"); }
}
Das Ganze soll so funktionieren: Wenn das Fenster auf ist, wird die Steckdose einschaltet, ist das Fenster zu, soll sie ausgeschaltet werden.
Das obige funktioniert, wenn ich mit "trigger CUL_FHTTK_194d8b open" oder ".. closed" das teste.
Mache ich das Fenster auf und zu, funktioniert es nicht.
Im Log sehe ich einen kleinen Unterschied:
per Trigger ausgelöst, steht ... CUL_FHTTK194d8b closed (oder open)
und per realem Fenster ausgelöst, steht da CUL_FHTTK194d8b Closed (oder Open)
Ich kann per trigger aber auch kein Open oder Closed setzen (Groß-/Kleinschreibung).
...Mein Problem: Wo ist mein Problem an der Stelle? Ist es tatsächlich die Groß-/Kleinschreibung? oder liegt es noch woanders?
Danke,
Heron
Mache bitte den Eventmonitor auf und schaue welches Event tatsächlich an kommt wenn Du das Fenster auf und zu machst. Dann kannst auch gleich die Zeile ganz markieren und sagen create Notify
Wenn ich das Fenster direkt betätige, kommt der Eintrag:
....
2017-05-19 20:48:54 CUL_FHTTK CUL_FHTTK_194d8b Window: Closed
2017-05-19 20:48:54 CUL_FHTTK CUL_FHTTK_194d8b Reliability: ok
2017-05-19 20:48:54 CUL_FHTTK CUL_FHTTK_194d8b Battery: ok
2017-05-19 20:48:54 CUL_FHTTK CUL_FHTTK_194d8b Closed
2017-05-19 20:48:54 CUL_FHTTK CUL_FHTTK_194d8b RSSI: -63
2017-05-19 20:48:54 CUL_FHTTK CUL_FHTTK_194d8b RAWMSG: T194D8B02
....
per Trigger:
....
2017-05-19 20:53:05 FS20 FS20_774a74 on
2017-05-19 20:53:05 CUL_FHTTK CUL_FHTTK_194d8b open
2017-05-19 20:53:06 FS20 FS20_774a74 on
2017-05-19 20:53:06 FS20 FS20_774a74 RAWMSG: 810b04xx0101a001774a740011
2017-05-19 20:53:06 FS20 FS20_774a74 RSSI: -44.5
....
Btw. Warum taucht das im Log immer 2x auf?
Danke und Gruß,
Heron
CUL_FHTTK_194d8b Closed
Das ist das entscheidende. Hierauf kannst du triggern
CUL_FHTTK_194d8b.(Open|Closed)
Bitte mal probieren.
Zitat von: CoolTux am 19 Mai 2017, 21:00:41
CUL_FHTTK_194d8b Closed
Das ist das entscheidende. Hierauf kannst du triggern
CUL_FHTTK_194d8b.(Open|Closed)
Achtung: open taucht aber anscheinend trotzdem klein geschrieben im Eventmonitor auf:
Zitat
...
2017-05-19 20:53:05 CUL_FHTTK CUL_FHTTK_194d8b open
...
CUL_FHTTK_194d8b.([Oo]pen|[Cc]losed)
damit wäre es dann egal ob vorne groß oder klein geschrieben.
Zitat von: Heron am 19 Mai 2017, 20:54:29
Btw. Warum taucht das im Log immer 2x auf?
Dagegen hilft evtl. eine Anpassung über das Attribut
event-on-change-reading
Ja, das wars,
manchmal sieht man den Baum vor lauter Bäumen nicht. Ich dachte, ich hätte es schon probiert gehabt.
Zur Vollständigkeit das Script:
CUL_FHTTK_194d8b.(Open|Closed)
{
if("$EVENT" eq "Open")
{ fhem("set FS20_774a74 on") }
else
{ fhem("set FS20_774a74 off"); }
}
Danke vielmals,
Heron
Zitat von: Benni am 19 Mai 2017, 21:04:43
CUL_FHTTK_194d8b.([Oo]pen|[Cc]losed)
Ich vergesse jedesmal das man es so erschlagen kann. Bei mir kommt immer nur entweder oder an. Danke Benni
Ja, danke, das ist noch besser:
CUL_FHTTK_194d8b.([Oo]pen|[Cc]losed)
{
if("$EVENT" eq "Open")
{ fhem("set FS20_774a74 on") }
else
{ fhem("set FS20_774a74 off"); }
}
Gruß,
Heron
Zitat von: Heron am 19 Mai 2017, 21:28:32
Ja, danke, das ist noch besser:
CUL_FHTTK_194d8b.([Oo]pen|[Cc]losed)
{
if("$EVENT" eq "Open")
{ fhem("set FS20_774a74 on") }
else
{ fhem("set FS20_774a74 off"); }
}
So ist es aber sinnlos, denn dein if(...) berücksichtigt so trotzdem nur die Großschreibung.
Außerdem verwendest du zu viele unnötige Anführungszeichen!
if($EVENT =~ /[Oo]pen/)
macht es dann passend (und die Anführungszeichen sind auch plötzlich weg ;) )