Ich möchte bei Abwesendheit die Heizungs Sollwerte in Variablen schreiben lassen und danach die Heizung runter stellen.
Wenn ich zurück bin sollen alle auf die gespeicherten Werte zurück gehen.
Aber weder das Schreiben in die Variablen geht, noch das stellen der Heizung.
Selbst wenn ich CMD_1 oder _2 von Hand starte.
Internals:
DEF ([16:00-21:30] and ([Bewohner] ne "home")) (set WZ_Temp [WZ.Heizung:desired-temp], set WZ.Heizung desired-temp 17.0, set WC_Temp [WC.Heizung:desired-temp], set WC.Heizung desired-temp 17.0, set Bad_Temp [Bad.Heizung:desired-temp], set Bad.Heizung desired-temp 17.0, set AZ_Temp [AZ.Heizung:desired-temp], set AZ.Heizung desired-temp 17.0, set SZ_Temp [SZ.Heizung:desired-temp], set SZ.Heizung desired-temp 17.0, set K_Temp [K.Heizung:desired-temp], set K.Heizung desired-temp 17.0) DOELSEif ([16:00-21:30] and ([Bewohner] eq "home")) (set WZ.Heizung desired-temp [WZ_Temp], set WC.Heizung desired-temp [WC_Temp], set Bad.Heizung desired-temp [Bad_Temp], set AZ.Heizung desired-temp [AZ_Temp], set SZ.Heizung desired-temp [SZ_Temp], set K.Heizung desired-temp [K_Temp])
FUUID 5e746858-f33f-23c8-bf7c-3ec8680a4e2c3d62
FVERSION 98_DOIF.pm:0.285460/2024-02-23
MODEL FHEM
NAME Heizung_Bewohner
NOTIFYDEV Bewohner,global
NR 443
NTFY_ORDER 50-Heizung_Bewohner
STATE disabled
TYPE DOIF
VERSION 28546 2024-02-23 20:11:05
eventCount 2
READINGS:
2024-11-03 19:45:17 Device Bewohner
2024-11-03 19:45:17 cmd 2
2024-11-03 19:45:17 cmd_event Bewohner
2024-11-03 19:45:17 cmd_nr 2
2024-11-03 19:45:17 e_Bewohner_STATE home
2024-11-03 19:45:27 last_cmd cmd_2
2024-11-03 19:45:27 mode disabled
2024-11-03 19:45:27 state disabled
2024-11-04 03:00:40 timer_01_c01 04.11.2024 16:00:00
2024-11-04 03:00:40 timer_02_c01 04.11.2024 21:30:00
Regex:
cond:
Bewohner:
0:
&STATE ^Bewohner$
condition:
0 ::DOIF_time($hash,0,1,$wday,$hms) and (::InternalDoIf($hash,'Bewohner','STATE') ne "home")
days:
do:
0:
0 set WZ_Temp [WZ.Heizung:desired-temp], set WZ.Heizung desired-temp 17.0, set WC_Temp [WC.Heizung:desired-temp], set WC.Heizung desired-temp 17.0, set Bad_Temp [Bad.Heizung:desired-temp], set Bad.Heizung desired-temp 17.0, set AZ_Temp [AZ.Heizung:desired-temp], set AZ.Heizung desired-temp 17.0, set SZ_Temp [SZ.Heizung:desired-temp], set SZ.Heizung desired-temp 17.0, set K_Temp [K.Heizung:desired-temp], set K.Heizung desired-temp 17.0
1:
0
helper:
NOTIFYDEV Bewohner,global
globalinit 1
last_timer 2
sleeptimer -1
internals:
all Bewohner:STATE
interval:
0 -1
1 0
intervalfunc:
intervaltimer:
localtime:
0 1730732400
1 1730752200
perlblock:
realtime:
0 16:00:00
1 21:30:00
time:
0 16:00:00
1 21:30:00
timeCond:
0 0
1 0
timer:
0 0
1 0
timers:
0 0 1
triggertime:
1730752200:
localtime 1730752200
hash:
uiState:
uiTable:
Attributes:
devStateIcon cmd_1:ios-set_on cmd_2:ios-set_off-green disabled:ios-off initialize:ios_off_fill initialized:ios_off_fill
do always
event-on-change-reading Bewohner
group HeizungsSteuerung
room Heizung
Und ja, die Variablen sind angelegt, beim Test OHNE was zu stellen wurden auch schön die Werte rein geschrieben.
Wie wäre es mal mit einem Heizkörper anzufangen?
Du hast da DOELSEif stehen. Das muss DOELSEIF heißen.
Ansonsten: Am besten in der Definition auch Absätze und ggfs. Einrückungen benutzen ... Macht es um einiges übersichtlicher
Zitatmein DOIF macht nichts
Doch, dein DOIF macht genau das, was du ihm gesagt hast: nix ;)
Ich lese 3x disabled in Deinem list. Du hast das DOIF schlicht disabled, dann macht es auch nix.
Beim "set Heizung_Bewohner " aus dem Auswahlfeld enable auswählen und Set klicken, dann macht es zumindest etwas. Wie passible schreibt ist da ein Fehler drin, und wie rabehd anmerkt ist die Fehlersuche einfacher, wenn man in kleinem Schritten startet und erweitert.
Viel Erfolg!
Sany
it's better to use absätze and ggfs. in the definition as well. Macht is rather too optimistic.