Hallo zusammen,
ich möchte bei einer Temperatur darauf reagieren wenn ein größerer Einbruch erfolgt.
Der Sensor den ich beobachten will ist: KHZ_SchalterSonoff_HZSchalter.DHW_Temp
list KHZ_SchalterSonoff_HZSchalter
Internals:
DEF ([$SELF:mybutton] eq "Off")
(set KHZ_SchalterSonoff_DHWSchalter off) ## Manual_OFF
DOELSEIF ([$SELF:mybutton] eq "On")
(set KHZ_SchalterSonoff_DHWSchalter on) ## Manual_ON
DOELSEIF ([$SELF:mybutton] eq "Auto" and [Bewohner:residentsHome] == 0)
(set KHZ_SchalterSonoff_DHWSchalter off) ## AWAY nobody home
DOELSEIF ([$SELF:mybutton] eq "Auto" and [Bewohner:residentsHome] > 0 and
[03:00 - 17:00] and [KHZ_SchalterSonoff_HZSchalter:DHW_Temp] < 36 ) ## EMERGENCY Auto, somebody home and tank to cold
(set KHZ_SchalterSonoff_DHWSchalter on)
DOELSEIF ([$SELF:mybutton] eq "Auto" and [Bewohner:residentsHome] > 0 and
([03:00 - |AT] or [10:00 - 11:30|AT] or [18:00 - 22:00|AT]) and [KHZ_SchalterSonoff_HZSchalter:DHW_Temp] < 42 )
(set KHZ_SchalterSonoff_DHWSchalter on) ## AUTO_ON_AT
DOELSEIF ([$SELF:mybutton] eq "Auto" and [Bewohner:residentsHome] > 0 and
([06:00 - 07:30|WE] or [11:00 - 13:00|WE] or [18:00 - 22:00|WE]) and [KHZ_SchalterSonoff_HZSchalter:DHW_Temp] < 42 )
## AUTO_ON_WE
(set KHZ_SchalterSonoff_DHWSchalter on)
DOELSEIF ([$SELF:mybutton] eq "Auto" and [Bewohner:residentsHome] > 0 and [deltaDHW] < -3)
(set KHZ_SchalterSonoff_DHWSchalter on)
DOELSEIF ([$SELF:mybutton] eq "Auto" and [KHZ_SchalterSonoff_DHWSchalter] eq "ON" and
[KHZ_SchalterSonoff_DHWSchalter:state:sec] > 3600 )
(set KHZ_SchalterSonoff_DHWSchalter off )
DOIFDEV ^global$|^deltaDHW$|^Bewohner$|^KHZ_SchalterSonoff_DHWSchalter$|^DoKHzDhwTime$|^KHZ_SchalterSonoff_HZSchalter$
FUUID 5cfcd637-f33f-9f5a-2e2e-33ba4b77f4e0c9ab
MODEL FHEM
NAME DoKHzDhwTime
NR 1074
NTFY_ORDER 50-DoKHzDhwTime
STATE initialized
TYPE DOIF
VERSION 20744 2019-12-14 10:26:26
.attraggr:
.attrminint:
DOIF_Readings:
deltaDHW ::ReadingValDoIf($hash,'KHZ_SchalterSonoff_HZSchalter','DHW_Temp','','diff2')
Helper:
DBLOG:
state:
logdb:
TIME 1578846889.13401
VALUE initialized
READINGS:
2020-01-12 17:35:35 Device KHZ_SchalterSonoff_HZSchalter
2020-01-12 15:38:15 KHZ_SchalterSonoff_HZSchalter error in DOIF_Readings: Bareword "DHW_Temp" not allowed while "strict subs" in use, line 1.
2020-01-12 17:34:48 cmd 0
2020-01-12 17:21:30 deltaDHW 0
2020-01-12 17:35:35 e_KHZ_SchalterSonoff_HZSchalter_DHW_Temp 53.8
2020-01-12 17:34:48 mode enabled
2019-10-11 09:32:42 mybutton Auto
2020-01-12 17:34:48 state initialized
2020-01-12 17:34:49 timer_01_c04 13.01.2020 03:00:00
2020-01-12 17:34:49 timer_02_c04 13.01.2020 17:00:00
2020-01-12 17:34:49 timer_03_c05 13.01.2020 03:00:00|AT
2020-01-12 17:34:49 timer_04_c05 13.01.2020 10:00:00|AT
2020-01-12 17:34:49 timer_05_c05 13.01.2020 11:30:00|AT
2020-01-12 17:34:49 timer_06_c05 12.01.2020 18:00:00|AT
2020-01-12 17:34:49 timer_07_c05 12.01.2020 22:00:00|AT
2020-01-12 17:34:49 timer_08_c06 13.01.2020 06:00:00|WE
2020-01-12 17:34:49 timer_09_c06 13.01.2020 07:30:00|WE
2020-01-12 17:34:49 timer_10_c06 13.01.2020 11:00:00|WE
2020-01-12 17:34:49 timer_11_c06 13.01.2020 13:00:00|WE
2020-01-12 17:34:49 timer_12_c06 12.01.2020 18:00:00|WE
2020-01-12 17:34:49 timer_13_c06 12.01.2020 22:00:00|WE
Regex:
DOIF_Readings:
KHZ_SchalterSonoff_HZSchalter:
deltaDHW:
DHW_Temp ^KHZ_SchalterSonoff_HZSchalter$:^DHW_Temp:
accu:
KHZ_SchalterSonoff_HZSchalter:
accu:
DHW_Temp ^KHZ_SchalterSonoff_HZSchalter$:^DHW_Temp:
cond:
Bewohner:
2:
residentsHome ^Bewohner$:^residentsHome:
3:
residentsHome ^Bewohner$:^residentsHome:
4:
residentsHome ^Bewohner$:^residentsHome:
5:
residentsHome ^Bewohner$:^residentsHome:
6:
residentsHome ^Bewohner$:^residentsHome:
DoKHzDhwTime:
0:
mybutton ^DoKHzDhwTime$:^mybutton:
1:
mybutton ^DoKHzDhwTime$:^mybutton:
2:
mybutton ^DoKHzDhwTime$:^mybutton:
3:
mybutton ^DoKHzDhwTime$:^mybutton:
4:
mybutton ^DoKHzDhwTime$:^mybutton:
5:
mybutton ^DoKHzDhwTime$:^mybutton:
6:
mybutton ^DoKHzDhwTime$:^mybutton:
7:
mybutton ^DoKHzDhwTime$:^mybutton:
KHZ_SchalterSonoff_DHWSchalter:
7:
&STATE ^KHZ_SchalterSonoff_DHWSchalter$
state ^KHZ_SchalterSonoff_DHWSchalter$:^state:
KHZ_SchalterSonoff_HZSchalter:
0:
1:
2:
3:
DHW_Temp ^KHZ_SchalterSonoff_HZSchalter$:^DHW_Temp:
4:
DHW_Temp ^KHZ_SchalterSonoff_HZSchalter$:^DHW_Temp:
5:
DHW_Temp ^KHZ_SchalterSonoff_HZSchalter$:^DHW_Temp:
6:
7:
deltaDHW:
6:
&STATE ^deltaDHW$
accu:
KHZ_SchalterSonoff_HZSchalter DHW_Temp:
dim 2
value:
53.8
53.8
attr:
cmdState:
0:
OFF
1:
ON
2:
AWAY
3:
EMERGENCY
4:
AUTO_ON_AT
5:
AUTO_ON_WE
6:
AUTO_SHOWER
7:
STOP
wait:
waitdel:
condition:
0 ::ReadingValDoIf($hash,'DoKHzDhwTime','mybutton') eq "Off"
1 ::ReadingValDoIf($hash,'DoKHzDhwTime','mybutton') eq "On"
2 ::ReadingValDoIf($hash,'DoKHzDhwTime','mybutton') eq "Auto" and ::ReadingValDoIf($hash,'Bewohner','residentsHome') == 0
3 ::ReadingValDoIf($hash,'DoKHzDhwTime','mybutton') eq "Auto" and ::ReadingValDoIf($hash,'Bewohner','residentsHome') > 0 and ::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'KHZ_SchalterSonoff_HZSchalter','DHW_Temp') < 36
4 ::ReadingValDoIf($hash,'DoKHzDhwTime','mybutton') eq "Auto" and ::ReadingValDoIf($hash,'Bewohner','residentsHome') > 0 and (::DOIF_time_once($hash,2,$wday,"AT") or ::DOIF_time($hash,3,4,$wday,$hms,"AT") or ::DOIF_time($hash,5,6,$wday,$hms,"AT")) and ::ReadingValDoIf($hash,'KHZ_SchalterSonoff_HZSchalter','DHW_Temp') < 42
5 ::ReadingValDoIf($hash,'DoKHzDhwTime','mybutton') eq "Auto" and ::ReadingValDoIf($hash,'Bewohner','residentsHome') > 0 and (::DOIF_time($hash,7,8,$wday,$hms,"WE") or ::DOIF_time($hash,9,10,$wday,$hms,"WE") or ::DOIF_time($hash,11,12,$wday,$hms,"WE")) and ::ReadingValDoIf($hash,'KHZ_SchalterSonoff_HZSchalter','DHW_Temp') < 42
6 ::ReadingValDoIf($hash,'DoKHzDhwTime','mybutton') eq "Auto" and ::ReadingValDoIf($hash,'Bewohner','residentsHome') > 0 and ::InternalDoIf($hash,'deltaDHW','STATE') < -3
7 ::ReadingValDoIf($hash,'DoKHzDhwTime','mybutton') eq "Auto" and ::InternalDoIf($hash,'KHZ_SchalterSonoff_DHWSchalter','STATE') eq "ON" and ::ReadingSecDoIf('KHZ_SchalterSonoff_DHWSchalter','state') > 3600
days:
10 WE
11 WE
12 WE
2 AT
3 AT
4 AT
5 AT
6 AT
7 WE
8 WE
9 WE
do:
0:
0 set KHZ_SchalterSonoff_DHWSchalter off
1:
0 set KHZ_SchalterSonoff_DHWSchalter on
2:
0 set KHZ_SchalterSonoff_DHWSchalter off
3:
0 set KHZ_SchalterSonoff_DHWSchalter on
4:
0 set KHZ_SchalterSonoff_DHWSchalter on
5:
0 set KHZ_SchalterSonoff_DHWSchalter on
6:
0 set KHZ_SchalterSonoff_DHWSchalter on
7:
0 set KHZ_SchalterSonoff_DHWSchalter off
8:
helper:
DEVFILTER ^global$|^deltaDHW$|^Bewohner$|^KHZ_SchalterSonoff_DHWSchalter$|^DoKHzDhwTime$|^KHZ_SchalterSonoff_HZSchalter$
NOTIFYDEV global|deltaDHW|Bewohner|KHZ_SchalterSonoff_DHWSchalter|DoKHzDhwTime|KHZ_SchalterSonoff_HZSchalter
event ON,Kessel_Temp: 57.9,HK1_R_Temp: 38.2,DHW_Temp: 53.8,HK1_V_Temp: 50.9
globalinit 1
last_timer 13
sleeptimer -1
triggerDev KHZ_SchalterSonoff_HZSchalter
triggerEvents:
ON
Kessel_Temp: 57.9
HK1_R_Temp: 38.2
DHW_Temp: 53.8
HK1_V_Temp: 50.9
triggerEventsState:
state: ON
Kessel_Temp: 57.9
HK1_R_Temp: 38.2
DHW_Temp: 53.8
HK1_V_Temp: 50.9
internals:
all deltaDHW:STATE KHZ_SchalterSonoff_DHWSchalter:STATE
interval:
0 -1
1 0
10 9
11 -1
12 11
3 -1
4 3
5 -1
6 5
7 -1
8 7
9 -1
intervalfunc:
localtime:
0 1578880800
1 1578931200
10 1578916800
11 1578848400
12 1578862800
2 1578880800
3 1578906000
4 1578911400
5 1578848400
6 1578862800
7 1578891600
8 1578897000
9 1578909600
readings:
all DoKHzDhwTime:mybutton Bewohner:residentsHome KHZ_SchalterSonoff_HZSchalter:DHW_Temp KHZ_SchalterSonoff_DHWSchalter:state
realtime:
0 03:00:00
1 17:00:00
10 13:00:00
11 18:00:00
12 22:00:00
2 03:00:00
3 10:00:00
4 11:30:00
5 18:00:00
6 22:00:00
7 06:00:00
8 07:30:00
9 11:00:00
time:
0 03:00:00
1 17:00:00
10 13:00:00
11 18:00:00
12 22:00:00
2 03:00:00
3 10:00:00
4 11:30:00
5 18:00:00
6 22:00:00
7 06:00:00
8 07:30:00
9 11:00:00
timeCond:
0 3
1 3
10 5
11 5
12 5
2 4
3 4
4 4
5 4
6 4
7 5
8 5
9 5
timer:
0 0
1 0
10 0
11 0
12 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
timers:
3 0 1
4 2 3 4 5 6
5 7 8 9 10 11 12
trigger:
triggertime:
1578848400:
localtime 1578848400
hash:
1578862800:
localtime 1578862800
hash:
1578880800:
localtime 1578880800
hash:
1578891600:
localtime 1578891600
hash:
1578897000:
localtime 1578897000
hash:
1578906000:
localtime 1578906000
hash:
1578909600:
localtime 1578909600
hash:
1578911400:
localtime 1578911400
hash:
1578916800:
localtime 1578916800
hash:
1578931200:
localtime 1578931200
hash:
uiState:
uiTable:
Attributes:
DOIF_Readings deltaDHW:[KHZ_SchalterSonoff_HZSchalter:DHW_Temp:diff2]
alias DHW Betriebsart
cmdState OFF|ON|AWAY|EMERGENCY|AUTO_ON_AT|AUTO_ON_WE|AUTO_SHOWER|STOP
readingList mybutton
room Heizung
setList mybutton:Auto,On,Off
verbose 5
webCmd mybutton
Da ich die Temperaturdifferenz nicht beobachten kann, habe ich versucht daraus ain reading zu machen:
DOIF_Readings deltaDHW:[KHZ_SchalterSonoff_HZSchalter:DHW_Temp:diff2]
was zur Fehlermeldung : "error in DOIF_Readings: Bareword "DHW_Temp" not allowed while "strict subs" in use, line 1."
führt.
Kann mir Jemand einen Tip geben was ich falsch mache ?
Zitat von: peter_w am 12 Januar 2020, 17:37:25
Der Sensor den ich beobachten will ist: KHZ_SchalterSonoff_HZSchalter.DHW_Temp
Ist DHW_Temp ein Reading vom Device KHZ_SchalterSonoff_HZSchalter, oder heisst das Device wirklich KHZ_SchalterSonoff_HZSchalter.DHW_Temp ?
DHW_Temp ist ein Reading von KHZ_SchalterSonoff_HZSchalter
list KHZ_SchalterSonoff_HZSchalter :
Internals:
FUUID 5c45b740-f33f-9f5a-25e3-da65ae17bb4d0303
IODev MqttBroker
NAME KHZ_SchalterSonoff_HZSchalter
NR 1014
STATE ON
TYPE MQTT_DEVICE
.attraggr:
.attrminint:
.qos:
* 0
.retain:
* 0
.userReadings:
HASH(0x4949188)
HASH(0x4a1ae28)
HASH(0x4a1aeb8)
HASH(0x4a1af48)
Helper:
DBLOG:
DHW_Temp:
logdb:
TIME 1578851103.97338
VALUE 50.8
HK1_R_Temp:
logdb:
TIME 1578851103.97338
VALUE 39.5
HK1_V_Temp:
logdb:
TIME 1578851103.97338
VALUE 51.3
Kessel_Temp:
logdb:
TIME 1578851103.97338
VALUE 60.2
READINGS:
2020-01-12 18:45:03 DHW_Temp 50.8
2020-01-12 18:41:11 DS18B20-1_Id 0000074A5540
2020-01-12 18:41:11 DS18B20-1_Temperature 60.2
2020-01-12 18:41:11 DS18B20-2_Id 0000074A6010
2020-01-12 18:41:11 DS18B20-2_Temperature 39.5
2020-01-12 18:41:11 DS18B20-3_Id 0000074A791D
2020-01-12 18:41:11 DS18B20-3_Temperature 50.8
2020-01-12 18:41:11 DS18B20-4_Id 0000074AC1E1
2020-01-12 18:41:11 DS18B20-4_Temperature 51.3
2020-01-12 18:45:03 HK1_R_Temp 39.5
2020-01-12 18:45:03 HK1_V_Temp 51.3
2020-01-12 18:45:03 Kessel_Temp 60.2
2020-01-12 18:41:11 SENSOR {"Time":"2020-01-12T18:41:10","DS18B20-1":{"Id":"0000074A5540","Temperature":60.2},"DS18B20-2":{"Id":"0000074A6010","Temperature":39.5},"DS18B20-3":{"Id":"0000074A791D","Temperature":50.8},"DS18B20-4":{"Id":"0000074AC1E1","Temperature":51.3},"TempUnit":"C"}
2020-01-12 18:41:11 TempUnit C
2020-01-12 18:41:11 Time 2020-01-12T18:41:10
2020-01-12 18:45:03 state ON
2020-01-12 18:45:03 transmission-state incoming publish received
message_ids:
publishSets:
:
topic fhem/KHZ/Schalter/cmnd/sonoff/power1
values:
on
off
sets:
off
on
subscribe:
fhem/KHZ/Schalter/tele/SENSOR
fhem/KHZ/Schalter/stat/POWER1
subscribeExpr:
^fhem\/KHZ\/Schalter\/tele\/SENSOR$
^fhem\/KHZ\/Schalter\/stat\/POWER1$
subscribeQos:
fhem/KHZ/Schalter/stat/POWER1 0
fhem/KHZ/Schalter/tele/SENSOR 0
subscribeReadings:
fhem/KHZ/Schalter/stat/POWER1:
cmd
name state
fhem/KHZ/Schalter/tele/SENSOR:
cmd
name SENSOR
Attributes:
DbLogExclude state
IODev MqttBroker
alias Heizungsschalter
comment http://192.168.0.69/
devStateIcon OFF:FS20.off:ON ON:FS20.on:OFF
publishSet on off fhem/KHZ/Schalter/cmnd/sonoff/power1
room Heizung,MQTT
stateFormat state
subscribeReading_SENSOR fhem/KHZ/Schalter/tele/SENSOR
subscribeReading_state fhem/KHZ/Schalter/stat/POWER1
userReadings Kessel_Temp {ReadingsVal("KHZ_SchalterSonoff_HZSchalter","DS18B20-1_Temperature",0);;}, HK1_R_Temp {ReadingsVal("KHZ_SchalterSonoff_HZSchalter","DS18B20-2_Temperature",0);;}, DHW_Temp {ReadingsVal("KHZ_SchalterSonoff_HZSchalter","DS18B20-3_Temperature",0);;}, HK1_V_Temp {ReadingsVal("KHZ_SchalterSonoff_HZSchalter","DS18B20-4_Temperature",0);;}
webCmd ON:OFF
Die Meldung ist relativ alt, von: 2020-01-12 15:38:15
Um 2020-01-12 17:21:30 wurde deltaDHW korrekt berechnet
Ich gehe davon aus, dass du zwischendurch eine falsche Definition hattest
OK, vielen Dank. Manchmal sieht man den Wald vor Bäumen nicht.