FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: thgorjup am 10 April 2019, 22:22:50

Titel: [GELÖST] DOIF Lüftung soll alle zwei Stunden für 15min laufen
Beitrag von: thgorjup am 10 April 2019, 22:22:50
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%]
Titel: Antw:DOIF Lüftung soll alle zwei Stunden für 15min laufen
Beitrag von: thgorjup am 10 April 2019, 23:04:51
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 ....
Titel: Antw:DOIF Lüftung soll alle zwei Stunden für 15min laufen
Beitrag von: Otto123 am 10 April 2019, 23:25:10
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
Titel: Antw:DOIF Lüftung soll alle zwei Stunden für 15min laufen
Beitrag von: thgorjup am 10 April 2019, 23:53:59
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.
Titel: Antw:DOIF Lüftung soll alle zwei Stunden für 15min laufen
Beitrag von: thgorjup am 11 April 2019, 13:54:32
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