Ich habe ein Notify, welches wie folgt aussieht:
define Links_AutoAus notify CUL_HM_HM_Sen_MDIR_O_20A694:brightness.* {if (ReadingsVal("CUL_HM_HM_Sen_MDIR_O_20A694","brightness",0) >141 && Value("BinIchDa") eq "present"){fhem("set Links off")};;{fhem("attr Links_AutoAn disable 0")};;{fhem("attr Links_AutoAus disable 1")};;}
attr Links_AutoAus disable 1
Es soll bei einer bestimmten Helligkeit >141 reagieren, aber nur, wenn ich da bin. Das klappt auch offenbar bis dahin, denke ich.
Es soll also eine Lampe mit dem Namen Links ausgeschaltet werden, ein anderes Notify aktiviert werden und das hier gezeigte Notify soll deaktiviert werden.
Alles geht bis dahin aber: Wenn dieses Notify hier deaktiviert ist, wird es offenbar trotzdem immer wieder ausgeführt. Der Schaltbefehl für die Lampe Links wird immer wieder ausgeführt. Also wird doch das Notify auch ausgeführt, obwohl es ja gesperrt ist.
Was mache ich falsch? Geht das vielleicht gar nicht, wie ich das so möchte, oder ist es nur ein Syntaxfehler? Falls es ein Syntaxfehler ist, würde den jemand korrigieren? Falls es alles ein Denkfehler ist, würde den auch jemand bitte korrigieren ? LOL
Du kannst ein notify nicht aus sich selbst heraus verändern. Funktioniert einfach technisch nicht.
Aber es wird doch angezeigt:
attr Links_AutoAus disable 1
Ist ja echt schade. Muss ich mir eine andere Lösung einfallen lassen.
Danke für die Hilfe.
War denn sonst alles richtig?
Attribute setzen sollte funktionieren, was nicht geht: in einem notify ein Event fuer das gleiche Geraet nochmal ausloesen.
Wenn man deinen Einzeiler als Mehrzeiler hinschreibt und einrueckt, damit man es als Mensch besser begreifen und ohne scrollen alles auf einmal sehen kann, schaut es so aus:
define Links_AutoAus notify CUL_HM_HM_Sen_MDIR_O_20A694:brightness.* {\
if(ReadingsVal(...) >141 && Value("BinIchDa") eq "present"){\
fhem("set Links off")\
};;\
{fhem("attr Links_AutoAn disable 0")};;\
{fhem("attr Links_AutoAus disable 1")};;\
}
Da faellt auf:
- {perlcode};; ist zwar Syntaktisch korrekt, das {} ist aber ueberfluessig.
- "attr XXX disable 0" hat bis vor kurzem nicht funktioniert, workaround ist "deleteattr XXX disable"
'Vielen Dank für die Erklärungen.
Aber wenn mein Notify deaktiviert ist (diabled 1) warum wird dann trotzdem fhem("set Links off") ausgeführt. Das Deaktivieren sollte doch die Ausführung des Notify verhindern.
Ich sehe aber in der Log-Datei, das geschaltet wird und habe auch getestet, dass es wirklich dieses Notify ist. Ich vermute mal, dass die Klammern daran nicht schuld sind, oder?
Zitat von: Invers am 27 März 2014, 15:50:57
Ich habe ein Notify, welches wie folgt aussieht:
define Links_AutoAus notify CUL_HM_HM_Sen_MDIR_O_20A694:brightness.* {if (ReadingsVal("CUL_HM_HM_Sen_MDIR_O_20A694","brightness",0) >141 && Value("BinIchDa") eq "present"){fhem("set Links off")};;{fhem("attr Links_AutoAn disable 0")};;{fhem("attr Links_AutoAus disable 1")};;}
attr Links_AutoAus disable 1
oder etwas kürzer ohne geschweifte Klammern, dann passt es fast in eine Zeile :)
define Links_AutoAus notify CUL_HM_HM_Sen_MDIR_O_20A694:brightness.* IF ([CUL_HM_HM_Sen_MDIR_O_20A694:brightness] >141 and [BinIchDa] eq "present")(set Links off,deleteattr Links_AutoAn disable,attr Links_AutoAus disable 1)
Gruß
Damian
Ich freue mich ja, dass sich so Viele um mein Problem kümmern. Danke euch dafür.
Den eigentlichen Fehler habe ich aber leider noch immer.
2014.03.27 18:35:23 2: IT set Links off
2014.03.27 18:40:13 2: IT set Links off
Immer, wenn das Ntoify auslöst, wir IT set Links off ausgeführt. Eigentlich sollte das Notify doch aber gar nicht auslösen, wenn es auf deiabled steht.
Aber ich muss das erst einmal in Ruhe probieren, vielleicht ist ja auch eine meiner anderen Codezeilen schuld.
Ich stelle erst einmal alles nach dem neuen IF um.
Bis dahin erstmal vielen Dank.
Zitat von: Invers am 27 März 2014, 19:01:25
Ich freue mich ja, dass sich so Viele um mein Problem kümmern. Danke euch dafür.
Den eigentlichen Fehler habe ich aber leider noch immer.
2014.03.27 18:35:23 2: IT set Links off
2014.03.27 18:40:13 2: IT set Links off
Immer, wenn das Ntoify auslöst, wir IT set Links off ausgeführt. Eigentlich sollte das Notify doch aber gar nicht auslösen, wenn es auf deiabled steht.
Aber ich muss das erst einmal in Ruhe probieren, vielleicht ist ja auch eine meiner anderen Codezeilen schuld.
Ich stelle erst einmal alles nach dem neuen IF um.
Bis dahin erstmal vielen Dank.
Hast du auch deleteattr, wie Rudi vorgeschlagen hat und ich in meinem Vorschlag drin hatte, schon ausprobiert?
Gruß
Damian
Das teste ich gerade. Dauert aber, weil ich mehrere Notifys habe die alle zu einem anderen Helligkeitswert schalten. Der Bewegungsmelder sendet die Werte nur alle 5 oder 6 Minuten. Also leider Geduld. :-)
So Freunde, nochmals Dank an alle.
War ja ne ziemliche Nuss, hinter die ich alleine nicht gekommen wäre.
Der ausführliche Test hat nun ergeben, dass alles im grünen Bereich ist. Wieder eine Baustelle weniger. :-)
Kann ich mich nun meinen HomeMatic-Problemen widmen. Hoffentlich gehts schnell, hab nicht mehr so viel Zeit. Bin schon über 60. LOL