könnte evtl. einmal jemand drüberschauen.
define Wohnzrolloreab DOIF ([{sunset(-1800)}] and [Balkontuer] eq "off") (set Wohnzrollolre off,set pushmsg message Die Rolläden wurden heruntergefahren)
define Wohnzrolloreauf DOIF ([{sunrise(+3600)}] and [Balkontuer] eq "off") (set Wohnzrollolre on,set pushmsg message Die Rolläden wurden heraufgefahren)
was mache ich falsch. Es funktioniert nicht. !?
Vielen Dank im Voraus.
Ich denke da fehlen Klammern, so eventuell?
Zitat von: DieterL am 27 März 2015, 07:02:15
define Wohnzrolloreab DOIF ([{sunset(-1800)}] and ([Balkontuer] eq "off")) (set Wohnzrollolre off,set pushmsg message Die Rolläden wurden heruntergefahren)
Gruß Otto
Zitat von: Otto123 am 27 März 2015, 11:46:56
Ich denke da fehlen Klammern, so eventuell?
Gruß Otto
Es fehlen hier keine Klammern, er hat kein do always definiert.
Da es eine Problemstellung ist, würde ich nur ein DOIF nehmen, dann so:
define Wohnzrolloreab DOIF ([{sunset(-1800)}] and [Balkontuer] eq "off")
(set Wohnzrollolre off,set pushmsg message Die Rolläden wurden heruntergefahren)
DOELSEIF ([{sunrise(+3600)}] and [Balkontuer] eq "off")
(set Wohnzrollolre on,set pushmsg message Die Rolläden wurden heraufgefahren)
Hier braucht man kein do always, denn das Modul kennt hier zwei verschiedene Zustände, die sich gegenseitig ausschließen.
Gruß
Damian
Hallo Damian,
sorry da lag ich falsch. Das mit dem do always, habe ich mir jetzt aufmerksam durchgelesen. Alles gut und ausführlich beschrieben, keine Frage.
Aber ich glaube, die Beantwortung der Frage: Wann brauche ich "do always" wird schwierig bleiben. :-\
Man muss sich an Deinen Beispielen entlang hangeln und ganz genau überlegen.
Gruß Otto
Zitat von: Otto123 am 27 März 2015, 15:23:59
Hallo Damian,
sorry da lag ich falsch. Das mit dem do always, habe ich mir jetzt aufmerksam durchgelesen. Alles gut und ausführlich beschrieben, keine Frage.
Aber ich glaube, die Beantwortung der Frage: Wann brauche ich "do always" wird schwierig bleiben. :-\
Man muss sich an Deinen Beispielen entlang hangeln und ganz genau überlegen.
Gruß Otto
Zu do always habe ich schon mal etwas geschrieben. ich habe die do always Einstellung bewusst nicht als Default-Einstellung genommen, um sich vom notify abzugrenzen. Viele User benutzen notify für zyklisch sendende Sensoren der Art: "notify * if wert>0 dann set bla on" und merken nicht was sie damit produzieren. DOIF merkt sich Zustände und wiederholt im Normalfall keine Kommandos. Wenn man ein Kommando bewusst wiederholen möchte, dann muss man das bei DOIF halt per do always angeben.
Und auch dieses habe ich nicht umsonst in die Commandref aufgenommen:
ZitatStandardmäßig, ohne das Attribut do always, wird das Wiederholen desselben Kommmandos vom Modul unterbunden. Daher sollte nach Möglichkeit eine Problemlösung mit Hilfe eines und nicht mehrerer DOIF-Module realisiert werden, getreu dem Motto "wer die Lampe einschaltet, soll sie auch wieder ausschalten". Dadurch wird erreicht, dass unnötiges (wiederholendes) Schalten vom Modul unterbunden werden kann, ohne dass sich der Anwender selbst darum kümmern muss.
Gruß
Damian
Verstehe ich das richtig , dass das "umgekehrte" Problem beim notify quasi mit event-on-change-reading behoben wird?
Gruß Otto
hui.....vielen vielen Dank. Da wär ich ja im Leben nue von allein drauf gekommen :o
Zitat von: Otto123 am 27 März 2015, 18:02:28
Verstehe ich das richtig , dass das "umgekehrte" Problem beim notify quasi mit event-on-change-reading behoben wird?
Gruß Otto
Nicht ganz. event-on-change-reading bezieht sich auf die Events - also Trigger (Input). Das kann man auf für DOIF nutzen.
DOIF arbeitet im Gegensatz zu notify je nach Definition mit verschiedenen Zuständen (Output), die es sich merkt und danach schaltet: wiederholend oder eben nicht.
Gruß
Damian
Danke Damian.
Ich werde heute mal ein paar at's in einem DOIF zusammenfassen. Mal sehen ob es funktioniert :)
Gruß Otto
Zitat von: Otto123 am 28 März 2015, 00:51:33
Danke Damian.
Ich werde heute mal ein paar at's in einem DOIF zusammenfassen. Mal sehen ob es funktioniert :)
Gruß Otto
Warum sollte es nicht funktionieren? Ich benutze schon länger keine ats und keine notifys mehr ;)
Gruß
Damian
Hall Damian,
hat funktioniert :)
Das Problem ist ja garantiert nicht das DOIF sondern der Kerl der die DEF eintippt ;)
Gruß Otto
ich bräuchte noch einmal eure hilfe....ich krieg es nicht ans laufen
define Wohnzrolloreab DOIF ([{sunset(-3600)}|0123456] and [Balkontuer] eq "off") (set Wohnzrollolre off,set pushmsg message Die Rolläden wurden heruntergefahren)
define Wohnzrolloreauf DOIF ([{sunrise(+3601)}|0123456] and [Balkontuer] eq "off") (set Wohnzrollolre on, set pushmsg message Die Rolläden wurden heraufgefahren
auch nicht mir dem attr always
ich bin am verzweifeln :-[
Zitat von: DieterL am 03 April 2015, 09:57:36
ich bräuchte noch einmal eure hilfe....ich krieg es nicht ans laufen
define Wohnzrolloreab DOIF ([{sunset(-3600)}|0123456] and [Balkontuer] eq "off") (set Wohnzrollolre off,set pushmsg message Die Rolläden wurden heruntergefahren)
define Wohnzrolloreauf DOIF ([{sunrise(+3601)}|0123456] and [Balkontuer] eq "off") (set Wohnzrollolre on, set pushmsg message Die Rolläden wurden heraufgefahren
auch nicht mir dem attr always
ich bin am verzweifeln :-[
Welchen Sinn macht das alle Wochentage der Woche aufzuzählen? Und Zitat aus der Commanref zu DOIF:
ZitatFalls ein Komma nicht als Trennzeichen zwischen FHEM-Befehlen gelten soll, so muss der FHEM-Ausdruck zusätzlich in runde Klammern gesetzt werden:
define di_light DOIF ([08:00]) ((set lamp1,lamp2 on),set switch on)
Dann eher:
define Wohnzrolloreab DOIF ([{sunset(-3600)}] and [Balkontuer] eq "off")
((set Wohnzrollolre off,set pushmsg message Die Rolläden wurden heruntergefahren))
DOELSEIF ([{sunrise(+3601)}] and [Balkontuer] eq "off")
((set Wohnzrollolre on, set pushmsg message Die Rolläden wurden heraufgefahren))
Gruß
Damian
Hall Damian,
wenn ich so mache wie du es oben angegeben hast bekomme ich diesen Fehler:
error
set Wohnzrollolre off,set pushmsg message Die Rolläden wurden heruntergefahren: Unknown argument off,set, choose one of off:noArg on:noArg blink toggle on-for-timer on-till off-for-timer intervals off-till
2015-04-03 19:41:54
Zitat von: DieterL am 04 April 2015, 00:02:45
Hall Damian,
wenn ich so mache wie du es oben angegeben hast bekomme ich diesen Fehler:
error
set Wohnzrollolre off,set pushmsg message Die Rolläden wurden heruntergefahren: Unknown argument off,set, choose one of off:noArg on:noArg blink toggle on-for-timer on-till off-for-timer intervals off-till
2015-04-03 19:41:54
ja, mein Fehler, die doppelten Klammern sind hier falsch, denn das Komma soll ja ein Trennzeichen zwischen den set-Befehlen sein, also wie ich schon am Anfang bereits gepostet habe:
define Wohnzrolloreab DOIF ([{sunset(-3600)}] and [Balkontuer] eq "off")
(set Wohnzrollolre off,set pushmsg message Die Rolläden wurden heruntergefahren)
DOELSEIF ([{sunrise(+3601)}] and [Balkontuer] eq "off")
(set Wohnzrollolre on, set pushmsg message Die Rolläden wurden heraufgefahren)
Gruß
Damian
Damian- so funktioniert es. Vielen, vielen Dank !!!!