Hallo,
ich hab zwei fhems laufen.
auf dem einen hab ich einen PID, der alle 10 Sekunden das Reading "actuation" aktualisiert. Erkennt man daran, dass die Schrift rot wird.
Auf dieses Reading triggert ein DOIF, welches den Stellmotor befehligt.
Das funktioniert einwandfrei.
Auf dem zweiten fhem hab ich genau die gleiche Konstellation laufen.
Allerdings triggert das DOIF nicht, und ich bin ratlos, warum.
Das Reading vom PID wird ebenfalls rot.
Im Event-Monitor sehe ich das Event.
2020-10-13 15:37:52.566 PID20 PID_HZFHEM measured: 30.62
2020-10-13 15:37:52.566 PID20 PID_HZFHEM p_p: -54.86
2020-10-13 15:37:52.566 PID20 PID_HZFHEM actuation: 0
2020-10-13 15:37:52.566 PID20 PID_HZFHEM actuationCalc: -52.5575000000018
2020-10-13 15:37:52.566 PID20 PID_HZFHEM delta: -4.22
2020-10-13 15:37:52.586 PID20 PID_HZFHEM processing
Das DOIF triggert aber nicht:
Internals:
CFGFN
DEF ([PID_HZFHEM:actuation])
(
set STM2 position [PID_HZFHEM:actuation]
)
FUUID 5f85ab72-f33f-0aaa-21ed-c441087773e4b7a1
MODEL FHEM
NAME DF_connect_PID_STM2
NOTIFYDEV PID_HZFHEM,global
NR 107
NTFY_ORDER 50-DF_connect_PID_STM2
STATE cmd_2
TYPE DOIF
VERSION 22913 2020-10-04 21:46:02
READINGS:
2020-10-13 15:39:02 Device PID_HZFHEM
2020-10-13 15:29:23 cmd 2
2020-10-13 15:29:23 cmd_event set_cmd_2
2020-10-13 15:29:23 cmd_nr 2
2020-10-13 15:39:02 e_PID_HZFHEM_actuation 0
2020-10-13 15:28:24 mode enabled
2020-10-13 15:29:23 state cmd_2
Regex:
accu:
cond:
PID_HZFHEM:
0:
actuation ^PID_HZFHEM$:^actuation:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::ReadingValDoIf($hash,'PID_HZFHEM','actuation')
do:
0:
0 set STM2 position [PID_HZFHEM:actuation]
1:
helper:
DEVFILTER ^global$|^PID_HZFHEM$
NOTIFYDEV global|PID_HZFHEM
event measured: 29.81,p_p: -44.33,actuation: 0,actuationCalc: -42.0275000000018,delta: -3.41
globalinit 1
last_timer 0
sleeptimer -1
timerdev PID_HZFHEM
timerevent measured: 47.06,p_p: -268.58,actuation: 0,actuationCalc: -266.277500000002,delta: -20.66
triggerDev PID_HZFHEM
timerevents:
measured: 47.06
p_p: -268.58
actuation: 0
actuationCalc: -266.277500000002
delta: -20.66
timereventsState:
measured: 47.06
p_p: -268.58
actuation: 0
actuationCalc: -266.277500000002
delta: -20.66
triggerEvents:
measured: 29.81
p_p: -44.33
actuation: 0
actuationCalc: -42.0275000000018
delta: -3.41
triggerEventsState:
measured: 29.81
p_p: -44.33
actuation: 0
actuationCalc: -42.0275000000018
delta: -3.41
internals:
readings:
all PID_HZFHEM:actuation
trigger:
uiState:
uiTable:
Attributes:
do always
Was mache ich falsch?
Danke für eure Anregungen,
Stephan
Ist ganz einfach :)
Die Bedingung mit dem Inhalt des Readings
([PID_HZFHEM:actuation])
ist nur wahr, wenn actuation ungleich Null ist ;)
Wenn du bei jedem Wert ausführen willst, dann solltest du einen reinen Ereignistrigger nehmen:
([PID_HZFHEM:"actuation"])
Puh... Das ist durchaus einfach ;)
Vermutlich bisher nicht aufgefallen, weil in dem Anderen Anwendungsfall der PID eher am Maximum hängt...
Danke!