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%]
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 ....
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
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.
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