Kellersteckdose und Feuchtigkeitssensor

Begonnen von Sebastian84, 05 Juli 2022, 08:54:26

Vorheriges Thema - Nächstes Thema

Sebastian84

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   




Damian

Du kannst z. B. mit einem zweiten DOIF die Vorgabe-Feuchte (desired-Reading) für die jeweilige Jahreszeit entsprechend verändern.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Frank_Huber

Oder über separate Zweige und die Monate mit abfragen.
Mit md$ müsste das machbar sein.

Sebastian84

Mit ein zweiten Doif wird es gestimmt überschaubar werden.
Leider weiß ich nicht wie das geht.

Damian

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?
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Sebastian84

( $month <=6 || $month >= 9 ).
Aber wie ich das schreiben muss.

Damian

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 :)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Sebastian84

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

Damian

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)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Sebastian84

Danke hab ich jetzt in Fhem eingetragen

Sebastian84

#10
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

Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Sebastian84

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?

Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Invers

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
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2