FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Sebastian84 am 05 Juli 2022, 08:54:26

Titel: Kellersteckdose und Feuchtigkeitssensor
Beitrag von: Sebastian84 am 05 Juli 2022, 08:54:26
Guten Morgen.
Bei mir wird ein Entfeuchter über eine fritzsteckdose
Und ein Feuchtigkeitssensor gesteuert..

Klappt auch gut. Jetzt wollte ich im Sommer wo die Temperaturen höher sind das von Mai bis Oktober der Entfeuchter bei einer höheren Feuchte sich anschaltet (zb. 70%).
Hier sind meine Einstellungen
        DEF        ([22:00-08:00] or ([Multisensor4:humidity]<([$SELF:desired]-[$SELF:hysterese]/2) and [?Kellersteckdose:state] ne "off"))
(set Kellersteckdose off)
DOELSEIF ([Multisensor4:humidity]>([$SELF:desired]+[$SELF:hysterese]/2) and [?Kellersteckdose:state] ne "on")
(set Kellersteckdose on)
   FUUID      620fd583-f33f-cdd4-d638-f8aabcf0541fb691
   MODEL      FHEM
   NAME       di_humidity_GZ
   NOTIFYDEV  di_humidity_GZ,global,Multisensor4
   NR         398
   NTFY_ORDER 50-di_humidity_GZ
   STATE      on
   TYPE       DOIF
   VERSION    25819 2022-03-12 23:15:22
   READINGS:
     2022-07-05 08:37:00   Device          Multisensor4
     2022-07-05 08:37:00   cmd             2
     2022-07-05 08:37:00   cmd_event       Multisensor4
     2022-07-05 08:37:00   cmd_nr          2
     2022-02-20 20:27:12   desired         62
     2022-07-05 08:37:00   e_Multisensor4_humidity 64.62
     2022-02-20 20:27:12   e_di_humidity_GZ_desired 62
     2022-02-20 10:29:29   e_di_humidity_GZ_hysterese 5
     2022-02-20 10:29:29   hysterese       5
     2022-02-19 11:23:02   mode            enabled
     2022-07-05 08:37:00   state           on
     2022-07-05 08:00:00   timer_01_c01    05.07.2022 22:00:00
     2022-07-05 08:00:00   timer_02_c01    06.07.2022 08:00:00
   Regex:
     accu:
     collect:
     cond:
       Multisensor4:
         0:
           humidity   ^Multisensor4$:^humidity:
         1:
           humidity   ^Multisensor4$:^humidity:
       di_humidity_GZ:
         0:
           desired    ^di_humidity_GZ$:^desired:
           hysterese  ^di_humidity_GZ$:^hysterese:
         1:
           desired    ^di_humidity_GZ$:^desired:
           hysterese  ^di_humidity_GZ$:^hysterese:
   attr:
     cmdState:
       0:
         off
       1:
         on
     wait:
     waitdel:
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms) or (::ReadingValDoIf($hash,'Multisensor4','humidity')<(::ReadingValDoIf($hash,'di_humidity_GZ','desired')-::ReadingValDoIf($hash,'di_humidity_GZ','hysterese')/2) and ::ReadingValDoIf($hash,'Kellersteckdose','state') ne "off")
     1          ::ReadingValDoIf($hash,'Multisensor4','humidity')>(::ReadingValDoIf($hash,'di_humidity_GZ','desired')+::ReadingValDoIf($hash,'di_humidity_GZ','hysterese')/2) and ::ReadingValDoIf($hash,'Kellersteckdose','state') ne "on"
   days:
   do:
     0:
       0          set Kellersteckdose off
     1:
       0          set Kellersteckdose on
     2:
   helper:
     NOTIFYDEV  di_humidity_GZ,global,Multisensor4
     event      humidity: 64.62
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   Multisensor4
     timerevent humidity: 64.62
     triggerDev Multisensor4
     timerevents:
       humidity: 64.62
     timereventsState:
       humidity: 64.62
     triggerEvents:
       humidity: 64.62
     triggerEventsState:
       humidity: 64.62
   internals:
   interval:
     0          -1
     1          0
   intervalfunc:
   intervaltimer:
   localtime:
     0          1657051200
     1          1657087200
   perlblock:
   readings:
     all         Multisensor4:humidity di_humidity_GZ:desired di_humidity_GZ:hysterese
   realtime:
     0          22:00:00
     1          08:00:00
   time:
     0          22:00:00
     1          08:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   trigger:
   triggertime:
     1657051200:
       localtime  1657051200
       hash:
     1657087200:
       localtime  1657087200
       hash:
   uiState:
   uiTable:
Attributes:
   cmdState   off|on
   readingList desired,hysterese
   room       Keller
   setList    desired:56,58,60,62,64,66,68,70 hysterese:2,5,10
   webCmd     desired:hysterese   



Titel: Antw:Kellersteckdose und Feuchtigkeitssensor
Beitrag von: Damian am 05 Juli 2022, 11:55:53
Du kannst z. B. mit einem zweiten DOIF die Vorgabe-Feuchte (desired-Reading) für die jeweilige Jahreszeit entsprechend verändern.

Titel: Antw:Kellersteckdose und Feuchtigkeitssensor
Beitrag von: Frank_Huber am 05 Juli 2022, 12:44:00
Oder über separate Zweige und die Monate mit abfragen.
Mit md$ müsste das machbar sein.
Titel: Antw:Kellersteckdose und Feuchtigkeitssensor
Beitrag von: Sebastian84 am 05 Juli 2022, 13:38:13
Mit ein zweiten Doif wird es gestimmt überschaubar werden.
Leider weiß ich nicht wie das geht.
Titel: Antw:Kellersteckdose und Feuchtigkeitssensor
Beitrag von: Damian am 05 Juli 2022, 19:52:06
Zitat von: Sebastian84 am 05 Juli 2022, 13:38:13
Mit ein zweiten Doif wird es gestimmt überschaubar werden.
Leider weiß ich nicht wie das geht.

Was konkret weißt du nicht?
Titel: Antw:Kellersteckdose und Feuchtigkeitssensor
Beitrag von: Sebastian84 am 05 Juli 2022, 19:59:36
( $month <=6 || $month >= 9 ).
Aber wie ich das schreiben muss.
Titel: Antw:Kellersteckdose und Feuchtigkeitssensor
Beitrag von: Damian am 05 Juli 2022, 20:09:44
DOIF ([00:00] and $md eq "0501") (setreading di_humidity_GZ desired 70) DOELSEIF ...

Am 01.05 wird auf 70 % geschaltet. Den Rest schaffst du schon selbst :)
Titel: Antw:Kellersteckdose und Feuchtigkeitssensor
Beitrag von: Sebastian84 am 05 Juli 2022, 20:56:05
DOIF ([00:00] und $md eq "0501") (Setreading di_humidity_GZ gewünschte 70) DOELSEIF ([Multisensor4:Feuchte]>([$SELF:deired]+[$SELF:hysterese]/2) und [?Kellersteckdose :state] ne "on")
(Kellersteckdose on setzen)

DOIF ([00:00] und $md eq "1001") (setreading di_humidity_GZ 62) DOELSEIF ([Multisensor4:humidity]>([$SELF:desired]+ [$SELF:hysterese]/2) und [?Kellersteckdose:state] ne "on")

Ist das so richtig
Titel: Antw:Kellersteckdose und Feuchtigkeitssensor
Beitrag von: Damian am 05 Juli 2022, 21:03:51
Zitat von: Sebastian84 am 05 Juli 2022, 20:56:05
DOIF ([00:00] und $md eq "0501") (Setreading di_humidity_GZ gewünschte 70) DOELSEIF ([Multisensor4:Feuchte]>([$SELF:deired]+[$SELF:hysterese]/2) und [?Kellersteckdose :state] ne "on")
(Kellersteckdose on setzen)

DOIF ([00:00] und $md eq "1001") (setreading di_humidity_GZ 62) DOELSEIF ([Multisensor4:humidity]>([$SELF:desired]+ [$SELF:hysterese]/2) und [?Kellersteckdose:state] ne "on")

Ist das so richtig

Nein, es geht hier um das zweite DOIF, dein bisheriges DOIF musst du nicht ändern.

DOIF ([00:00] and $md eq "0501") (setreading di_humidity_GZ desired 70) DOELSEIF ([00:00] and $md eq "1001") (setreading di_humidity_GZ desired 60)
Titel: Antw:Kellersteckdose und Feuchtigkeitssensor
Beitrag von: Sebastian84 am 05 Juli 2022, 21:32:27
Danke hab ich jetzt in Fhem eingetragen
Titel: Antw:Kellersteckdose und Feuchtigkeitssensor
Beitrag von: Sebastian84 am 06 Juli 2022, 16:56:30
Ich glaube das da was nicht funktioniert
   
Save config
anyViews
0_System
1_UG
2_EG
3_1.OG
4_2.OG
Wecker.Aus 5_Klingel
6_Heizung
7_Muelltonne
8_Zuhause
 

     9_Batterie
FBDECT
Garten
HUEDevice
ge_wht_steckdose Keller
Plots
Unsorted
icoEverything Everything
Commandref
Remote doc
Edit files
Select style
Event monitor

Internals:
   CFGFN     
   DEF        ([00:00] and $md eq "0501") (setreading di_humidity_GZ desired 70) DOELSEIF ([00:00] and $md eq "1001") (setreading di_humidity_GZ desired 62)
   FUUID      62c49114-f33f-cdd4-ea7d-f35727bac8637451
   MODEL      FHEM
   NAME       Kellersteckdose_Monat_Steuerung
   NOTIFYDEV  global
   NR         81650
   NTFY_ORDER 50-Kellersteckdose_Monat_Steuerung
   STATE      initialized
   TYPE       DOIF
   VERSION    25819 2022-03-12 23:15:22
   READINGS:
     2022-07-05 21:29:24   cmd             0
     2022-07-05 21:29:24   mode            enabled
     2022-07-05 21:29:24   state           initialized
     2022-07-06 00:00:00   timer_01_c01    07.07.2022 00:00:00
     2022-07-06 00:00:00   timer_02_c02    07.07.2022 00:00:00
   Regex:
     accu:
     collect:
   condition:
     0          ::DOIF_time_once($hash,0,$wday) and $md eq "0501"
     1          ::DOIF_time_once($hash,1,$wday) and $md eq "1001"
   days:
   do:
     0:
       0          setreading di_humidity_GZ desired 70
     1:
       0          setreading di_humidity_GZ desired 62
     2:
   helper:
     NOTIFYDEV  global
     event      timer_2
     globalinit 1
     last_timer 2
     sleeptimer -1
     triggerDev
     triggerEvents:
       timer_2
     triggerEventsState:
       timer_2
   interval:
   intervalfunc:
   localtime:
     0          1657144800
     1          1657144800
   realtime:
     0          00:00:00
     1          00:00:00
   time:
     0          00:00:00
     1          00:00:00
   timeCond:
     0          0
     1          1
   timer:
     0          0
     1          0
   timers:
     0           0
     1           1
   triggertime:
     1657144800:
       localtime  1657144800
       hash:
   uiState:
   uiTable:
Attributes:
   room       Keller

 


   
Save config
anyViews
0_System
1_UG
2_EG
3_1.OG
4_2.OG
Wecker.Aus 5_Klingel
6_Heizung
7_Muelltonne
8_Zuhause
 

     9_Batterie
FBDECT
Garten
HUEDevice
ge_wht_steckdose Keller
Plots
Unsorted
icoEverything Everything
Commandref
Remote doc
Edit files
Select style
Event monitor

Internals:
   DEF        ([22:00-08:00] or ([Multisensor4:humidity]<([$SELF:desired]-[$SELF:hysterese]/2) and [?Kellersteckdose:state] ne "off"))
(set Kellersteckdose off)
DOELSEIF ([Multisensor4:humidity]>([$SELF:desired]+[$SELF:hysterese]/2) and [?Kellersteckdose:state] ne "on")
(set Kellersteckdose on)
   FUUID      620fd583-f33f-cdd4-d638-f8aabcf0541fb691
   MODEL      FHEM
   NAME       di_humidity_GZ
   NOTIFYDEV  di_humidity_GZ,global,Multisensor4
   NR         398
   NTFY_ORDER 50-di_humidity_GZ
   STATE      on
   TYPE       DOIF
   VERSION    25819 2022-03-12 23:15:22
   READINGS:
     2022-07-06 16:46:47   Device          Multisensor4
     2022-07-06 12:08:48   cmd             2
     2022-07-06 12:08:48   cmd_event       Multisensor4
     2022-07-06 12:08:48   cmd_nr          2
     2022-02-20 20:27:12   desired         62
     2022-07-06 16:46:47   e_Multisensor4_humidity 65.5
     2022-02-20 20:27:12   e_di_humidity_GZ_desired 62
     2022-02-20 10:29:29   e_di_humidity_GZ_hysterese 5
     2022-02-20 10:29:29   hysterese       5
     2022-02-19 11:23:02   mode            enabled
     2022-07-06 12:08:48   state           on
     2022-07-06 08:00:00   timer_01_c01    06.07.2022 22:00:00
     2022-07-06 08:00:00   timer_02_c01    07.07.2022 08:00:00
   Regex:
     accu:
     collect:
     cond:
       Multisensor4:
         0:
           humidity   ^Multisensor4$:^humidity:
         1:
           humidity   ^Multisensor4$:^humidity:
       di_humidity_GZ:
         0:
           desired    ^di_humidity_GZ$:^desired:
           hysterese  ^di_humidity_GZ$:^hysterese:
         1:
           desired    ^di_humidity_GZ$:^desired:
           hysterese  ^di_humidity_GZ$:^hysterese:
   attr:
     cmdState:
       0:
         off
       1:
         on
     wait:
     waitdel:
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms) or (::ReadingValDoIf($hash,'Multisensor4','humidity')<(::ReadingValDoIf($hash,'di_humidity_GZ','desired')-::ReadingValDoIf($hash,'di_humidity_GZ','hysterese')/2) and ::ReadingValDoIf($hash,'Kellersteckdose','state') ne "off")
     1          ::ReadingValDoIf($hash,'Multisensor4','humidity')>(::ReadingValDoIf($hash,'di_humidity_GZ','desired')+::ReadingValDoIf($hash,'di_humidity_GZ','hysterese')/2) and ::ReadingValDoIf($hash,'Kellersteckdose','state') ne "on"
   days:
   do:
     0:
       0          set Kellersteckdose off
     1:
       0          set Kellersteckdose on
     2:
   helper:
     NOTIFYDEV  di_humidity_GZ,global,Multisensor4
     event      humidity: 65.5
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   Multisensor4
     timerevent humidity: 65.5
     triggerDev Multisensor4
     timerevents:
       humidity: 65.5
     timereventsState:
       humidity: 65.5
     triggerEvents:
       humidity: 65.5
     triggerEventsState:
       humidity: 65.5
   internals:
   interval:
     0          -1
     1          0
   intervalfunc:
   intervaltimer:
   localtime:
     0          1657137600
     1          1657173600
   perlblock:
   readings:
     all         Multisensor4:humidity di_humidity_GZ:desired di_humidity_GZ:hysterese
   realtime:
     0          22:00:00
     1          08:00:00
   time:
     0          22:00:00
     1          08:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   trigger:
   triggertime:
     1657137600:
       localtime  1657137600
       hash:
     1657173600:
       localtime  1657173600
       hash:
   uiState:
   uiTable:
Attributes:
   cmdState   off|on
   readingList desired,hysterese
   room       Keller
   setList    desired:56,58,60,62,64,66,68,70 hysterese:2,5,10
   webCmd     desired:hysterese

   


In den readings steht desired 62. Da müsste ja desired 70 stehen aus den zweiten Doif
Titel: Antw:Kellersteckdose und Feuchtigkeitssensor
Beitrag von: Damian am 06 Juli 2022, 18:14:00
Was erwartest du?

Geschaltet wird ja nur am 1.05 und am 1.10, daher wird es noch ein paar Monate dauern, bis das Modul am 1. Oktober auf 62 bzw. am 1. Mai auf 70 schaltet.

Das Setzen der Soll-Feuchtigkeit kannst du ja mit set Kellersteckdose_Monat_Steuerung cmd1 bzw. cmd2 testen.
Titel: Antw:Kellersteckdose und Feuchtigkeitssensor
Beitrag von: Sebastian84 am 06 Juli 2022, 18:31:19
Wie kann ich denn von 1.5 bis 1.10 auf 70 stellen

       DOIF  ( $Monat <=6 || $Monat >= 9 ) (setreading di_humidity_GZ desired 70) DOELSEIF( $Monat <=5 || $Monat >= 10 )    (setreading di_humidity_GZ desired 60)


Würde das gehen?
Titel: Antw:Kellersteckdose und Feuchtigkeitssensor
Beitrag von: Damian am 06 Juli 2022, 19:14:27
Zitat von: Sebastian84 am 06 Juli 2022, 18:31:19
Wie kann ich denn von 1.5 bis 1.10 auf 70 stellen

       DOIF  ( $Monat <=6 || $Monat >= 9 ) (setreading di_humidity_GZ desired 70) DOELSEIF( $Monat <=5 || $Monat >= 10 )    (setreading di_humidity_GZ desired 60)


Würde das gehen?

Nein, weil du keinen Trigger in der Bedingung hast.

Mit set ... cmd_1 kannst du umstellen.
Titel: Antw:Kellersteckdose und Feuchtigkeitssensor
Beitrag von: Invers am 06 Juli 2022, 19:14:38
ich habe mal ein Test-Doif erstellt für $md.
Da wird doch aber immer nur cmd_2 abgearbeitet. Eichtlich müsste doch cmd_3 abgearbeitet werden. Habe ich da was falsch verstanden?
Monat / Tag 0706 muss doch gleich sein, wenn heute der 06.07. ist.

sorry für das Dazwischendrängen.
defmod DI_Test_md DOIF ($md gt "0706") \
(say grösser)\
DOELSEIF\
($md lt "0706")\
(say kleiner)\
DOELSEIF\
($md eq "0706")\
(say gleich)
attr DI_Test_md do always
attr DI_Test_md room Test
Titel: Antw:Kellersteckdose und Feuchtigkeitssensor
Beitrag von: Sebastian84 am 06 Juli 2022, 19:24:51
 Ich hab über set cmd1 und cmd2 die Werte schalten können
Mit denn Monaten.
Wie muss ich den den Tigger einbauen?
Titel: Antw:Kellersteckdose und Feuchtigkeitssensor
Beitrag von: Stelaku am 06 Juli 2022, 20:04:53
Zitat von: Invers am 06 Juli 2022, 19:14:38
ich habe mal ein Test-Doif erstellt für $md.
Da wird doch aber immer nur cmd_2 abgearbeitet. Eichtlich müsste doch cmd_3 abgearbeitet werden. Habe ich da was falsch verstanden?
Monat / Tag 0706 muss doch gleich sein, wenn heute der 06.07. ist.

sorry für das Dazwischendrängen.
defmod DI_Test_md DOIF ($md gt "0706") \
(say grösser)\
DOELSEIF\
($md lt "0706")\
(say kleiner)\
DOELSEIF\
($md eq "0706")\
(say gleich)
attr DI_Test_md do always
attr DI_Test_md room Test


ich glaube das Problem liegt im Rückgabewert von $md der ist für heute nicht 0706 sondern 07-06
Dein test DOIF wird bei der Abfrage auf 07-06 auf cmd3 springen wenn Du check all machst.

Gruss

Stephan
Titel: Antw:Kellersteckdose und Feuchtigkeitssensor
Beitrag von: Invers am 06 Juli 2022, 20:15:05
dann kann doch aber das DOIF oben auch nicht funktionieren:
DOIF ([00:00] and $md eq "0501") (setreading di_humidity_GZ desired 70) DOELSEIF ([00:00] and $md eq "1001") (setreading di_humidity_GZ desired 60)
checkAll hatte ich gemacht. Sporingt auf cmd_2. Das ist ja das Problem.

EDIT mit dem - geht es dann

defmod DI_Test_md DOIF ($md gt "07-08") \
(say grösser)\
DOELSEIF\
($md lt "07-08")\
(say kleiner)\
DOELSEIF\
($md eq "07-08")\
(say gleich)
attr DI_Test_md do always
attr DI_Test_md room Test->Testbereich
Titel: Antw:Kellersteckdose und Feuchtigkeitssensor
Beitrag von: Damian am 06 Juli 2022, 20:23:13
Zitat von: Stelaku am 06 Juli 2022, 20:04:53
ich glaube das Problem liegt im Rückgabewert von $md der ist für heute nicht 0706 sondern 07-06
Dein test DOIF wird bei der Abfrage auf 07-06 auf cmd3 springen wenn Du check all machst.

Gruss

Stephan

Du hast Recht. Der Bindestrich fehlt.

Oder eben:

   DOIF ([00:00] and ($month >= 5 and $month <= 9)) (setreading di_humidity_GZ desired 70) DOELSE  (setreading di_humidity_GZ desired 60)

Damit Sebastian schon morgen sein Erfolgserlebnis hat :)
Titel: Antw:Kellersteckdose und Feuchtigkeitssensor
Beitrag von: alanblack am 06 Juli 2022, 21:43:08
Zitat von: Sebastian84 am 05 Juli 2022, 08:54:26
Klappt auch gut. Jetzt wollte ich im Sommer wo die Temperaturen höher sind das von Mai bis Oktober der Entfeuchter bei einer höheren Feuchte sich anschaltet (zb. 70%).
[etwasOfftopic]... würde ich gerne Deine Problemstellung an sich hinterfragen:
Ich weiß natürlich nicht, wie die die Räumlichkeiten hinsichtlich Belüftung, Isolierung etc. bei Dir beschaffen sind, aber Dir sollte klar sein, dass bei relativer Luftfeuchte von 70% an kälteren Oberflächen wie bspw. Außenwänden an einem kühlen Maitag oder von Wasserleitungen Du sehr schnell über 80% Luftfeuchte und damit im Schimmelbereich landest.
Da im Sommer die Luftfeuchte nicht wie im Winter "weggeheizt" wird, läuft der Entfeuchter bei mir naturgemäß öfter im Sommer als im Winter; Sch.. drauf! Gesundheit ist mir wichtiger. Im Gegenteil kappe ich nicht nur die relative Luftfeuchte bei 60%, begrenze die absolute Luftfeuchte auf 12g/m3, achte auf einen Mindestabstand von Raumtemperatur und Taupunkt von mindestens 6 Kelvin und lasse mich schlimmstenfalls wecken, wenn das nicht mehr gewährleistet werden kann.

Grüße

Edit: vergessen, ich überwache auch den Stromverbrauch vom Entfeuchter wegen möglicher Defekte oder einfach als erstes, ob der Wasserbehälter voll ist.