Hauptmenü

Gelöst: DOIF triggert nicht

Begonnen von abc2006, 13 Oktober 2020, 15:41:42

Vorheriges Thema - Nächstes Thema

abc2006

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
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

Damian

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"])
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

abc2006

Puh... Das ist durchaus einfach ;)
Vermutlich bisher nicht aufgefallen, weil in dem Anderen Anwendungsfall der PID eher am Maximum hängt...
Danke!
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX