if else Probleme mit Rolladensteuerung

Begonnen von chris73, 13 August 2014, 20:43:39

Vorheriges Thema - Nächstes Thema

chris73

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

rudolfkoenig

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.

Brockmann

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.  ;)

Billy

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
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

chris73

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.