FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Invers am 27 März 2014, 15:50:57

Titel: Notify - Wahrscheinlich mein Interpretationsfehler.
Beitrag 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

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

Titel: Antw:Notify - Wahrscheinlich mein Interpretationsfehler.
Beitrag von: betateilchen am 27 März 2014, 15:52:49
Du kannst ein notify nicht aus sich selbst heraus verändern. Funktioniert einfach technisch nicht.
Titel: Antw:Notify - Wahrscheinlich mein Interpretationsfehler.
Beitrag von: Invers am 27 März 2014, 16:20:59
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?

Titel: Antw:Notify - Wahrscheinlich mein Interpretationsfehler.
Beitrag von: rudolfkoenig am 27 März 2014, 16:40:06
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"
Titel: Antw:Notify - Wahrscheinlich mein Interpretationsfehler.
Beitrag von: Invers am 27 März 2014, 17:21:19
'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?
Titel: Antw:Notify - Wahrscheinlich mein Interpretationsfehler.
Beitrag von: Damian am 27 März 2014, 18:19:15
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
Titel: Antw:Notify - Wahrscheinlich mein Interpretationsfehler.
Beitrag 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.
Titel: Antw:Notify - Wahrscheinlich mein Interpretationsfehler.
Beitrag von: Damian am 27 März 2014, 19:04:34
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
Titel: Antw:Notify - Wahrscheinlich mein Interpretationsfehler.
Beitrag von: Invers am 27 März 2014, 19:27:41
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. :-)
Titel: Antw:Notify - Wahrscheinlich mein Interpretationsfehler.
Beitrag von: Invers am 27 März 2014, 23:37:04
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