[Gelöst] Doif tut nicht was es soll

Begonnen von DerBaer, 16 Dezember 2019, 05:25:25

Vorheriges Thema - Nächstes Thema

DerBaer

Guten Morgen,

Ich versuch ja immer wieder mal als Anfänger in der Programmierung ein bisschen zu basteln und stoße dann leider auf auf Probleme in der Logik. Mit einem Notify hätte ich vermutlich weniger Probleme gehabt, aber ich möchte mich ja auch weiter entwickeln, deswegen versuch ich das als Doif.

Ich hab nun diesen Code geschrieben, aber funktioniert nicht. Das ist auch schon nicht mehr der originale Code, eher schon das dritte mal umschreiben.

([FBDECT_fb1_11630_0099271:temperature:d0] < 18 and [Users:state] eq "home" and ([05:00-22:00|Mo Di Mi Do Fr] or [09:00-22:00|Sa So])) (set FBDECT_fb1_11630_0099271 on) DOELSEIF ([FBDECT_fb1_11630_0099271:temperature:d0] > 20 or [Users:state] eq "absent") (set FBDECT_fb1_11630_0099271 off)

Hat vlt jemand bissl Zeit mir zu erklären was ich falsch gemacht hab? Im Prinzip soll das Doif je nach Temperatur und je nach Wochentag, bzw Uhrzeit und Anwesenheit einen Heizlüfter ein und vorallem wieder ausschalten.
Zumeist funktioniert das auch. Aber gestern abend um 22.01 Uhr bei einer Temperatur von 20.5 Grad Celsius lief das dumme Ding immer noch...

Danke im voraus für eure Hilfe!

Otto123

Moin,

Zitatbei einer Temperatur von 20.5 Grad Celsius lief das dumme Ding immer noch...
Wolltest Du doch aber so? d0 macht aus 20.5 eine 20 -> das ist gleich 20 und nicht größer. ;)
Aus der Doku:
ZitatMit der Angabe d0 wird die Zahl auf ganze Zahlen gerundet.

BTW: was ist mit dem Bereich um 19 grad ?

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

MadMax-FHEM

#2
Evtl. solltest du auch mal deine ands und ors prüfen.

Weil es gilt "Punkt vor Strich" bzw. "UND/AND vor ODER/OR"!

D.h. bei deiner letzten Zeitangabe "or [09:00-22:00|Sa So]" spielen Temp. etc. keine Rolle...
...oder wolltest du, dass es am WE zwischen 09:00 und 22:00 immer an ist!?

EDIT: und (ich mache zwar nicht viel mit DOIF) ich denke es muss auch ein zur entsprchenden Uhrzeit passender Temp-Event kommen. Wenn also zwar 22:00 durch ist aber der Event einer höheren Temperatur später kommt, dann wird erst beim Event der höheren Temp geschalten. Also: Event/Trigger vs. Status-/Wertabfrage... (aber wie geschrieben, das eher mal zum Nachprüfen/-lesen weil ich bzgl. DOIF nicht wirklich fit bin)


EDIT:
Zitat von: Otto123 am 16 Dezember 2019, 10:16:52
Im Gegensatz zu Joachim bin ich der Meinung, dass Deine AND und OR richtig gesetzt und ordentlich geklammert sind :)

okok, hatte wohl heute Morgen Tomaten auf den Augen ;) Klar, Klammern übersehen... Sind aber auch wirklich klein die Dinger... ;)

Gruß, Jaochim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

DerBaer

Zitat von: Otto123 am 16 Dezember 2019, 08:02:04
Moin,
Wolltest Du doch aber so? d0 macht aus 20.5 eine 20 -> das ist gleich 20 und nicht größer. ;)
Aus der Doku:
BTW: was ist mit dem Bereich um 19 grad ?

Gruß Otto

Ja das is schön so gewollt, vollkommen richtig. Mir gings eher um die Abschaltzeit.
19 Grad soll er immer noch heizen.

Aber das mit dem Vorrang hab ich natürlich nicht bedacht und scheint auch der Grund zu sein.

Grundsätzlich soll der Lüfter Prio 1 alles unter 18 Grad heizen und bei 20 wieder ausschalten. Sinnvolle Ergänzung is eben das der Lüfter nicht anläuft wenn keiner daheim is, bzw in der Nacht.

Vielen Dank für eure Hilfe, vlt bekomm ich das Ding noch zum Laufen :)

Gruß Daniel

Otto123

Im Gegensatz zu Joachim bin ich der Meinung, dass Deine AND und OR richtig gesetzt und ordentlich geklammert sind :)

Aber ich würde halt aus d0 einfach d machen, dann zieht auch das 20.1 :)
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

MadMax-FHEM

@Otto: hast nat. recht (korrigiert)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

DerBaer

Zitat von: Otto123 am 16 Dezember 2019, 10:16:52
Im Gegensatz zu Joachim bin ich der Meinung, dass Deine AND und OR richtig gesetzt und ordentlich geklammert sind :)

Aber ich würde halt aus d0 einfach d machen, dann zieht auch das 20.1 :)

Dann bin ich ja froh das ich auch mal was richtig gemacht hab 😂

Allerdings sollte der Lüfter eben nicht nur bei 20 Grad abschalten, sondern eben auch um 22 Uhr...

Otto123

#7
or [22:00] ins DOELSEIF wäre am einfachsten ;)

Im übrigen in der deutschen Doku DOIF unter weitere Anwendungsbeispiele ist dein "Fall" noch etwas komfortabler mit einstellbarer Hysterese im DOIF gezeigt.
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

DerBaer

Ja klingt jetzt wo dus sagst iwi logisch. 😅