Guten Tag
Ich hab eine Steckdose die nach 5 Stunden Interval sich ausschaltet. Ich habe ein Doif das um 22 Uhr die Steckdose bis zum nächsten Tag 8 Uhr ausschaltet und um 8 Uhr wieder an.
Jetzt hab ich das Problem das wenn die 5 Stunden Interval vor 22 Uhr die Steckdose ausschaltet, das das Doif den Schaltzustand nicht um 22 Uhr auf cmd_2 schaltet sondern auf cmd_1 lässt. Dadurch wird am nächsten Morgen die Steckdose nicht um 8 Uhr eingeschaltet, weil es denkt es ist auf cmd_1. Kann man in doif über Atribute das duif um 22 Uhr a
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:
uf cdm_2 schalten.
Du musst ein list von dem DOIF-Device posten.
Zitatnals:
DEF ([22:00-08:00] or ([Multisensor4 (http://192.168.0.115:8083/fhem?detail=Multisensor4):humidity]<([$SELF:desired]-[$SELF:hysterese]/2) and [?Kellersteckdose (http://192.168.0.115:8083/fhem?detail=Kellersteckdose):state] ne "off"))
(set Kellersteckdose (http://192.168.0.115:8083/fhem?detail=Kellersteckdose) off)
DOELSEIF ([Multisensor4 (http://192.168.0.115:8083/fhem?detail=Multisensor4):humidity]>([$SELF:desired]+[$SELF:hysterese]/2) and [?Kellersteckdose (http://192.168.0.115:8083/fhem?detail=Kellersteckdose):state] ne "on")
(set Kellersteckdose (http://192.168.0.115:8083/fhem?detail=Kellersteckdose) on)
FUUID 620fd583-f33f-cdd4-d638-f8aabcf0541fb691
MODEL FHEM
NAME di_humidity_GZ (http://192.168.0.115:8083/fhem?detail=di_humidity_GZ)
NOTIFYDEV di_humidity_GZ (http://192.168.0.115:8083/fhem?detail=di_humidity_GZ),Multisensor4 (http://192.168.0.115:8083/fhem?detail=Multisensor4),global (http://192.168.0.115:8083/fhem?detail=global)
NR 386
NTFY_ORDER 50-di_humidity_GZ (http://192.168.0.115:8083/fhem?detail=di_humidity_GZ)
STATE on
TYPE DOIF
VERSION 26444 2022-09-25 16:29:19
eventCount 1
READINGS:
2023-05-15 15:49:24 Device Multisensor4 (http://192.168.0.115:8083/fhem?detail=Multisensor4)
2023-05-15 08:12:18 cmd 2
2023-05-15 08:12:18 cmd_event di_humidity_GZ (http://192.168.0.115:8083/fhem?detail=di_humidity_GZ)
2023-05-15 08:12:18 cmd_nr 2
2023-05-15 08:12:18 desired 62
2023-05-15 15:49:24 e_Multisensor4_humidity 67.01
2023-05-15 08:12:18 e_di_humidity_GZ_desired 62
2022-10-12 16:12:12 e_di_humidity_GZ_hysterese 2
2022-10-12 16:12:12 hysterese 2
2022-02-19 11:23:02 mode enabled
2023-05-15 08:12:18 state on
2023-05-15 08:00:00 timer_01_c01 15.05.2023 22:00:00
2023-05-15 08:00:00 timer_02_c01 16.05.2023 08:00:00
Regex:
accu:
collect:
cond:
Multisensor4 (http://192.168.0.115:8083/fhem?detail=Multisensor4):
0:
humidity ^Multisensor4 (http://192.168.0.115:8083/fhem?detail=Multisensor4)$:^humidity:
1:
humidity ^Multisensor4 (http://192.168.0.115:8083/fhem?detail=Multisensor4)$:^humidity:
di_humidity_GZ (http://192.168.0.115:8083/fhem?detail=di_humidity_GZ):
0:
desired ^di_humidity_GZ (http://192.168.0.115:8083/fhem?detail=di_humidity_GZ)$:^desired:
hysterese ^di_humidity_GZ (http://192.168.0.115:8083/fhem?detail=di_humidity_GZ)$:^hysterese:
1:
desired ^di_humidity_GZ (http://192.168.0.115:8083/fhem?detail=di_humidity_GZ)$:^desired:
hysterese ^di_humidity_GZ (http://192.168.0.115:8083/fhem?detail=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 (http://192.168.0.115:8083/fhem?detail=Multisensor4)','humidity')<(::ReadingValDoIf($hash,'di_humidity_GZ (http://192.168.0.115:8083/fhem?detail=di_humidity_GZ)','desired')-::ReadingValDoIf($hash,'di_humidity_GZ (http://192.168.0.115:8083/fhem?detail=di_humidity_GZ)','hysterese')/2) and ::ReadingValDoIf($hash,'Kellersteckdose (http://192.168.0.115:8083/fhem?detail=Kellersteckdose)','state') ne "off")
1 ::ReadingValDoIf($hash,'Multisensor4 (http://192.168.0.115:8083/fhem?detail=Multisensor4)','humidity')>(::ReadingValDoIf($hash,'di_humidity_GZ (http://192.168.0.115:8083/fhem?detail=di_humidity_GZ)','desired')+::ReadingValDoIf($hash,'di_humidity_GZ (http://192.168.0.115:8083/fhem?detail=di_humidity_GZ)','hysterese')/2) and ::ReadingValDoIf($hash,'Kellersteckdose (http://192.168.0.115:8083/fhem?detail=Kellersteckdose)','state') ne "on"
days:
do:
0:
0 set Kellersteckdose (http://192.168.0.115:8083/fhem?detail=Kellersteckdose) off
1:
0 set Kellersteckdose (http://192.168.0.115:8083/fhem?detail=Kellersteckdose) on
2:
helper:
NOTIFYDEV di_humidity_GZ (http://192.168.0.115:8083/fhem?detail=di_humidity_GZ),Multisensor4 (http://192.168.0.115:8083/fhem?detail=Multisensor4),global (http://192.168.0.115:8083/fhem?detail=global)
event humidity: 67.01
globalinit 1
last_timer 2
sleeptimer -1
timerdev Multisensor4 (http://192.168.0.115:8083/fhem?detail=Multisensor4)
timerevent humidity: 67.01
triggerDev Multisensor4 (http://192.168.0.115:8083/fhem?detail=Multisensor4)
timerevents:
humidity: 67.01
timereventsState:
humidity: 67.01
triggerEvents:
humidity: 67.01
triggerEventsState:
humidity: 67.01
internals:
interval:
0 -1
1 0
intervalfunc:
localtime:
0 1684180800
1 1684216800
perlblock:
readings:
all Multisensor4 (http://192.168.0.115:8083/fhem?detail=Multisensor4):humidity di_humidity_GZ (http://192.168.0.115:8083/fhem?detail=di_humidity_GZ):desired di_humidity_GZ (http://192.168.0.115:8083/fhem?detail=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:
1684180800:
localtime 1684180800
hash:
1684216800:
localtime 1684216800
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 Fall ist es jetzt so das die Steckdose aus ist. Da der Interval von 5 Stunden beendet ist. Und das Dofi heute nicht mehr an geht und morgen früh um 8 Uhr auch nicht einschaltet, weil es ja noch auf An steht.
Da steht doch nirgendwo das um 08:00 die Kellersteckdose auf on gehen soll.
Das on wird nur durch Änderung Deines Sensors ausgelöst (wenn Bedingung wahr).
Ja nur wenn der Feuchtigkeitssensor sagt es wähhre zu feucht.
ZitatIch habe ein Doif das um 22 Uhr die Steckdose bis zum nächsten Tag 8 Uhr ausschaltet und um 8 Uhr wieder an.
Hast Du nicht.
ZitatIch hab eine Steckdose die nach 5 Stunden Interval sich ausschaltet.
Zwei unabhängige Automatismen sind immer problematisch.
Da Du den Zustand der Steckdose aber abfragen kannst, ist sie ja in FHEM.
Warum reagierst Du nicht auf das Event Steckdose off?
Zitatdas das Doif den Schaltzustand nicht um 22 Uhr auf cmd_2 schaltet sondern auf cmd_1 lässt
Ich lese cmd_1 wird 22 Uhr ausgeführt. cmd_2 nur wenn der Sensor sich mit erfüllter Bedingung meldet.
Der Code sieht verdammt nach meinem Entwurf für eine Feuchtigkeitsabhängige Trocknung aus. Der ist aber dafür, dass der Trockner wirklich dann schaltet wenn das DOIF schaltet. Wieso und wo gibt es ein 5 Stunden Intervall?
Hinweise: dieses DOIF funktioniert nicht wenn jemand manuell eingreift, also die Steckdose per Hand an oder aus schaltet. Diesen Fall abzufangen habe ich mich noch nicht bemüht. :)
Ich denke, du willst tagsüber entfeuchten. Dann würde ich die Logik wie bei beim Heizen entkoppeln.
Ein DOIF für die zeitliche Vorgabe der Steuerung und eins zum Regeln der Feuchte:
DOIF ([08:00-22:00]) (setreading di_humidity_GZ desired 62) DOELSE (setreading di_humidity_GZ desired 80)
und dann nur noch
DOIF ([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)
Das erste DOIF könnte man als DOIFreading machen.
Danke für die schnelle Hilfe
Ich hab das jetzt getrennt voneinander gemacht. Den Interval von der Steckdose habe ich ausgestellt. Jetzt klappt das super.