Hallo zusammen,
brauche mal wieder Hilfe.
Ich habe monentan folgenden Code:
define nHausDoor notify Garagentor { if(Value("Garagentor") eq "open") {fhem ("set LichtHausTuer on-for-timer 180") }}
Wenn die Garage geöffnet wird dann soll die Haustürbeleuchtung angehen. Allerdings soll das nur passieren wenn es dunkel ist.
Kann man irgendwie eine feste Zeitspanne definieren oder eventuell das Twilight Modul verwenden?
Danke schon mal im Voraus.
Gruß Alex
Du kannst ein notify mittels attribut disabledForIntervals zetiweise abschalten.
Siehe commandref.
Servus,
ich habe das bei mir auch eingebaut mit dem twilight Modul. Zwar nicht mit einer Garage, sondern im Wohnzimmer. Ich habe einfach eine if-Bedingung gemacht. Mit der Zahl "<40" in meinem Code musst du bisschen spielen, wie es dir gefällt oder passst. Bei mir wird geprüft, ob der Wetter Wert kleiner 40 ist oder ob schon ein Sunset eingetroffen ist.
define nHausDoor notify Garagentor { if(Value("Garagentor") eq "open") {if ((ReadingsVal("myTwilight","twilight_weather",0)<40)|(ReadingsVal("myTwilight","state",0)>6)) {fhem("set LichtHausTuer on-for-timer 180") }}}
Hoffe das klappt bei dir ;)
Beste Grüße
Andy
Hallo,
@ Andy:
Ich probiere es jetzt mal mit deiner Variante. Ich bin mir zwar noch nicht ganz schlüssig welche Werte für mich zutreffend sind aber das werde ich dann wohl heute Abend heraus finden können wenn die Bedingungen draußen erfüllt werden.
Sieht aber soweit schon mal ganz gut aus.
Warum du aber eine Zweite "if-Abfrage" machst wird mir nicht ganz klar. Ich denke man kann alles unter der ersten "if-Abfrage" abfragen.
Ich probiere es aber erst mal so wie du es hier vorgeschlagen hast.
@ Betateilchen
Mir geht es nur darum dass, das Licht erst angeht wenn es dunkel ist. Ich weiß nicht wo disableForIntervals da helfen soll?
Kannst mich da aber gerne belehren. Bin um jede Info dankbar.
Gruß Alex
Hey,
stimmt man könnte die if Bedingung vom Garangentor und dem Twilight Modul mit nem "und" verbinden. Darüber habe ich nicht nachgedacht, weil ich noch relativ kurz mit FHEM arbeitem, aber du hat Recht.
Ich sollte wohl mal meine notifys dementsprechend anpassen, da sie so leichter lesbar werden ^^ Danke =)
Beste Grüße
Andy
Hab den Code mal angepasst:
define nHausDoor notify Garagentor { if(Value("Garagentor") eq "open" && ReadingsVal("myTwilight","twilight_weather",0)<40 || ReadingsVal("myTwilight","state",0)>6) {fhem("set LichtHausTuer on-for-timer 180") }}
Ob´s funktioniert wird der Abend zeigen ;)
Gruß Alex
du musst auf jedes Fall das oder von myTwilight noch in zusätzliche Klammer setzen, damit es nicht heißt Garagentor und Wert <40 ODER Sunset.
Code angepasst:
define nHausDoor notify Garagentor { if(Value("Garagentor") eq "open" && ((ReadingsVal("myTwilight","twilight_weather",0)<40) || (ReadingsVal("myTwilight","state",0)>6))) {fhem("set LichtHausTuer on-for-timer 180") }}
Beste Grüße
Andy
hmm...
Ein Paar mehr Klammern können auf jeden Fall nicht schaden.
define nHausDoor notify Garagentor { if(Value("Garagentor") eq "open" && (ReadingsVal("myTwilight","twilight_weather",0)<40 || ReadingsVal("myTwilight","state",0)>6)) {fhem("set LichtHausTuer on-for-timer 180") }}
Ich glaube man kann sich die Klammern hinter ">40" und ">6" sparen und natürlich dann auch die abschließenden Klammern vor ReadingsVal.
Hab zu mindestens einige Codes so laufen.
Das komplette ODER sollt man noch in Klammern packen. siehe Code
Gruß Alex
Zitat von: dogexan am 01 Februar 2015, 14:16:40
Ich glaube man kann sich die Klammern hinter ">40" und ">6" sparen und natürlich dann auch die abschließenden Klammern vor ReadingsVal.
Hab zu mindestens einige Codes so laufen.
das ist gut zu wissen =) Dann sind nicht 100 Klammern vorhanden^^ Also wieder etwas, womit ich meinen Code "verschönern"/besser lesbar machen kann.
Zitat von: dogexan am 01 Februar 2015, 14:16:40
Das komplette ODER sollt man noch in Klammern packen. siehe Code
genau das meinte ich, da das in deinem vorherigem Code noch nicht vorhanden war
Beste Grüße
Andy
So also hier das Endergebnis:
define nHausDoor notify Garagentor.open { if(ReadingsVal("myTwilight","twilight_weather",0)<40 || ReadingsVal("myTwilight","state",0)>6) {fhem("set LichtHausTuer on-for-timer 180") }}
So funktioniert der Code besser. Denn mit der Value Abfrage wurde der on-for-timer Befehl mehrmals gesendet.
Die Werte scheinen für mich auch zu passen.
Danke an Andy für die Hilfe
Gruß Alex