FHEM Forum

FHEM - Anwendungen => Heizungssteuerung/Raumklima => Thema gestartet von: Ruggy am 20 Dezember 2020, 23:14:33

Titel: Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Ruggy am 20 Dezember 2020, 23:14:33
Hallo,

ich hoffe mein langer Text schreckt nicht ab. Im unteren Teil habe ich geschrieben, was ich steuern möchte; oben die Hintergründe zu dem Vorhaben.

Habe durch die Suchfunktion nur etwas ältere Beiträge bis 2017 gefunden, welche sich mit dem Thema beschäftigt haben.
Leider sind meine FHEM Kenntnisse/Perl-Kenntnisse nicht besonders gut und ich konnte nur immer ein Stück weit folgen und bin dann ausgestiegen. Vor allem wenn mit DOIF "verschachtelt" wird.
Es wurde auch mit Threshold gearbeitet. Dies habe ich mir auch in der Commandref angesehen aber bzgl. meinen Vorhaben auch nicht weiter gekommen.

Gibt es zwischenzeitlich noch andere (einfachere Lösungen einer Taupunktgesteuerten Kellerlüftung, welche auch Temperaturabhängig verschieden steuern sollte.


Möchte kurz mein Vorhaben erklären:

Im Haus meiner Eltern befindet sich ein alter Gewölbekeller, welcher eigentlich immer feucht und kühl ist (Erdfeuchte/Erdtemperatur).
Die Kellertemperatur schwankt so zwischen 9-13 Grad (je nach Jahreszeit); die relative Luftfeuchtigkeit ist immer über 80 bis 90 %.
Jetzt gerade ist außen eine Temperatur von ca. -0,5 °C, einer relative Luftfeuchtigkeit von 97 % und eine absolute Luftfeuchtigkeit von ca. 4,5 g/m3. Im Keller ist eine Temperatur von ca. 9 °C einer relative Luftfeuchtigkeit von 93,5 % (es regnet also bald ;-) ) und einer absoluten Luftfeuchtigkeit von ca. 8,25 g/m3.
Ich möchte den Keller nicht Trocken bekommen (ist sowieso nicht möglich) aber etwas trockener.

In den Keller ist schon sehr lange eine Öffnung mit einen Rohr 15 cm Durchmesser. Über diese Öffnung "zirkulierte" mehr oder weniger das ganze Jahr die Luft.

Um den Keller etwas trockener zu bekommen habe ich jetzt ein zweites Rohr am anderen Ende vom Keller nach außen gelegt. In jedem Rohr ist Rohrlüfter, welche ich über FHEM und Smart+ Steckdosen ein- und ausschalte (jeder einzeln). Einer bläst die Luft herein, der andere hinaus.

Mit zwei Xiaomi Temperatur/Feuchtesensoren (einer im Keller; einer außen im Freien) lasse ich mir den "dewpoint" berechnen und in einer Grafik darstellen. Nach dieser entscheide ich dann, ob ich die Lüfter ein oder ausschalte. Da mache ich halt nur, wenn ich gerade zeit habe und dran denke.

Einige werden jetzt wahrscheinlich die Hände über den Kopf zusammen schlagen, aber sowei meine Kenntnisse hierzu :-\

Seit ich mich entschlossen habe, ein zweites Rohr in den Keller zu legen (ist schon ne Zeit lang her, weil es relativ aufwändig war), war das Ziel natürlich, dass alles automatisch geht. Deshalb bin ich eigentlich damals über professionelle Lüftungssteuerungen auf FHEM gestoßen und mir gedacht, dass ich damit ja genau das machen könnte.



Folgene Steuerung habe ich mir gedacht:

Die Lüfter sollen grundsätzlich nur dann einschalten, wenn der Taupunkt außen 2 °C kleiner ist als innen (also trockener).

Die Lüfter sollen Jahreszeitabhängig verschieden lange laufen um im Winter ein auskühlen oder aber auch im Sommer ein aufheizen des Kellers zu vermeiden. Hier weiß ich jedoch nicht wie ich Sommer und Winter in FHEM unterscheiden soll oder sollte es nur Temperaturabhängig geregelt werden (z.B. Kellertemperatur darf 9 °C nicht unterschreiten und 12,5°C nicht überschreiten; evlt. längere oder kürzere Lüftungsintervalle)
Im Sommer sollen die Lüfter dann 10 min laufen und dann 60 Pause machen, dann wieder 10 min laufen usw.
Im Winter sollen die Lüfter dann 10 min laufen und dann 120 min Pause machen, dann wieder 10 min laufen usw.

Wegen den "Lärm" sollen sie nur zwischen 8:00 und 22:00 Uhr laufen (wobei wahrscheinlich gerade im Sommer in den Nachstunden trockener wäre; evlt. wäre es hier eine Möglichkeit, dass dann nur z.B. alle 180 min die Lüfter eingeschalten werden?).

Kann man diese vielen Abfragen und Anweisungen alles in die Steuerung unterbringen?
Kann/muss ich das mit Threshold lösen oder mit vielen vielen DOIF?

Oder ist mein geplantes "Lüftungsverhalten" grundsätlich nicht richtig/zielführend?

Vielen Dank
Viele Grüße

Ruggy
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: amenomade am 21 Dezember 2020, 02:46:49
Zuerst: das Modul Astro liefert die Jahreszeit, falls eine Steuerung nach Datum nicht reichen würde.

Das ganze sollte mit nur einem DOIF machbar sein. Um dieses DOIF zu simplifizieren, würde ich aber doch THRESHOLD dazu benutzen, um zu entscheiden, ob auf Grund Taupunkt es theoretisch belüftet werden muss oder nicht.

Dann im DOIF alle andere Bedingungen:
DOIF ([threshold hat gesagt, es muss belüftet werden] and [08:00-22:00] and $month > 4 and $month < 10) (set Lüfter on-for-timer 10)
DOELSEIF (das gleiche ausser bis auf: and ($month<=4 or $month>=10)) (set Lüfter on-for-timer 10) DOELSE (set Lüfter aus)
Mit attribut repeatcmd 70:130
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: gvzdus am 21 Dezember 2020, 08:07:11
Genau Deine Überlegung, Ruggy, habe ich mir auch gemacht. Auch bei mir ist der Keller nicht trocken zu kriegen - und alles leidet, wenn die Feuchtigkeit kondensiert.
Es wäre nett, wenn Du über das Ergebnis mal berichtest - gerne mit Graphen.
Falls Du den Eindruck hast, dass FHEM Dir feindlich ggü. steht, können wir gerne mal eine Screensharing-Session per Skype machen.
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Ruggy am 21 Dezember 2020, 12:50:37
Vielen Dank schon mal für die Tipps.

Habe es jetzt schon mal geschafft, dass ich beide Lüfter gleichzeitig einschalten kann (schon mal ein Anfang)   ;)

define KELLER_LUEFTER_ALLE dummy
attr KELLER_LUEFTER_ALLE eventMap on off
attr KELLER_LUEFTER_ALLE room Keller

define Luefter_On notify KELLER_LUEFTER_ALLE:on set set HUEDevice17,HUEDevice15 on
define Luefter_Off notify KELLER_LUEFTER_ALLE:off set set HUEDevice17,HUEDevice15 off


Werde mir jetzt dann mal an die Umsetzung nach der vorgeschlagenen Steuerung von @amenomade machen. Hier bin ich mir aber nicht ganz sicher, ob ich dass schaffe. Werde es aber erst mal versuchen.
Evlt. müsste ich aber auf das "Skype-Angebot" von @gvzdus zurück kommen. Danke schon mal für das Angebot.
Aber evlt. schaffen wir es auch hier.


@gvzdus
Gerne stelle ich Dir alle Infos zur Verfügung, welche ich habe.
Gerne auch Graphen. Hier kann ich aber auch immer nur einen Tag mir anzeigen lassen. Evlt. gibt es eine Möglichkeit, einen Graph über einen längeren Zeitraum zur Verfügung zu stellen?

Hier kurz mal welche "Hardware" ich verwendet habe:
Als Rohre habe ich die orangen KG-Rohre DN-150 verwendet.
Als Rohrventilator einfach beim bekannten Versandriesen mit "A" Rohrventilator 150mm eingeben. Die Marke beginnt mit S. (weiß nicht ob ich hier links oder Herstellernamen einstellen darf). Er ist relativ leise, aber es gibt wahrscheinlich leisere.

Weil die Rohre ziemlich lange sind (ca. 4 m) dröhnt es etwas (denke es liegt an der Länge). Die Rohre habe ich alle paar Meter mit Rohrschellen befestigt und mit so einen "Dämmschlauch" gedämmt. Ist dadurch etwas leiser geworden.

Habe dann noch versucht die Rohrventilatoren mit "Segelstutzen" vom Rohr zu entkoppeln (Suchbegriff "Segeltuchstutzen DN 150 Balg Entkopplung" beim anderen Versandriesen mit "E" eingeben). Hat auch ein bischen etwas gebracht, aber nicht all zu viel (hätte mir hier mehr erhofft). Hierfür habe ich mir mit den 3D-Drucker Adapter zwischen den KG-Rohren und den Segeltuchstutzen gedruckt. Bei Bedarf kann ich Dir die Dateien zur Verfügung stellen (fallst Du keine Möglichkeit zum Drucken/drucken lassen hast, würden wir denke ich auch eine Lösung finden.
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: gvzdus am 21 Dezember 2020, 15:01:00
Wow, 4 Meter bei 15 cm Durchmesser ist ja schon Einiges an Widerstand.

Dass das "dewpoint"-Modul Dir die Taupunktberechnung liefert, hast Du ja vermutlich schon festgestellt.

Ich verstehe nicht ganz, wieso Du Graphen nur tageweise siehst. Die billigste Methode ist doch, auf einen Filelogger ein SVG draufzusetzen. Und dieser Graph hat doch dann die "Knöpfe" zum Zoom-Out.

Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Ruggy am 21 Dezember 2020, 15:14:50
Ja, 4m ist schon ne Menge.

Ging aber leider nicht anders. Man merkt aber am Ausgang (nach den 4 Metern schon, dass sich etwas tut). Auch an den Feuchtigkeitswerten macht es sich bemerkbar. Aber die steigen halt auch bald wieder nach dem Ausschalten. Wobei auch mein sporadisches manuelle Lüften bisher nicht sinnvoll war. Jedoch habe ich auf jeden Fall eine Verbessung des Geruchs im Keller festgestellt.

Zeichne die Werte mit DbLog auf und lasse sie mir so anzeigen u.a. den dewpoint. Ich kann immer einen Tag sehen und kann mit den Pfeiltasten die Tage zurück und vor blättern. Am jeweiligen Tag kann ich dann hineinzoomen und auch heraus.
Aber mehrere Tage gleichzeitig bzw. eine Woche oder Monat kann ich mir nicht anzeigen lassen.

In der commandref ist folgendes Beispiel:
define dewpoint dewpoint indoor
define dewpoint dewpoint outdoor
define TH_room THRESHOLD indoor:dewpoint:0:outdoor:dewpoint AND TH_hum:state:on ventilator|set @ on|set @ off|2


Benötige ich die ersten beiden Zeilen mit dewpoint, da ich den berechneten dewpoint ja schon von meinen Thermometern habe. Oder würde hier nur die dritte Zeile reichen? So z.B.?
define Threshold_Keller THRESHOLD KEL_LUFTFEUCHTIGKEIT:dewpoint:0:AUS_LUFTFEUCHTIGKEIT:dewpoint ventilator|set @ on|set @ off|2[/code]

Das mit der min. Luftfeuchtigkeit würde ich weglassen, weil ich diese wahrscheinlich nie unterschreiten werde. Wie ich meine Lüfter mit in die Formel bringe habe ich auch noch nicht geschafft.
Als "Ventilator" muss wahrscheinlich mein "KELLER_LUEFTER_ALLE" in die Formel? Aber was bedeutet dann "on|set @ off|2"?
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: gvzdus am 21 Dezember 2020, 15:35:24
Mit meinen FHEM-Kenntnissen (und weil ich Deine Situation nicht gut nachstellen kann) würde ich erst mal den Zwischenschritt über ein Delta im Taupunkt gehen:

define deltadewpoint dummy
define calcdelta notify (KEL|AUS)_LUFTFEUCHTIGKEIT:dewpoint.* { my $a=ReadingsVal("KEL_LUFTFEUCHTIGKEIT", "dewpoint", 0)-ReadingsVal("AUS_LUFTFEUCHTIGKEIT", "dewpoint", 0); fhem ("set deltadewpoint " . $a) }


... und dann mal gucken, ob in deltadewpoint sauber das Delta bei jedem Update eines der beiden Temperatursensoren reinläuft. (Falls mein Trockencode richtig ist). Hinweis: Wenn Du meine Defines in der WebGUI-"Kommandozeile" eingibst, musst Du das Semikolon vor fhem (" verdoppeln.
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Ruggy am 21 Dezember 2020, 17:52:20
Ich würde deine Defines oben in der Zeile eingeben, wenn ich FHEM im Browser öffne; denke das meinst Du?

Meinst Du dann so mit den zwei ;;?
Wo kann ich den den Befehl noch eingeben?


define calcdelta notify (KEL|AUS)_LUFTFEUCHTIGKEIT:dewpoint.* { my $a=ReadingsVal("KEL_LUFTFEUCHTIGKEIT", "dewpoint", 0)-ReadingsVal("AUS_LUFTFEUCHTIGKEIT", "dewpoint", 0);; fhem ("set deltadewpoint " . $a) }


Was wird mit den Befehl dann gemacht? Wird dadurch der dewpoint der zwei Xiaomi "Thermometer" in eine datei geschrieben?
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: gvzdus am 21 Dezember 2020, 18:23:49
Ja, die Zeile oben.

2 Semikolons:
Ich gebe ein Notify mit Perl-Kommando (an den geschweiften Klammern erkennbar) i.d.R. erst ganz leer ein (also nur {} ), und editiere dann recht bequem, indem ich auf "DEF" bei "Internals" klicke. Dann hat man einen "schönen" Editor - und da musst Du nur 1 Semikolon eingeben.

Die Idee ist, dass Du Dir erst einmal ein dummy-Device erzeugst, dass die Differenz der Taupunkte innen / außen beinhaltet. Das kannst Du in die Datenbank wegloggen, die Updates kontrollieren, und dann darauf mit Threshold für die Ventilatorsteuerung arbeiten.
Ich finde, gerade am Anfang ist es bei FHEM hilfreich, mit Zwischenschritten zu arbeiten, um zu dem "Das habe ich schon geschafft, wie mache ich jetzt ...?" zu kommen.
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Ruggy am 21 Dezember 2020, 19:55:07
Habe die Befehle so eingegeben.

Hier ein List vom deltadewpoint:

Internals:
   CFGFN     
   FUUID      5fe0eb17-f33f-f59f-e80b-ec58da6542b958ca
   NAME       deltadewpoint
   NR         1200
   STATE      5.8
   TYPE       dummy
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1608576285.51868
           VALUE      5.8
   READINGS:
     2020-12-21 19:44:45   state           5.8
Attributes:
   room       Kellerlüftung


Hier ein List von calcdelta:

Internals:
   CFGFN     
   DEF        (KEL|AUS)_LUFTFEUCHTIGKEIT:dewpoint.* { my $a=ReadingsVal("KEL_LUFTFEUCHTIGKEIT", "dewpoint", 0)-ReadingsVal("AUS_LUFTFEUCHTIGKEIT", "dewpoint", 0); fhem ("set deltadewpoint " . $a) }
   FUUID      5fe0eb52-f33f-f59f-d120-dc8c0132d5471c97
   NAME       calcdelta
   NR         1203
   NTFY_ORDER 50-calcdelta
   REGEXP     (KEL|AUS)_LUFTFEUCHTIGKEIT:dewpoint.*
   STATE      2020-12-21 19:44:45
   TRIGGERTIME 1608576285.51564
   TYPE       notify
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1608575826.8177
           VALUE      active
   READINGS:
     2020-12-21 19:37:06   state           active
Attributes:
   room       Kellerlüftung
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: gvzdus am 21 Dezember 2020, 19:58:51
Das wirkt doch erst mal gut: "State ist 5.8", das ist die Differenz im Taupunkt Keller - Außen.
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Ruggy am 21 Dezember 2020, 22:34:04
Könnte das so funktionieren?

Wenn ich es richtig verstanden habe sollten die Lüfter in den

- Sommermonaten (Mai bis September) einschalten, wenn der Taupunkt von außen mindestens 2 ° weniger hat als im Keller und es zwischen 8:00 und 23:00 Uhr ist und zwar dann für 30 Minuten (?oder sollte ich hier nicht als Zeiteinheit 1.800 schreiben; Sekunden)?

- Wintermonaten (Oktober bis April einschalten, wenn Taupunkt außen mindestens 2 ° weniger hat als im Keller und zwischen 8:00 und 23:00 Uhr ist und dann für 20 Minuten?

define TAUPUNKT_LUEFTUNG_KG DOIF ([deltadewpoint:state >2] and [08:00-23:00] and $month > 4 and $month < 10) (set KELLER_LUEFTER_ALLE on-for-timer 30) DOELSEIF ([deltadewpoint:state >2] and [08:00-23:00] and ($month<=4 or $month>=10)) (set KELLER_LUEFTER_ALLE on-for-timer 20) DOELSE (set KELLER_LUEFTER_ALLE off)


Wie bekomme ich noch folgendes hinein, dass sich die ganze Regelung z.B. nach 70 Minuten im Sommer und 130 Minuten im Winter wiederholt?

Mit attribut repeatcmd 70:130
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Ruggy am 21 Dezember 2020, 22:38:55
Wie sollte folgender Abschnitt aussehen?
In Klammern oder nicht in Klammern?

So
...$month > 4 and $month < 10)...
oder so
...($month > 4 and $month < 10))...
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: gvzdus am 22 Dezember 2020, 07:18:58
Also, ich würde mich jetzt erst mal freuen, wenn der olle Lüfter überhaupt dreht. Sommer/Winter-Umschaltung kannst ja auch machen, indem Du mit "at" repeatCmd jeweils im Sommer / Winter umschaltest.

Bei meinem Versuch des Testens mit dummy-Device klappt das hier:
([deltadewpoint:state]>2 and [07:00-23:00] and ($month>4 and $month<10)) (set KELLER_LUEFTER_ALLE on) DOELSEIF ([deltadewpoint:state]>2 and [07:00-23:00] and ($month<=4 or $month>=10)) (set KELLER_LUEFTER_ALLE on2) DOELSE (set KELLER_LUEFTER_ALLE off)

Zeiten sind geändert, und statt "on-for-timer" setze ich meinen Dummy KELLER_LUEFTER_ALLE nur fest auf Werte.
Die wesentliche Abweichung zu Dir:

Statt
[deltadewpoint:state >2]
schreibe ich
[deltadewpoint:state]>2

Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Ruggy am 22 Dezember 2020, 10:43:54
Habe es jetz so mal versucht; bisher schalten sie nicht ein.
Habe den Taupunktwert zu Testzwecken auf 1 verringert, weil dieser momentan unter 2 (1.9) ist.

soll das on2 heißen oder ist die "2" zuviel?

([deltadewpoint:state]>1 and [07:00-23:00] and ($month>4 and $month<10)) (set KELLER_LUEFTER_ALLE on) DOELSEIF ([deltadewpoint:state]>2 and [07:00-23:00] and ($month<=4 or $month>=10)) (set KELLER_LUEFTER_ALLE on2) DOELSE (set KELLER_LUEFTER_ALLE off)
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: gvzdus am 22 Dezember 2020, 10:50:24
Das "on2" ist vom Testen, ob der 1. Teil der Regel, der 2. Teil der Regel, oder das große Else greift.
Für Deinen Fall natürlich nur "on" (oder "on-for-...")
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Ruggy am 22 Dezember 2020, 20:01:16
Ich hoffe ich strapaziere die Nerven noch nicht zu sehr, aber irgendwie werden die Lüfter nicht eingeschalten.

Habe jetzt zu Versuchszwecken den Taupunktunterschied auf <2 umgestellt, weil es momentan außen feuchter ist als im Keller.
Die Lüfter habe ich direkt an gesprochen und nicht über das dummy.

Wenn ich oben im GUI

set HUEDevice17,HUEDevice15 on
oder
set HUEDevice17,HUEDevice15 off

eingebe, werden die Lüfter ein oder ausgeschaltet.



Mit dem DOIF funktioniert es nicht


([deltadewpoint:state]<2 and [07:00-23:00] and ($month>4 and $month<10)) (set HUEDevice17,HUEDevice15 on) DOELSEIF ([deltadewpoint:state]<2 and [07:00-23:00] and ($month<=4 or $month>=10)) (set HUEDevice17,HUEDevice15 on) DOELSE (set HUEDevice17,HUEDevice15 off)


Als "state" wird im TAUPUNKT_LUEFTUNG_KG "initialized" angezeigt. Hat vor meinen kürzlichen Änderungen  (<2 und set HUEDevice...) als "state" "CMD_3" angezeigt gehabt.

Hier mal das List von TAUPUNKT_LUEFTUNG_KG wobei mir hier auffällt, das als Timer der 23. also morgen schon drinen steht. Würde es erst morgen funktonierten?

Internals:
   CFGFN     
   DEF        ([deltadewpoint:state]<1 and [07:00-23:00] and ($month>4 and $month<10)) (set HUEDevice17,HUEDevice15 on) DOELSEIF ([deltadewpoint:state]<1 and [07:00-23:00] and ($month<=4 or $month>=10)) (set HUEDevice17,HUEDevice15 on) DOELSE (set HUEDevice17,HUEDevice15 off)
   FUUID      5fe1bee7-f33f-f59f-1a14-e04ad4bc48189b35
   MODEL      FHEM
   NAME       TAUPUNKT_LUEFTUNG_KG
   NOTIFYDEV  global,deltadewpoint
   NR         1436
   NTFY_ORDER 50-TAUPUNKT_LUEFTUNG_KG
   STATE      initialized
   TYPE       DOIF
   VERSION    22428 2020-07-18 20:32:08
   Helper:
     DBLOG:
       error:
         DbLog:
           TIME       1608634305.27091
           VALUE      set KELLER_LUEFTER_ALLE:off
       state:
         DbLog:
           TIME       1608662859.89313
           VALUE      initialized
   READINGS:
     2020-12-22 19:47:39   cmd             0
     2020-12-22 19:47:39   mode            enabled
     2020-12-22 19:47:39   state           initialized
     2020-12-22 19:47:39   timer_01_c01    23.12.2020 07:00:00
     2020-12-22 19:47:39   timer_02_c01    22.12.2020 23:00:00
     2020-12-22 19:47:39   timer_03_c02    23.12.2020 07:00:00
     2020-12-22 19:47:39   timer_04_c02    22.12.2020 23:00:00
   Regex:
     accu:
     cond:
       deltadewpoint:
         0:
           state      ^deltadewpoint$:^state:
         1:
           state      ^deltadewpoint$:^state:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'deltadewpoint','state')<1 and ::DOIF_time($hash,0,1,$wday,$hms) and ($month>4 and $month<10)
     1          ::ReadingValDoIf($hash,'deltadewpoint','state')<1 and ::DOIF_time($hash,2,3,$wday,$hms) and ($month<=4 or $month>=10)
   days:
   do:
     0:
       0          set HUEDevice17,HUEDevice15 on
     1:
       0          set HUEDevice17,HUEDevice15 on
     2:
       0          set HUEDevice17,HUEDevice15 off
   helper:
     DEVFILTER  ^global$|^deltadewpoint$
     NOTIFYDEV  global|deltadewpoint
     globalinit 1
     last_timer 4
     sleeptimer -1
   interval:
     0          -1
     1          0
     2          -1
     3          2
   intervalfunc:
   localtime:
     0          1608703200
     1          1608674400
     2          1608703200
     3          1608674400
   readings:
     all         deltadewpoint:state
   realtime:
     0          07:00:00
     1          23:00:00
     2          07:00:00
     3          23:00:00
   time:
     0          07:00:00
     1          23:00:00
     2          07:00:00
     3          23:00:00
   timeCond:
     0          0
     1          0
     2          1
     3          1
   timer:
     0          0
     1          0
     2          0
     3          0
   timers:
     0           0  1
     1           2  3
   triggertime:
     1608674400:
       localtime  1608674400
       hash:
     1608703200:
       localtime  1608703200
       hash:
   uiState:
   uiTable:
Attributes:
   room       Kellerlüftung


List von deltadewpoint

Internals:
   CFGFN     
   FUUID      5fe0eb17-f33f-f59f-e80b-ec58da6542b958ca
   NAME       deltadewpoint
   NR         1200
   STATE      -0.699999999999999
   TYPE       dummy
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1608662805.19923
           VALUE      -0.699999999999999
   READINGS:
     2020-12-22 19:46:45   state           -0.699999999999999
Attributes:
   room       Kellerlüftung
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: amenomade am 22 Dezember 2020, 20:06:27
"list" vom DOIF wenn er im "falschen" Zustand ist, wäre auch relevant
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Ruggy am 22 Dezember 2020, 21:54:14
List vom TAUPUNKT_LUEFTUNG_KG

Internals:
   CFGFN     
   DEF        ([deltadewpoint and [07 and ($month>4 and $month<10)) (set HUEDevice17,HUEDevice15 on) DOELSEIF ([deltadewpoint and [07 and ($month<=4 or $month>=10)) (set HUEDevice17,HUEDevice15 on) DOELSE (set HUEDevice17,HUEDevice15 off)
   FUUID      5fe1bee7-f33f-f59f-1a14-e04ad4bc48189b35
   MODEL      FHEM
   NAME       TAUPUNKT_LUEFTUNG_KG
   NOTIFYDEV  deltadewpoint,global
   NR         1436
   NTFY_ORDER 50-TAUPUNKT_LUEFTUNG_KG
   STATE      cmd_2
   TYPE       DOIF
   VERSION    22428 2020-07-18 20
   Helper:
     DBLOG:
       error:
         DbLog:
           TIME       1608634305.27091
           VALUE      set KELLER_LUEFTER_ALLE
       state:
         DbLog:
           TIME       1608666368.99455
           VALUE      cmd_2
   READINGS:
     2020-12-22 21   Device          deltadewpoint
     2020-12-22 20   cmd             2
     2020-12-22 20   cmd_event       deltadewpoint
     2020-12-22 20   cmd_nr          2
     2020-12-22 21   e_deltadewpoint_state -0.799999999999999
     2020-12-22 20   error           set HUEDevice17: Unknown argument , choose one of off on toggle statusRequest alert rename on-till intervals off-till off-till-overnight off-for-timer on-till-overnight on-for-timer blink attrTemplate HUEDevice15 on: Unknown command HUEDevice15, try help.
     2020-12-22 20   mode            enabled
     2020-12-22 20   state           cmd_2
     2020-12-22 20   timer_01_c01    23.12.2020 07
     2020-12-22 20   timer_02_c01    22.12.2020 23
     2020-12-22 20   timer_03_c02    23.12.2020 07
     2020-12-22 20   timer_04_c02    22.12.2020 23
   Regex:
     accu:
     cond:
       deltadewpoint:
         0:
           state      ^deltadewpoint$
         1:
           state      ^deltadewpoint$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0           href='/fhem?detail=deltadewpoint'>deltadewpoint','state')<2 and  and ($month>4 and $month<10)
     1           href='/fhem?detail=deltadewpoint'>deltadewpoint','state')<2 and  and ($month<=4 or $month>=10)
   days:
   do:
     0:
       0          set HUEDevice17,HUEDevice15 on
     1:
       0          set HUEDevice17,HUEDevice15 on
     2:
       0          set HUEDevice17,HUEDevice15 off
   helper:
     DEVFILTER  ^global$|^deltadewpoint$
     NOTIFYDEV  global|deltadewpoint
     event      -0.799999999999999
     globalinit 1
     last_timer 4
     sleeptimer -1
     timerdev   deltadewpoint
     timerevent -0.799999999999999
     triggerDev deltadewpoint
     timerevents:
       -0.799999999999999
     timereventsState:
       state: -0.799999999999999
     triggerEvents:
       -0.799999999999999
     triggerEventsState:
       state: -0.799999999999999
   internals:
   interval:
     0          -1
     1          0
     2          -1
     3          2
   intervalfunc:
   localtime:
     0          1608703200
     1          1608674400
     2          1608703200
     3          1608674400
   readings:
     all         deltadewpoint
   realtime:
     0          07
     1          23
     2          07
     3          23
   time:
     0          07
     1          23
     2          07
     3          23
   timeCond:
     0          0
     1          0
     2          1
     3          1
   timer:
     0          0
     1          0
     2          0
     3          0
   timers:
     0           0  1
     1           2  3
   trigger:
   triggertime:
     1608674400:
       localtime  1608674400
       hash:
     1608703200:
       localtime  1608703200
       hash:
   uiState:
   uiTable:
Attributes:
   room       Kellerlüftung
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Ruggy am 22 Dezember 2020, 21:58:16
Hier auch noch ein List vom HUEDevice17, weil im DOIF mit diesem Device ein Fehler angezeigt wird. Hier handelt es sich um eine Steckdose, welche einen Lüfter schaltet. Jedoch kann ich mit folgenden Befehl den Lüfter einschalten.

set HUEDevice17 on



Internals:
   DEF        17  IODev=deCONZ
   FUUID      5f8b4975-f33f-f59f-5566-cc02983421abafc4
   FVERSION   31_HUEDevice.pm:0.218370/2020-05-02
   ID         17
   INTERVAL   
   IODev      deCONZ
   NAME       HUEDevice17
   NR         102
   STATE      off
   TYPE       HUEDevice
   desired    0
   manufacturername OSRAM
   modelid    Plug 01
   name       Keller_Luefter_hinten
   swversion  V1.04.90
   type       On/Off plug-in unit
   uniqueid   7c:b0:3e:aa:00:b0:6b:98-03
   Helper:
     DBLOG:
       onoff:
         DbLog:
           TIME       1608664588.81945
           VALUE      0
       state:
         DbLog:
           TIME       1608664588.81945
           VALUE      off
   READINGS:
     2020-12-15 15:52:40   alert           none
     2020-12-22 20:16:28   onoff           0
     2020-12-22 20:16:28   pct             0
     2020-12-22 20:16:29   reachable       1
     2020-12-22 20:16:28   state           off
   helper:
     alert      none
     battery    -1
     bri        -1
     colormode 
     ct         -1
     devtype   
     effect     
     hue        -1
     mode       
     on         0
     pct        0
     reachable  1
     rgb       
     sat        -1
     update_timeout -1
     xy         
     json:
       etag       2b4e10f693cef80396430e8039a3278f
       lastseen   2020-12-22T20:50:01.372
       manufacturername OSRAM
       modelid    Plug 01
       name       Keller_Luefter_hinten
       swversion  V1.04.90
       type       On/Off plug-in unit
       uniqueid   7c:b0:3e:aa:00:b0:6b:98-03
       state:
         alert      none
Attributes:
   IODev      deCONZ
   alias      Keller_Luefter_hinten
   color-icons 2
   devStateIcon devStateIcon off:vent_ventilation_level_0 on:vent_ventilation_level_3@red
   group      HUEDevice
   model      Plug 01
   room       HUEDevice,Keller,Kellerlüftung
   subType    switch
   webCmd     toggle:on:off
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: gvzdus am 22 Dezember 2020, 22:05:53
Also, Dein DOIF "list" sieht ganz krank aus. Möglicherweise wegen des ">"-Zeichen, aber kontrolliere doch bitte noch mal die Anzeige in FHEM mit dem, was wir im Posting geschrieben haben.

Außerdem scheint "set HueDevice1,HueDevice2 on" nicht zu funktionieren. Siehe "error" im DOIF-Listing. Schalte doch erst mal nur ein Gerät.

Ich bin mit DOIF definitiv nicht glücklich - ich bin Programmierer, und zwar nicht in deklarativen Sprachen. Aber hangele Dich doch am besten Schritt für Schritt der Lösung näher.
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Ruggy am 22 Dezember 2020, 22:27:40
Folgendes steht im DOIF Device TAUPUNKT_LUEFTUNG_KG unter "DEF"

([deltadewpoint:state]<2 and [07:00-23:00] and ($month>4 and $month<10)) (set HUEDevice17,HUEDevice15 on) DOELSEIF ([deltadewpoint:state]<2 and [07:00-23:00] and ($month<=4 or $month>=10)) (set HUEDevice17,HUEDevice15 on) DOELSE (set HUEDevice17,HUEDevice15 off)

Warum jetzt im List davon folgendes steht, weiß ich nicht. Aber kann schon sein, dass das > stört?

([deltadewpoint and [07 and ($month>4 and $month<10)) (set HUEDevice17,HUEDevice15 on) DOELSEIF ([deltadewpoint and [07 and ($month<=4 or $month>=10)) (set HUEDevice17,HUEDevice15 on) DOELSE (set HUEDevice17,HUEDevice15 off)



Wenn ich aber folgenden Befehl, direkt in FHEM in der oberen Zeile eingebe, werden beide Lüfter eingeschalten

set HUEDevice17,HUEDevice15 on


:-[
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: gvzdus am 22 Dezember 2020, 22:37:09
Naja, aber das "error" in Deinem Posting:

error           set HUEDevice17: Unknown argument , choose one of off on toggle statusRequest alert rename on-till intervals off-till off-till-overnight off-for-timer on-till-overnight on-for-timer blink attrTemplate HUEDevice15 on: Unknown command HUEDevice15, try help.
     2020-12-22 20   mode            enabled


deutet darauf hin, dass das im DOIF so nicht klappt. Du kannst ja jetzt schimpfen, warum es auf der Kommandozeile klappt und nicht im DOIF, und ich wüsste nicht, was ich entgegnen sollte. Aber - wie gesagt - besser Schritt für Schritt, und erst mal einen Lüfter steuern.
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Ruggy am 22 Dezember 2020, 22:48:15
Nein, ich schimpfe nicht, bin nur kurz vor der Verzweiflung  ;)

Habe jetzt nur einen Lüfter eingetragen

([deltadewpoint:state]<2 and [07:00-23:00] and ($month>4 and $month<10)) (set HUEDevice15 on) DOELSEIF ([deltadewpoint:state]<2 and [07:00-23:00] and ($month<=4 or $month>=10)) (set HUEDevice15 on) DOELSE (set HUEDevice15 off)

Jetzt sieht so das DOIF "TAUPUNKT_LUEFTUNG_KG" aus; zumindest kein Error; Aber Lüfter schaltet wieder nicht.

Internals:
   CFGFN     
   DEF        ([deltadewpoint:state]<2 and [07:00-23:00] and ($month>4 and $month<10)) (set HUEDevice15 on) DOELSEIF ([deltadewpoint:state]<2 and [07:00-23:00] and ($month<=4 or $month>=10)) (set HUEDevice15 on) DOELSE (set HUEDevice15 off)
   FUUID      5fe1bee7-f33f-f59f-1a14-e04ad4bc48189b35
   MODEL      FHEM
   NAME       TAUPUNKT_LUEFTUNG_KG
   NOTIFYDEV  global,deltadewpoint
   NR         1436
   NTFY_ORDER 50-TAUPUNKT_LUEFTUNG_KG
   STATE      initialized
   TYPE       DOIF
   VERSION    22428 2020-07-18 20:32:08
   Helper:
     DBLOG:
       error:
         DbLog:
           TIME       1608634305.27091
           VALUE      set KELLER_LUEFTER_ALLE:off
       state:
         DbLog:
           TIME       1608673354.02454
           VALUE      initialized
   READINGS:
     2020-12-22 22:42:34   cmd             0
     2020-12-22 22:42:34   mode            enabled
     2020-12-22 22:42:34   state           initialized
     2020-12-22 22:42:34   timer_01_c01    23.12.2020 07:00:00
     2020-12-22 22:42:34   timer_02_c01    22.12.2020 23:00:00
     2020-12-22 22:42:34   timer_03_c02    23.12.2020 07:00:00
     2020-12-22 22:42:34   timer_04_c02    22.12.2020 23:00:00
   Regex:
     accu:
     cond:
       deltadewpoint:
         0:
           state      ^deltadewpoint$:^state:
         1:
           state      ^deltadewpoint$:^state:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'deltadewpoint','state')<2 and ::DOIF_time($hash,0,1,$wday,$hms) and ($month>4 and $month<10)
     1          ::ReadingValDoIf($hash,'deltadewpoint','state')<2 and ::DOIF_time($hash,2,3,$wday,$hms) and ($month<=4 or $month>=10)
   days:
   do:
     0:
       0          set HUEDevice15 on
     1:
       0          set HUEDevice15 on
     2:
       0          set HUEDevice15 off
   helper:
     DEVFILTER  ^global$|^deltadewpoint$
     NOTIFYDEV  global|deltadewpoint
     globalinit 1
     last_timer 4
     sleeptimer -1
   interval:
     0          -1
     1          0
     2          -1
     3          2
   intervalfunc:
   localtime:
     0          1608703200
     1          1608674400
     2          1608703200
     3          1608674400
   readings:
     all         deltadewpoint:state
   realtime:
     0          07:00:00
     1          23:00:00
     2          07:00:00
     3          23:00:00
   time:
     0          07:00:00
     1          23:00:00
     2          07:00:00
     3          23:00:00
   timeCond:
     0          0
     1          0
     2          1
     3          1
   timer:
     0          0
     1          0
     2          0
     3          0
   timers:
     0           0  1
     1           2  3
   triggertime:
     1608674400:
       localtime  1608674400
       hash:
     1608703200:
       localtime  1608703200
       hash:
   uiState:
   uiTable:
Attributes:
   room       Kellerlüftung
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Ruggy am 22 Dezember 2020, 22:52:54
Nach ein paar wenigen Minuten hat der Lüfter jetzt eingeschalten.

Unter state steht cmd_2

List von TAUPUNKT_LUEFTUNG_KG

Internals:
   CFGFN     
   DEF        ([deltadewpoint:state]<2 and [07:00-23:00] and ($month>4 and $month<10)) (set HUEDevice15 on) DOELSEIF ([deltadewpoint:state]<2 and [07:00-23:00] and ($month<=4 or $month>=10)) (set HUEDevice15 on) DOELSE (set HUEDevice15 off)
   FUUID      5fe1bee7-f33f-f59f-1a14-e04ad4bc48189b35
   MODEL      FHEM
   NAME       TAUPUNKT_LUEFTUNG_KG
   NOTIFYDEV  global,deltadewpoint
   NR         1436
   NTFY_ORDER 50-TAUPUNKT_LUEFTUNG_KG
   STATE      cmd_2
   TYPE       DOIF
   VERSION    22428 2020-07-18 20:32:08
   Helper:
     DBLOG:
       error:
         DbLog:
           TIME       1608634305.27091
           VALUE      set KELLER_LUEFTER_ALLE:off
       state:
         DbLog:
           TIME       1608673777.54177
           VALUE      cmd_2
   READINGS:
     2020-12-22 22:49:37   Device          deltadewpoint
     2020-12-22 22:49:37   cmd             2
     2020-12-22 22:49:37   cmd_event       deltadewpoint
     2020-12-22 22:49:37   cmd_nr          2
     2020-12-22 22:49:37   e_deltadewpoint_state -0.9
     2020-12-22 22:42:34   mode            enabled
     2020-12-22 22:49:37   state           cmd_2
     2020-12-22 22:42:34   timer_01_c01    23.12.2020 07:00:00
     2020-12-22 22:42:34   timer_02_c01    22.12.2020 23:00:00
     2020-12-22 22:42:34   timer_03_c02    23.12.2020 07:00:00
     2020-12-22 22:42:34   timer_04_c02    22.12.2020 23:00:00
   Regex:
     accu:
     cond:
       deltadewpoint:
         0:
           state      ^deltadewpoint$:^state:
         1:
           state      ^deltadewpoint$:^state:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'deltadewpoint','state')<2 and ::DOIF_time($hash,0,1,$wday,$hms) and ($month>4 and $month<10)
     1          ::ReadingValDoIf($hash,'deltadewpoint','state')<2 and ::DOIF_time($hash,2,3,$wday,$hms) and ($month<=4 or $month>=10)
   days:
   do:
     0:
       0          set HUEDevice15 on
     1:
       0          set HUEDevice15 on
     2:
       0          set HUEDevice15 off
   helper:
     DEVFILTER  ^global$|^deltadewpoint$
     NOTIFYDEV  global|deltadewpoint
     event      -0.9
     globalinit 1
     last_timer 4
     sleeptimer -1
     timerdev   deltadewpoint
     timerevent -0.9
     triggerDev deltadewpoint
     DOIF_eventa:
       cmd_nr: 2
       cmd: 2
       cmd_event: deltadewpoint
       cmd_2
     DOIF_eventas:
       cmd_nr: 2
       cmd: 2
       cmd_event: deltadewpoint
       state: cmd_2
     timerevents:
       -0.9
     timereventsState:
       state: -0.9
     triggerEvents:
       -0.9
     triggerEventsState:
       state: -0.9
   internals:
   interval:
     0          -1
     1          0
     2          -1
     3          2
   intervalfunc:
   localtime:
     0          1608703200
     1          1608674400
     2          1608703200
     3          1608674400
   readings:
     all         deltadewpoint:state
   realtime:
     0          07:00:00
     1          23:00:00
     2          07:00:00
     3          23:00:00
   time:
     0          07:00:00
     1          23:00:00
     2          07:00:00
     3          23:00:00
   timeCond:
     0          0
     1          0
     2          1
     3          1
   timer:
     0          0
     1          0
     2          0
     3          0
   timers:
     0           0  1
     1           2  3
   trigger:
   triggertime:
     1608674400:
       localtime  1608674400
       hash:
     1608703200:
       localtime  1608703200
       hash:
   uiState:
   uiTable:
Attributes:
   room       Kellerlüftung
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: amenomade am 23 Dezember 2020, 00:19:03
Zitat von: CommandRef#DOIFFalls ein Komma nicht als Trennzeichen zwischen FHEM-Befehlen gelten soll, so muss der FHEM-Ausdruck zusätzlich in runde Klammern gesetzt werden: ...((set lamp1,lamp2 on),set switch on)

https://fhem.de/commandref_DE.html#DOIF_Angaben_im_Ausfuehrungsteil
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: gvzdus am 23 Dezember 2020, 06:38:03
... und hat vermutlich um 23 Uhr dann abgeschaltet, richtig?

Ich würde jetzt
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Ruggy am 23 Dezember 2020, 10:37:41
Danke für Euere bisherigen große Hilfsbereitschaft  :)


Ja, hat gestern um 23:00 Uhr abgeschalten.

Derzeit sieht mein DOIF so aus und als repeatcmd Attribut habe ich dort 7200:10080 gesetzt.

   
([deltadewpoint:state]>2 and [07:00-23:00] and ($month>4 and $month<10)) (set HUEDevice15 on-for-timer 1800) DOELSEIF ([deltadewpoint:state]>2 and [07:00-23:00] and ($month<=4 or $month>=10)) (set HUEDevice15 on-for-timer 1200) DOELSE (set HUEDevice15 off)

Das mit den Klammern setzten wird wohl das Problem gewesen sein.
Werde aber heute eine Kabel direkt zu dem zweiten Lüfter ziehen, weil anscheinen der zweite Lüfter bzw. die Smart+ Steckdose die Verbindung verliert. Die zwei Steckdosen haben zwar Sichtkontakt und sind nur etwa 8-10 m auseinander aber der Gang ist ziemlich schmal. Evlt. können sich hier die Zigbee Funkwellen nicht zuverlässig ausbreiten.

Lüften ist ja heute sowieso noch nicht drinnen, weil zu feucht.

Werde die Sache jetzt mal beobachten und zwischendurch berichten. Vielleicht schaffe ich es auch einen längeren Zeitraum von der DBLog Aufzeichnung darzustellen. Kann nur einen Tag darstellen.
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Ruggy am 26 Dezember 2020, 11:40:17
Zuallererst möchte ich noch einen schönen zweiten Weihnachtsfeiertag wünschen.

Sei drei Tagen läuft jetzt die grundsätzilche Steuerung ohne Probleme. Die Lüfter schalten zuverlässig ein und aus.
Jedoch interessiert FHEM meine eingestellten Lüftungs- und Pausenzeiten  überhaupt nicht.

Der Lüfter ist immer für eine Stunden eingeschaltet und für eine Stunde ausgeschaltet, obwohl er für 20 Minuten einschalten sollte und für 120 Minuten.

Hier wäre meine DOIF mit folgenden Attribut:
([deltadewpoint:state]>2 and [07:00-23:00] and ($month>4 and $month<10)) (set HUEDevice9 on-for-timer 1800) DOELSEIF ([deltadewpoint:state]>2 and [07:00-23:00] and ($month<=4 or $month>=10)) (set HUEDevice9 on-for-timer 900) DOELSE (set HUEDevice9 off)

attr TAUPUNKT_LUEFTUNG_KG repeatcmd 3600:7200


So wie ich es verstanden habe werden die Zeiten überall in Sekunden angegeben. Beim repeatcmd bezieht sich die 3600 auf den ersten Teil (also von Mai bis September) und der zweite Teil nach dem Doppelpunkt auf jetzt.


An was liegt es?

Viel kann ich noch nicht darüber sagen, ob das Lüften etwas bringt, nachdem es seit gestern erst wieder trockener geworden ist. Außerdem wird durch das momentante Lüftungsverhalten und den jetzt fallenden Außentemperaturen der Keller zu viel "ausgekühlt".

Habe auch die Funktion gefunden, mit der ich einen längeren Zeitraum in der Grafik darstellen kann. Man brauch nur im jeweiligen SVG_DbLog folgendes Attribut setzen (z.B. week, month,...)

attr TAUPUNKT_LUEFTUNG_KG fixedrange week

Hier eine Woche der Aufzeichnung:


Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Ruggy am 26 Dezember 2020, 12:18:12
Habe die Lists vergessen.

TAUPUNKT_LUEFTUNG_KG:

Internals:
   CFGFN     
   DEF        ([deltadewpoint:state]>2 and [07:00-23:00] and ($month>4 and $month<10)) (set HUEDevice9 on-for-timer 1800) DOELSEIF ([deltadewpoint:state]>2 and [07:00-23:00] and ($month<=4 or $month>=10)) (set HUEDevice9 on-for-timer 900) DOELSE (set HUEDevice9 off)
   FUUID      5fe1bee7-f33f-f59f-1a14-e04ad4bc48189b35
   MODEL      FHEM
   NAME       TAUPUNKT_LUEFTUNG_KG
   NOTIFYDEV  deltadewpoint,global
   NR         1436
   NTFY_ORDER 50-TAUPUNKT_LUEFTUNG_KG
   STATE      cmd_2
   TYPE       DOIF
   VERSION    22428 2020-07-18 20:32:08
   Helper:
     DBLOG:
       error:
         DbLog:
           TIME       1608634305.27091
           VALUE      set KELLER_LUEFTER_ALLE:off
       state:
         DbLog:
           TIME       1608976800.09825
           VALUE      cmd_2
   READINGS:
     2020-12-26 12:14:03   Device          deltadewpoint
     2020-12-26 11:00:00   cmd             2
     2020-12-26 11:00:00   cmd_event       timer_3
     2020-12-26 11:00:00   cmd_nr          2
     2020-12-26 12:14:03   e_deltadewpoint_state 11
     2020-12-26 00:49:08   mode            enabled
     2020-12-26 11:00:00   state           cmd_2
     2020-12-26 00:49:08   timer_01_c01    26.12.2020 07:00:00
     2020-12-26 00:49:08   timer_02_c01    26.12.2020 23:00:00
     2020-12-26 00:49:08   timer_03_c02    26.12.2020 07:00:00
     2020-12-26 00:49:08   timer_04_c02    26.12.2020 23:00:00
     2020-12-26 11:00:00   wait_timer      26.12.2020 13:00:00 cmd_2 timer_3
   Regex:
     accu:
     cond:
       deltadewpoint:
         0:
           state      ^deltadewpoint$:^state:
         1:
           state      ^deltadewpoint$:^state:
   attr:
     cmdState:
     repeatcmd:
       3600
       7200
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'deltadewpoint','state')>2 and ::DOIF_time($hash,0,1,$wday,$hms) and ($month>4 and $month<10)
     1          ::ReadingValDoIf($hash,'deltadewpoint','state')>2 and ::DOIF_time($hash,2,3,$wday,$hms) and ($month<=4 or $month>=10)
   days:
   do:
     0:
       0          set HUEDevice9 on-for-timer 1800
     1:
       0          set HUEDevice9 on-for-timer 900
     2:
       0          set HUEDevice9 off
   helper:
     DEVFILTER  ^global$|^deltadewpoint$
     NOTIFYDEV  global|deltadewpoint
     event      11
     globalinit 1
     last_timer 4
     sleepdevice timer_3
     sleepsubtimer 0
     sleeptimer 1
     timerdev   deltadewpoint
     timerevent 11
     triggerDev deltadewpoint
     timerevents:
       11
     timereventsState:
       state: 11
     triggerEvents:
       11
     triggerEventsState:
       state: 11
   internals:
   interval:
     0          -1
     1          0
     2          -1
     3          2
   intervalfunc:
   intervaltimer:
   localtime:
     0          1608962400
     1          1609020000
     2          1608962400
     3          1609020000
   readings:
     all         deltadewpoint:state
   realtime:
     0          07:00:00
     1          23:00:00
     2          07:00:00
     3          23:00:00
   time:
     0          07:00:00
     1          23:00:00
     2          07:00:00
     3          23:00:00
   timeCond:
     0          0
     1          0
     2          1
     3          1
   timer:
     0          0
     1          0
     2          0
     3          0
   timers:
     0           0  1
     1           2  3
   trigger:
   triggertime:
     1609020000:
       localtime  1609020000
       hash:
   uiState:
   uiTable:
Attributes:
   repeatcmd  3600:7200
   room       Kellerlüftung


deltadewpoint:

Internals:
   CFGFN     
   FUUID      5fe0eb17-f33f-f59f-e80b-ec58da6542b958ca
   NAME       deltadewpoint
   NR         1200
   STATE      11
   TYPE       dummy
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1608981243.4925
           VALUE      11
   READINGS:
     2020-12-26 12:14:03   state           11
Attributes:
   room       Kellerlüftung


calcdelta:

Internals:
   CFGFN     
   DEF        (KEL|AUS)_LUFTFEUCHTIGKEIT:dewpoint.* { my $a=ReadingsVal("KEL_LUFTFEUCHTIGKEIT", "dewpoint", 0)-ReadingsVal("AUS_LUFTFEUCHTIGKEIT", "dewpoint", 0); fhem ("set deltadewpoint " . $a) }
   FUUID      5fe0eb52-f33f-f59f-d120-dc8c0132d5471c97
   NAME       calcdelta
   NR         1203
   NTFY_ORDER 50-calcdelta
   REGEXP     (KEL|AUS)_LUFTFEUCHTIGKEIT:dewpoint.*
   STATE      2020-12-26 12:14:03
   TRIGGERTIME 1608981243.48697
   TYPE       notify
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1608575826.8177
           VALUE      active
   READINGS:
     2020-12-21 19:37:06   state           active
Attributes:
   room       Kellerlüftung
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: gvzdus am 27 Dezember 2020, 08:40:47
Ich bin ja schon nicht auf die Klammer um die 2 Kommandos gekommen...
Ich habe gerade mal getestet: Grundsätzlich funktioniert bei mir "on-for-timer" mit Zigbee: Wird sauber nach X Sekunden abgeschaltet.

Ich selber wäre in Deiner Situation genervt und würde den billigen Weg wählen: In Condition 1 & 2 reinnehmen, dass die aktuelle Minute < 20 bzw. < 30 sein muss. Dann läuft der Lüfter immer von xx:00 bis xx:20 bzw. 30. Damit sollte dann auch repeatCmd überflüssig sein. Außerdem würde ich noch eine Mindesttemperatur für den Keller definieren, um Eiszapfenbildung zu vermeiden.
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Ruggy am 27 Dezember 2020, 12:36:18
Habe gestern abend noch etwas herum probiert und die Zeiten kurz (nur ein paar Minuten eingestellt). Da hat es dann funktoniert.
Und dann wieder die gewünschten Werte eingetragen. Sieht so aus, als wie wenn die Schaltzeiten funktionieren würde.

Aber anscheinend wird es nicht richtig im Plot dargestellt.

Heute habe ich noch auf Deinen Rat hin die Temperaturen mit in das DOIF geschrieben damit ich im Keller keine Schlittschuhe benötige.

Hat aber noch nicht eingeschalten, obwohl es im Keller über acht Grad hat?
Evlt. fehlt wieder irgendwo eine Klammer oder eine Eckige Klammer oder ein Abstand?
Ganz schön kompliziert mit den DOIF.  :-[

So sieht jetzt das DOIF aus.

([deltadewpoint:state]>2 and [07:00-23:00] and ($month>4 and $month<10) and (KEL_LUFTFEUCHTIGKEIT:temperature>8 and KEL_LUFTFEUCHTIGKEIT:temperature<12)) (set HUEDevice9 on-for-timer 1800) DOELSEIF ([deltadewpoint:state]>2 and [07:00-23:00] and ($month<=4 or $month>=10) and (KEL_LUFTFEUCHTIGKEIT:temperature>8 and KEL_LUFTFEUCHTIGKEIT:temperature<12)) (set HUEDevice9 on-for-timer 900) DOELSE (set HUEDevice9 off)

Wenn ich jetzt die Einschaltdauer von der Außentemperatur abhängig machen möchte, müsste ich wahrscheinlich im DOIF noch weitere DOELSEIF machen (von Temperatur bis Temperatur die Lüftungszeit usw.)?


Im TAUPUNKT_LUEFTUNG_KG wird auch ein Fehler angezeigt:

condition c01: syntax error, line 1, near "KEL_LUFTFEUCHTIGKEIT:"


Internals:
   CFGFN     
   DEF        ([deltadewpoint:state]>2 and [07:00-23:00] and ($month>4 and $month<10) and (KEL_LUFTFEUCHTIGKEIT:temperature>8 and KEL_LUFTFEUCHTIGKEIT:temperature<12)) (set HUEDevice9 on-for-timer 1800) DOELSEIF ([deltadewpoint:state]>2 and [07:00-23:00] and ($month<=4 or $month>=10) and (KEL_LUFTFEUCHTIGKEIT:temperature>8 and KEL_LUFTFEUCHTIGKEIT:temperature<12)) (set HUEDevice9 on-for-timer 900) DOELSE (set HUEDevice9 off)
   FUUID      5fe1bee7-f33f-f59f-1a14-e04ad4bc48189b35
   MODEL      FHEM
   NAME       TAUPUNKT_LUEFTUNG_KG
   NOTIFYDEV  deltadewpoint,global
   NR         1436
   NTFY_ORDER 50-TAUPUNKT_LUEFTUNG_KG
   STATE      initialized
   TYPE       DOIF
   VERSION    22428 2020-07-18 20:32:08
   Helper:
     DBLOG:
       error:
         DbLog:
           TIME       1608634305.27091
           VALUE      set KELLER_LUEFTER_ALLE:off
       state:
         DbLog:
           TIME       1609061931.3437
           VALUE      initialized
   READINGS:
     2020-12-27 12:33:45   Device          deltadewpoint
     2020-12-27 10:38:51   cmd             0
     2020-12-27 12:33:45   e_deltadewpoint_state 12.9
     2020-12-27 12:33:45   error           condition c01: syntax error, line 1, near "KEL_LUFTFEUCHTIGKEIT:"

     2020-12-27 10:38:51   mode            enabled
     2020-12-27 10:38:51   state           initialized
     2020-12-27 10:38:51   timer_01_c01    28.12.2020 07:00:00
     2020-12-27 10:38:51   timer_02_c01    27.12.2020 23:00:00
     2020-12-27 10:38:51   timer_03_c02    28.12.2020 07:00:00
     2020-12-27 10:38:51   timer_04_c02    27.12.2020 23:00:00
   Regex:
     accu:
     cond:
       deltadewpoint:
         0:
           state      ^deltadewpoint$:^state:
         1:
           state      ^deltadewpoint$:^state:
   attr:
     cmdState:
     repeatcmd:
       3600
       9000
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'deltadewpoint','state')>2 and ::DOIF_time($hash,0,1,$wday,$hms) and ($month>4 and $month<10) and (KEL_LUFTFEUCHTIGKEIT:temperature>8 and KEL_LUFTFEUCHTIGKEIT:temperature<12)
     1          ::ReadingValDoIf($hash,'deltadewpoint','state')>2 and ::DOIF_time($hash,2,3,$wday,$hms) and ($month<=4 or $month>=10) and (KEL_LUFTFEUCHTIGKEIT:temperature>8 and KEL_LUFTFEUCHTIGKEIT:temperature<12)
   days:
   do:
     0:
       0          set HUEDevice9 on-for-timer 1800
     1:
       0          set HUEDevice9 on-for-timer 900
     2:
       0          set HUEDevice9 off
   helper:
     DEVFILTER  ^global$|^deltadewpoint$
     NOTIFYDEV  global|deltadewpoint
     event      12.9
     globalinit 1
     last_timer 4
     sleeptimer -1
     triggerDev deltadewpoint
     triggerEvents:
       12.9
     triggerEventsState:
       state: 12.9
   internals:
   interval:
     0          -1
     1          0
     2          -1
     3          2
   intervalfunc:
   localtime:
     0          1609135200
     1          1609106400
     2          1609135200
     3          1609106400
   readings:
     all         deltadewpoint:state
   realtime:
     0          07:00:00
     1          23:00:00
     2          07:00:00
     3          23:00:00
   time:
     0          07:00:00
     1          23:00:00
     2          07:00:00
     3          23:00:00
   timeCond:
     0          0
     1          0
     2          1
     3          1
   timer:
     0          0
     1          0
     2          0
     3          0
   timers:
     0           0  1
     1           2  3
   trigger:
   triggertime:
     1609106400:
       localtime  1609106400
       hash:
     1609135200:
       localtime  1609135200
       hash:
   uiState:
   uiTable:
Attributes:
   repeatcmd  3600:9000
   room       Kellerlüftung
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Ruggy am 27 Dezember 2020, 12:42:58
Denke ich habe den Fehler gefunden.
Habe das mit der Temperatur in eckige Klammern gesetzt so wie das mit dem deltadewpoint.
Jetzt läuft der Lüfter.

   
([deltadewpoint:state]>2 and [07:00-23:00] and ($month>4 and $month<10) and ([KEL_LUFTFEUCHTIGKEIT:temperature]>8 and [KEL_LUFTFEUCHTIGKEIT:temperature]<12)) (set HUEDevice9 on-for-timer 1800) DOELSEIF ([deltadewpoint:state]>2 and [07:00-23:00] and ($month<=4 or $month>=10) and ([KEL_LUFTFEUCHTIGKEIT:temperature]>8 and [KEL_LUFTFEUCHTIGKEIT:temperature]<12)) (set HUEDevice9 on-for-timer 900) DOELSE (set HUEDevice9 off)
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Ruggy am 07 März 2021, 11:12:23
Möchte kurz den Zwischenstand bzw. die Werte der Entwicklung der absoluten Luftfeuchtigkeit zeigen (siehe Anhang).

So wie es aussieht, wurde es durch die Lüftersteuerung etwas trockener im Keller.

Jetzt habe ich aber folgende Problematik:

Man sieht, dass die Luftfeuchtigkeit ab Mitte Februar wieder gestiegen ist. Dies hängt damit zusammen, dass unter einer Kellertemperatur von 7 Grad (habe ich zwischendurch auf 8 geändert und auch so gelassen) der Lüfter nicht mehr einschalten soll, damit der Keller nicht zu viel auskühlt. Mitte Februar war dieser Wert erreicht (durch die Änderung auf 8 Grad immer noch).
Jetzt habe ich das "Problem" dass der Lüfter nur ab und zu mal wieder einschaltet (wegen den <8 Grad; was er ja soll), weil die Kellertemperatur zu kalt geworden und immer noch unter 8 Grad ist. Der Keller wärmt sich jetzt nur ganz langsam durch die Erdtemperatur auf.

Welches "and" könnte ich jetzt noch in das DOIF einbauen, damit der Lüfter einschaltet, obwohl es im Keller unter den jetzt eingestellten 8 Grad hat aber außen wärmer wäre. Dadurch würde sich der Keller durch die wärmere Außenluft  (durch die andere Bedingung immer noch trockenere Außenluft) wieder etwas erwärmen und außerdem weiter trocknen.

Folgendes würde ja nicht klappen, da die Voraussetztung ja immer wäre, dass es außen wärmer sein soll als innen
and ([AUS_LUFTFEUCHTIGKEIT:temperature]>[KEL_LUFTFEUCHTIGKEIT:temperature])

Hier das List vom DOIF mit dem DEF:
Internals:
   DEF        ([deltadewpoint:state]>2 and [07:00-23:00] and ($month>4 and $month<10) and ([KEL_LUFTFEUCHTIGKEIT:temperature]>8 and [KEL_LUFTFEUCHTIGKEIT:temperature]<12)) (set HUEDevice9 on-for-timer 1800) DOELSEIF ([deltadewpoint:state]>2 and [07:00-23:00] and ($month<=4 or $month>=10) and ([KEL_LUFTFEUCHTIGKEIT:temperature]>8 and [KEL_LUFTFEUCHTIGKEIT:temperature]<12)) (set HUEDevice9 on-for-timer 600) DOELSE (set HUEDevice9 off)
   FUUID      5fe1bee7-f33f-f59f-1a14-e04ad4bc48189b35
   MODEL      FHEM
   NAME       TAUPUNKT_LUEFTUNG_KG
   NOTIFYDEV  KEL_LUFTFEUCHTIGKEIT,deltadewpoint,global
   NR         103
   NTFY_ORDER 50-TAUPUNKT_LUEFTUNG_KG
   STATE      cmd_3
   TYPE       DOIF
   VERSION    22428 2020-07-18 20:32:08
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1615110968.23403
           VALUE      cmd_3
   READINGS:
     2021-03-07 11:10:09   Device          deltadewpoint
     2021-03-07 10:56:08   cmd             3
     2021-03-07 10:56:08   cmd_event       KEL_LUFTFEUCHTIGKEIT
     2021-03-07 10:56:08   cmd_nr          3
     2021-03-07 10:56:08   e_KEL_LUFTFEUCHTIGKEIT_temperature 7.06
     2021-03-07 11:10:09   e_deltadewpoint_state 14.6
     2021-03-07 10:55:04   mode            enabled
     2021-03-07 10:56:08   state           cmd_3
     2021-03-07 10:55:04   timer_01_c01    08.03.2021 07:00:00
     2021-03-07 10:55:04   timer_02_c01    07.03.2021 23:00:00
     2021-03-07 10:55:04   timer_03_c02    08.03.2021 07:00:00
     2021-03-07 10:55:04   timer_04_c02    07.03.2021 23:00:00
   Regex:
     accu:
     cond:
       KEL_LUFTFEUCHTIGKEIT:
         0:
           temperature ^KEL_LUFTFEUCHTIGKEIT$:^temperature:
         1:
           temperature ^KEL_LUFTFEUCHTIGKEIT$:^temperature:
       deltadewpoint:
         0:
           state      ^deltadewpoint$:^state:
         1:
           state      ^deltadewpoint$:^state:
   attr:
     cmdState:
     repeatcmd:
       3600
       5400
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'deltadewpoint','state')>2 and ::DOIF_time($hash,0,1,$wday,$hms) and ($month>4 and $month<10) and (::ReadingValDoIf($hash,'KEL_LUFTFEUCHTIGKEIT','temperature')>8 and ::ReadingValDoIf($hash,'KEL_LUFTFEUCHTIGKEIT','temperature')<12)
     1          ::ReadingValDoIf($hash,'deltadewpoint','state')>2 and ::DOIF_time($hash,2,3,$wday,$hms) and ($month<=4 or $month>=10) and (::ReadingValDoIf($hash,'KEL_LUFTFEUCHTIGKEIT','temperature')>8 and ::ReadingValDoIf($hash,'KEL_LUFTFEUCHTIGKEIT','temperature')<12)
   days:
   do:
     0:
       0          set HUEDevice9 on-for-timer 1800
     1:
       0          set HUEDevice9 on-for-timer 600
     2:
       0          set HUEDevice9 off
   helper:
     DEVFILTER  ^global$|^deltadewpoint$|^KEL_LUFTFEUCHTIGKEIT$
     NOTIFYDEV  global|deltadewpoint|KEL_LUFTFEUCHTIGKEIT
     event      14.6
     globalinit 1
     last_timer 4
     sleeptimer -1
     timerdev   deltadewpoint
     timerevent 14.6
     triggerDev deltadewpoint
     timerevents:
       14.6
     timereventsState:
       state: 14.6
     triggerEvents:
       14.6
     triggerEventsState:
       state: 14.6
   internals:
   interval:
     0          -1
     1          0
     2          -1
     3          2
   intervalfunc:
   localtime:
     0          1615183200
     1          1615154400
     2          1615183200
     3          1615154400
   readings:
     all         deltadewpoint:state KEL_LUFTFEUCHTIGKEIT:temperature
   realtime:
     0          07:00:00
     1          23:00:00
     2          07:00:00
     3          23:00:00
   time:
     0          07:00:00
     1          23:00:00
     2          07:00:00
     3          23:00:00
   timeCond:
     0          0
     1          0
     2          1
     3          1
   timer:
     0          0
     1          0
     2          0
     3          0
   timers:
     0           0  1
     1           2  3
   trigger:
   triggertime:
     1615154400:
       localtime  1615154400
       hash:
     1615183200:
       localtime  1615183200
       hash:
   uiState:
   uiTable:
Attributes:
   repeatcmd  3600:5400
   room       Kellerlüftung


Danke
Vielen Grüße
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Wardancer am 15 März 2021, 21:11:16
Hi,

Ohne mir jetzt deine ganzen Bedingungen im Detail angeschaut zu haben, währe es vermutlich am einfachsten parallel zu den jetzigen Bedingungen per or eine Variante für, Außentemperatur ist höher als Keller und Luftfeuchtigkeit ist kleiner draußen als drinnen zu basteln...
Titel: Antw:Taupunktgesteuerte Kellerlüftung und Temperaturabhängig
Beitrag von: Ruggy am 15 März 2021, 23:32:46
Hallo
und danke für die Antwort.

So ähnlich habe ich es gerade laufen.
Habe hierzu einen anderen Thread im Anfängerbereich gemacht, weil ich mir dachte, dass es kein spezielles Thema bzgl. Raumklima ist sonder eher ein DOIF Problem.

https://forum.fhem.de/index.php/topic,119456.15.html (https://forum.fhem.de/index.php/topic,119456.15.html)

Dort wurde mir bereits sehr geholfen.
Die Lüftersteuerung ist aber grundsätzlich ausbaufähig.

Wäre schön, wenn Du Dir dies mal anschauen könntest. Evlt. fallen dir hierzu Tips ein.
Ich weiß aber nicht, wo es besser wäre hier im Forum weiter zu schreiben, damit es nicht zu viel hin und her gibt.

Grüße
Ruggy