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
Du kannst z. B. mit einem zweiten DOIF die Vorgabe-Feuchte (desired-Reading) für die jeweilige Jahreszeit entsprechend verändern.
Oder über separate Zweige und die Monate mit abfragen.
Mit md$ müsste das machbar sein.
Mit ein zweiten Doif wird es gestimmt überschaubar werden.
Leider weiß ich nicht wie das geht.
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?
( $month <=6 || $month >= 9 ).
Aber wie ich das schreiben muss.
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 :)
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
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)
Danke hab ich jetzt in Fhem eingetragen
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
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.
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?
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.
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 hab über set cmd1 und cmd2 die Werte schalten können
Mit denn Monaten.
Wie muss ich den den Tigger einbauen?
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
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
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 :)
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/m
3, 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.