[GELÖST] DOIF Lüftung soll alle zwei Stunden für 15min laufen

Begonnen von thgorjup, 10 April 2019, 22:22:50

Vorheriges Thema - Nächstes Thema

thgorjup

Hallo, ich habe eine Lüftungsanlage, welche alle zwei Stunden für 15min laufen soll.
Aber es gibt auch noch mehr Bedingungen, welche mit der Jahreszeit und der Temperatur innen/außen zutun haben.
Demzufolge weiß ich nicht, wie ich mein DOIF richtig aufbauen soll.

Also unabhängig von den anderen Bedingungen soll der Lüfter alle zwei Stunden für 15min laufen.
Quasi eine Vorrangschaltung, welche nur erfolgen soll, wenn der Lüfter noch nicht läuft. Andernfalls soll es ignoriert werden.
Ich habe das so zum Testen (zwischen 02:00-22:00) ausprobiert, klappt aber nicht. Soll als Ziel für 24h gelten.



define LuefterSteuerung DOIF ( [HM_4E0A9F_Dim:pct] == 5 && [02:00-22:00,+:60] ) (set HM_4E0A9F_Dim pct 25 900 10)\
DOELSEIF ( [HM_4E0A9F_Dim:pct] > 0 && ([season:state] eq "autumn" || [season:state] eq "winter") ) ( set HM_4E0A9F_Dim pct 25 )\
DOELSEIF ( [HM_4E0A9F_Dim:pct] > 0 && ([season:state] eq "spring" || [season:state] eq "summer" ) && [HM_450B67:measured-temp] > 25 && [Aussentemperatur:Aussentemperatur] < ( [HM_450B67:measured-temp] - 3 ) && [02:00-22:00] ) ( set HM_4E0A9F_Dim pct 78 )\
DOELSEIF ( [HM_4E0A9F_Dim:pct] > 0 && ([season:state] eq "spring" || [season:state] eq "summer" ) && [HM_450B67:measured-temp] > 25 && [Aussentemperatur:Aussentemperatur] < ( [HM_450B67:measured-temp] - 3 ) && [22:00-02:00] ) ( set HM_4E0A9F_Dim pct 70 )\
DOELSEIF ( [HM_4E0A9F_Dim:pct] > 0 && ([season:state] eq "spring" || [season:state] eq "summer" ) && [Aussentemperatur:Aussentemperatur] > ( [HM_450B67:measured-temp] - 3 ) ) ( set HM_4E0A9F_Dim pct 5 )\
DOELSEIF ( [HM_4E0A9F_Dim:pct] > 0 && ([season:state] eq "spring" || [season:state] eq "summer" ) && [HM_450B67:measured-temp] < 25 ) ( set HM_4E0A9F_Dim pct 5 )\
DOELSEIF ( [HM_4E0A9F_Dim:pct] > 0 && ([season:state] eq "spring" || [season:state] eq "summer" ) && [HM_424C93:measured-temp] < 24 ) ( set HM_4E0A9F_Dim pct 5 )\

attr LuefterSteuerung do always
attr LuefterSteuerung userReadings status { ReadingsVal("LuefterSteuerung","state",0) =~ m/initialized|cmd.*/ ? "on" : "off" }
attr LuefterSteuerung wait 900


Kann mir jemand helfen? Hier noch die "pct" %-Werte zur Erklärung:


..0% =  0,10V [manuelle Steuerung]
  5% =  0,66V [aus]
10% =  1,24V [verboten]
15% =  1,82V [Wärmerückgewinnung]
20% =  2,40V  -
25% =  2,98V  35% Ventilatorleistung
30% =  3,56V  50% Ventilatorleistung
35% =  4,14V  75% Ventilatorleistung
40% =  4,72V  +
45% =  5,31V [Wärmerückgewinnung 100%]
50% =  5,98V [verboten]
55% =  6,48V [Durchlüftung]
60% =  7,07V  25% Ventilatorleistung
65% =  7,66V  35% Ventilatorleistung
70% =  8,25V  50% Ventilatorleistung
75% =  8,84V  70% Ventilatorleistung
80% =  9,42V  90% Ventilatorleistung
85% = 10,02V  100% Ventilatorleistung
100% = 10,24V [Durchlüftung 100%]
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

thgorjup

Ich habe es jetzt erstmal so gelöst. Denke das klappt. Aber elegant ist etwas anders.


DOIF ( [HM_4E0A9F_Dim:pct] == 5 && ( [01:00] || [03:00] || [05:00] || [07:00] || [09:00] || [11:00] || [13:00] || [15:00] || [17:00] || [19:00] || [21:00] || [23:00]) ) (set HM_4E0A9F_Dim pct 25 900 10)
DOELSEIF ....
DOELSEIF ....
DOELSEIF ....
DOELSEIF ....
DOELSEIF ....
DOELSEIF ....
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

Otto123

Hi,

ich habe nicht versucht deinen Code zu verstehen, aber deinen Betreff gelesen :)
So wie hier?
https://commandref.fhem.de/commandref_DE.html#DOIF_Zeitangaben_nach_Zeitraster_ausgerichtet_alle_X_Stunden
DOIF ([+[2]:00])(set Lueftung on-for-timer 900)

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

thgorjup

Danke Otto, das habe ich auch so ungefähr probiert aber hat nicht geklappt.
Ich lasse jetzt erstmal den Code aus meinem Kommentar ergänzt mit:


attr LuefterSteuerung wait 0:900:900:900:900:900:900


Das scheint erstmal zu funktionieren.
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

thgorjup

So, um das Thema hier abzuschließen hier noch meine finale Lösung. Hab jetzt auf 10min gewechselt.
Alle 2h wird der Lüfter nun für 10min eingeschaltet (falls er noch nicht läuft) und danach wieder auf "pct 5" zurück gesetzt (wait 0,600).
Die anderen Bedingungen habe ich mit (wait 600) für die Dauer der v.g. Ausführung blockiert, damit sie diese nicht verwerfen.


( [HM_4E0A9F_Dim:pct] == 5 && ( [01:00] || [03:00] || [05:00] || [07:00] || [09:00] || [11:00] || [13:00] || [15:00] || [17:00] || [19:00] || [21:00] || [23:00]) ) (set HM_4E0A9F_Dim pct 25 600 10) (set HM_4E0A9F_Dim pct 5)
DOELSEIF ....
DOELSEIF ....
DOELSEIF ....
DOELSEIF ....
DOELSEIF ....
DOELSEIF ....

attr LuefterSteuerung do always
attr LuefterSteuerung userReadings status { ReadingsVal("LuefterSteuerung","state",0) =~ m/initialized|cmd.*/ ? "on" : "off" }
attr LuefterSteuerung wait 0,600:600:600:600:600:600:600
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy