Probleme mit Temperaturvergleich

Begonnen von fischle, 22 Januar 2017, 13:31:13

Vorheriges Thema - Nächstes Thema

fischle

Hallo,
ich habe ein problem mit dem folgenden Code.

Grundidee ist wie folgt:
- Morgends bei sonnenaufgang soll geprüft werden, ob es an dem Tag sonnig oder leicht bewölkt wird.
[?MeinWetter:fc1_code]==30 or [?MeinWetter:fc1_code]==32
- Falls dann die Höchsttemperatur über 20° ist, soll der Rolladen nur halb hochgefahren werden. 
[?MeinWetter:fc1_high_c] > 20
- um 14 Uhr werden die Rolläden dann vollständig hochgefahren

Damit will ich verhindern, dass sich im Sommer der Raum zu stark aufheizt.

Jetzt ist es mir im Winter schon des öfteren so gegeangen, dass die Rolläden vormittags dennoch nur halb hoch gefahren wurden. Hat jemand eine gute Idee, woran das liegen kann?

Die Temperatur wird über das WEATHER Modul von Yahoo abgerufen. Immer wenn ich dort dann später reinschaue sehe ich höchsttemperaturen deutlich unter 20°. Kann es sein, dass es ein problem gibt, wenn es negative Höchsttemperaturen gibt? Oder habe ich Klammern im Code vergssen?

Bin um jeden Tipp dankbar.

Hier das def meines DOIF's

([{sunrise("HORIZON=1",0,"6:30","10:00")}] and [?MeinWetter:fc1_high_c] > 20 and [?MeinWetter:fc1_code]==30 or [?MeinWetter:fc1_code]==32) (set EG_WZ_ROLL_FENST 28,set EG_WZ_Soll_Pos_Roll 28)
DOELSEIF ([{sunrise("HORIZON=1",0,"6:30","10:00")}]) (set EG_WZ_ROLL_FENST 100,set EG_WZ_ROLL_TUER 100,set EG_WZ_Soll_Pos_Roll 100)
DOELSEIF ([14:00]) (set EG_WZ_ROLL_FENST 100, set EG_WZ_ROLL_TUER 100,set EG_WZ_Soll_Pos_Roll 100)
RPi,
- USB RS485 Adapter für Stromzähler DRS155M und SDM630M-DC (B+G E-Tech)
- Viesmann KO2B Heizung mit selbstbau Optolink Adapter
- Mi-Light WiFi-Bridge V4, WW/CW LED-Birne

Otto123

Hi,

Du willst doch, dass der or Ausdruck in sich erstmal aufgelöst wird. or steht aber als letztes in der Rangfolge
Deshalb werden erstmal alle and Ausdrücke aufgelöst und dann zum Schluss der or Ausdruck.

Ich denke Du musst den or Ausdruck Klammern. Aber eventuell habe ich es falsch verstanden. Bau Dir am Besten eine Logiktabelle auf und alle Zustände rein und das tastsächliche und gewünschte Ergebnis dahinter.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

RadioJames

Hallo,

Otto hat vollkommen Recht.
Aufgrund der Rangfolge des "or"s gehen deine Rollos auf 28, wenn
- sunrise(blabla) UND (fc1_high<20) UND (fc1_code==30)
- ODER wenn (fc1_code==32)
ist.

Lösung, wie schon vorgeschlagen, die beiden ODER Operanden klammern.

Grüße
James
There are 10 kind of people. Those who understand binary and those who don't.

fischle

#3
Hey,
super vielen Dank für die Antworten, werde das gleich mal probieren und die nächsten Tage beobachten. Hatte ich dann wohl im Sommer übersehen.

/Edit:
Habe gerade noch gesehen, dass fc1_code auf 32 steht - würde also passen.

Vielen Dank
RPi,
- USB RS485 Adapter für Stromzähler DRS155M und SDM630M-DC (B+G E-Tech)
- Viesmann KO2B Heizung mit selbstbau Optolink Adapter
- Mi-Light WiFi-Bridge V4, WW/CW LED-Birne