Hallo,
ich habe mir ein dummy device gebastelt, das mir meine Rolladen steuert. Läuft soweit auch ganz gut, allerdings nur das if und das else macht nicht das was es soll.
Ich möchte das die Rollos bei einer Temperatur >=22 runterfahren. Das tut es auch. Allerdings fahren die Rollos nicht hoch, wenn es draußen wieder kühler wird... Warum?
define WetterTest dummy
attr WetterTest event-on-change-reading state
attr WetterTest room Wetter
define WetterCheck at +*00:15:00 { if ( $hour ~~ [9..18] && $month ~~ [5..9] && ReadingsVal("WSelm","temperature",21)>=22) { fhem("set WetterTest 0") } else { fhem ("set WetterTest 100") } }
sowie
define OG.sz.Tag notify WetterTest { fhem ("set OG.sz.RO %") }
Lustiger Weise bewirkt das, das jeden Tag die Rollos um 19.08 Uhr hoch fahren :)
Das else sollte doch dann eintreten, wenn die erste Bedingung nicht erfüllt ist... ich könnte die else auf <=22 prüfen, aber muss das?
Gruß
Chris
Ich wuerde in solchen Faellen meinen eigenen Rat von http://fhem.de/commandref.html#perl befolgen, und die Komponenten der Bedingung und der auszufuehrenden Zweige eins nach dem anderen testen.
Zitat von: chris73 am 13 August 2014, 20:43:39
Lustiger Weise bewirkt das, das jeden Tag die Rollos um 19.08 Uhr hoch fahren :)
Schonmal geschaut, ob die Uhrzeit auf Deinem Raspi richtig eingestellt ist? Ich tippe mal, der hat noch Winterzeit. ;)
Also ich habe das mit dem neuen Modul 98_DOIF.pm problemlos gelöst.
http://forum.fhem.de/index.php/topic,23833.0.html
Da gibt es auch Beispiele zur Rolladensteuerung.
Bei mir sieht das so aus.
define DI_RolladenOst DOIF ([08:15-13:45] and [TX_25:Jar_diff] >7) (set myRolO_son on) DOELSE (set myRolO_auf on)
Das auslösende Event ist bei mir die Uhrzeit und die Sonnenintensität ([TX_25:Jar_diff] >7).
d.h. wenn die Sonne ausreichend scheint geht der Rolladen um 8:15 runter und um 13:45 wieder hoch.
Kommt Schatten auf dann geht der Rolladen auch zwischendurch wieder hoch. etc. :)
Das ganze habe ich jeweils für die Ost, Süd, West, -- Seite meines Hauses realisiert.
Billy
die Uhrzeit auf dem rpi ist in Ordnung!
Ist denn meine verwendete Syntax, sagen wir mal, theoretisch korrekt?
Also müsste es so theoretisch als Regel definiert werden, damit die Rollos bei einer Außentemperatur von >=22 runterfahren und wenn nicht dann hoch?
Dieser Bug mit dem 19 Uhr hochfahren soll mal außen vor sein.