DOIF mit Abfrage auf State eines Dummys

Begonnen von Bartimaus, 02 Juli 2019, 12:40:15

Vorheriges Thema - Nächstes Thema

Bartimaus

Moin,

in diversen DOIFs nutze ich die "States" von diversen Dummys als Bedingung in der Abfrage. (mit verschiedenen Schwellenwerten z.B.)
Damit diese "States" auch in den Readings des entsprechenden DOIFs auftauchen, muss ja ein Event des Dummys generiert werden.

Wenn ich ein solches DOIF überarbeite, muss ich anschließend (aus Unkenntnis anderer Möglichkeiten), jedes verwendete Dummy anklicken und ein Event generieren, auch wenn ich den State des Dummy als solchen nicht verändern will.

Kann man das ggfls. durch ein Attribut vereinfachen ? Ich such mir hier gerade nen Wolf, vielleicht auch weil ich die falschen Suchbegriffe verwende.
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Otto123

Hi,

wenn es Abfragen im DOIF sind, reicht doch ein checkall am DOIF?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Bartimaus

Hallo Otto,

danke für die schnelle Rückmeldung.

Das dachte ich auch, aber die Readings erscheinen nach "checkall" nicht in den Readings des entsprechenden DOIFs. Das passiert nur nach einem Event.

Leider hatte ich in der Vergangenheit DOIFs die meiner Meinung nach nicht immer genau das getan habe, was ich als Bedingung definiert hatte.... ich habe das auf das fehlen der Readings geschoben.
Seitdem, wenn ich ein DOIF modifiziere, löse ich zu jedem SchwellenwertDummy manuell ein Event aus.... ist das Gegenteil einer Automation  ;D ;D
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Otto123

Um genau zu verstehen was Du meinst, mach doch mal bitte
- ein list vom Zustand den Du gern hättest,
- ein list vom Zustand initialized und
- ein list vom Zustand checkall danach.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Bartimaus

LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Ellert

Die Auslöserangaben können mit einem Ersatzwert ergänzt werden, der wird verwendet, wenn Readings nicht existieren.

Bartimaus

#6
@Otto

Gerade gecheckt, bei einem DOIF mit Status "initialized" bewirkt ein set checkall quasi nichts, auch wenn alle Bedingungen "true" sind.
Erst wenn ich händisch die Events zu den hinterlegten Dummys auslöse, bewirkt ein set checkall das in dem Fall CMD_1 ausgelöst wird, weil nur dann das DOIF die Bedingungen scheinbar erkennt.

Die LISTs folgen noch...

@Ellert

Meinst Du als numerischen Wert als "or" Bedingung innerhalb der Abfrage ?

So, hier die Lists:

Das ist das funktionierende DOIF:


Internals:
   DEF        (([myT:azimuth] > 139 and [myT:azimuth] < 249)
and ([Multisensor:ultraviolet:d] > [UV_S] or [Multisensor:luminance:d] > 29000)
and [Temp_Garten:Temperatur:d] > [RolloSchattenTemp]
and [Temp_Wohnzimmer:Temperatur:d] > [RolloSchattenTemp]
and [BeschattungEinAus:state]  eq "on")
(set Rollo.Seite pct 50)
DOELSEIF
(([myT:azimuth] > 105 and [myT:azimuth] < 140)
and [Multisensor:luminance:d] => 20000
and [Temp_Garten:Temperatur:d] > [RolloSchattenTemp]
and [Temp_Wohnzimmer:Temperatur:d] > [RolloSchattenTemp]
and [BeschattungEinAus:state]  eq "on")
(set Rollo.Seite pct 50)
DOELSE
(set Rollo.Seite on, set Beschattung_Seite off)
   FUUID      5c72448a-f33f-dcb4-5a12-11aa3e567253b673
   MODEL      FHEM
   NAME       Do_RolloSeiteSchatten
   NR         529
   NTFY_ORDER 50-Do_RolloSeiteSchatten
   STATE      fts_shutter_70
   TYPE       DOIF
   VERSION    19303 2019-05-01 08:47:16
   READINGS:
     2019-07-02 17:04:06   Device          Multisensor
     2019-07-02 12:27:01   cmd             1
     2019-07-02 12:27:01   cmd_count       1
     2019-07-02 12:27:01   cmd_event       Temp_Garten
     2019-07-02 12:27:01   cmd_nr          1
     2019-06-25 13:14:46   e_BeschattungEinAus_state on
     2019-07-02 17:04:05   e_Multisensor_luminance 29950 Lux
     2019-07-02 17:04:06   e_Multisensor_ultraviolet 2 UV
     2019-06-27 11:51:15   e_RolloSchattenTemp_STATE 22
     2019-07-02 17:02:50   e_Temp_Garten_Temperatur 24.00
     2019-07-02 17:02:37   e_Temp_Wohnzimmer_Temperatur 24.50
     2019-06-27 11:50:14   e_UV_S_STATE    1
     2019-07-02 17:02:26   e_myT_azimuth   253.02
     2019-07-02 12:40:12   mode            enabled
     2019-07-02 12:27:01   state           fts_shutter_70
     2019-07-02 16:47:24   wait_timer      02.07.2019 17:17:24 cmd_3 myT
   Regex:
     accu:
   attr:
     cmdState:
       0:
         fts_shutter_70
       1:
         fts_shutter_70
       2:
         fts_shutter_10
     repeatsame:
       1
       1
       1
     wait:
       0:
         301
       1:
         301
       2:
         1800
     waitdel:
   condition:
     0          (::ReadingValDoIf($hash,'myT','azimuth') > 139 and ::ReadingValDoIf($hash,'myT','azimuth') < 249)  and (::ReadingValDoIf($hash,'Multisensor','ultraviolet','','d') > ::InternalDoIf($hash,'UV_S','STATE') or ::ReadingValDoIf($hash,'Multisensor','luminance','','d') > 29000)  and ::ReadingValDoIf($hash,'Temp_Garten','Temperatur','','d') > ::InternalDoIf($hash,'RolloSchattenTemp','STATE')  and ::ReadingValDoIf($hash,'Temp_Wohnzimmer','Temperatur','','d') > ::InternalDoIf($hash,'RolloSchattenTemp','STATE')  and ::ReadingValDoIf($hash,'BeschattungEinAus','state')  eq "on"
     1          (::ReadingValDoIf($hash,'myT','azimuth') > 105 and ::ReadingValDoIf($hash,'myT','azimuth') < 140)  and ::ReadingValDoIf($hash,'Multisensor','luminance','','d') => 20000  and ::ReadingValDoIf($hash,'Temp_Garten','Temperatur','','d') > ::InternalDoIf($hash,'RolloSchattenTemp','STATE')  and ::ReadingValDoIf($hash,'Temp_Wohnzimmer','Temperatur','','d') > ::InternalDoIf($hash,'RolloSchattenTemp','STATE')  and ::ReadingValDoIf($hash,'BeschattungEinAus','state')  eq "on"
   devices:
     0           myT Multisensor UV_S Temp_Garten RolloSchattenTemp Temp_Wohnzimmer BeschattungEinAus
     1           myT Multisensor Temp_Garten RolloSchattenTemp Temp_Wohnzimmer BeschattungEinAus
     all         myT Multisensor UV_S Temp_Garten RolloSchattenTemp Temp_Wohnzimmer BeschattungEinAus
   do:
     0:
       0          set Rollo.Seite pct 50
     1:
       0          set Rollo.Seite pct 50
     2:
       0          set Rollo.Seite on, set Beschattung_Seite off
   helper:
     event      ultraviolet: 2 UV
     globalinit 1
     last_timer 0
     sleepdevice myT
     sleepsubtimer 0
     sleeptimer 2
     timerdev   Multisensor
     timerevent ultraviolet: 2 UV
     triggerDev Multisensor
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: Temp_Garten
       state: fts_shutter_70
     timerevents:
       ultraviolet: 2 UV
     timereventsState:
       ultraviolet: 2 UV
     triggerEvents:
       ultraviolet: 2 UV
     triggerEventsState:
       ultraviolet: 2 UV
   internals:
     0           UV_S:STATE RolloSchattenTemp:STATE
     1           RolloSchattenTemp:STATE
     all         UV_S:STATE RolloSchattenTemp:STATE
   itimer:
   perlblock:
   readings:
     0           myT:azimuth Multisensor:ultraviolet Multisensor:luminance Temp_Garten:Temperatur Temp_Wohnzimmer:Temperatur BeschattungEinAus:state
     1           myT:azimuth Multisensor:luminance Temp_Garten:Temperatur Temp_Wohnzimmer:Temperatur BeschattungEinAus:state
     all         myT:azimuth Multisensor:ultraviolet Multisensor:luminance Temp_Garten:Temperatur Temp_Wohnzimmer:Temperatur BeschattungEinAus:state
   trigger:
   uiState:
   uiTable:
Attributes:
   cmdState   fts_shutter_70|fts_shutter_70|fts_shutter_10
   disable    0
   group      DOIF
   repeatsame 1:1:1
   room       DOIF,Jalousien
   verbose    0
   wait       301:301:1800


Jetzt nach initialize
   
    
   Internals:
   DEF        (([myT:azimuth] > 139 and [myT:azimuth] < 249)
and ([Multisensor:ultraviolet:d] > [UV_S] or [Multisensor:luminance:d] > 29000)
and [Temp_Garten:Temperatur:d] > [RolloSchattenTemp]
and [Temp_Wohnzimmer:Temperatur:d] > [RolloSchattenTemp]
and [BeschattungEinAus:state]  eq "on")
(set Rollo.Seite pct 50)
DOELSEIF
(([myT:azimuth] > 105 and [myT:azimuth] < 140)
and [Multisensor:luminance:d] => 20000
and [Temp_Garten:Temperatur:d] > [RolloSchattenTemp]
and [Temp_Wohnzimmer:Temperatur:d] > [RolloSchattenTemp]
and [BeschattungEinAus:state]  eq "on")
(set Rollo.Seite pct 50)
DOELSE
(set Rollo.Seite on, set Beschattung_Seite off)
   FUUID      5c72448a-f33f-dcb4-5a12-11aa3e567253b673
   MODEL      FHEM
   NAME       Do_RolloSeiteSchatten
   NR         529
   NTFY_ORDER 50-Do_RolloSeiteSchatten
   STATE      initialized
   TYPE       DOIF
   VERSION    19303 2019-05-01 08:47:16
   READINGS:
     2019-07-02 17:08:43   cmd             0
     2019-07-02 17:08:43   mode            enabled
     2019-07-02 17:08:43   state           initialized
   Regex:
     accu:
   attr:
     cmdState:
       0:
         fts_shutter_70
       1:
         fts_shutter_70
       2:
         fts_shutter_10
     repeatsame:
       1
       1
       1
     wait:
       0:
         301
       1:
         301
       2:
         1800
     waitdel:
   condition:
     0          (::ReadingValDoIf($hash,'myT','azimuth') > 139 and ::ReadingValDoIf($hash,'myT','azimuth') < 249)  and (::ReadingValDoIf($hash,'Multisensor','ultraviolet','','d') > ::InternalDoIf($hash,'UV_S','STATE') or ::ReadingValDoIf($hash,'Multisensor','luminance','','d') > 29000)  and ::ReadingValDoIf($hash,'Temp_Garten','Temperatur','','d') > ::InternalDoIf($hash,'RolloSchattenTemp','STATE')  and ::ReadingValDoIf($hash,'Temp_Wohnzimmer','Temperatur','','d') > ::InternalDoIf($hash,'RolloSchattenTemp','STATE')  and ::ReadingValDoIf($hash,'BeschattungEinAus','state')  eq "on"
     1          (::ReadingValDoIf($hash,'myT','azimuth') > 105 and ::ReadingValDoIf($hash,'myT','azimuth') < 140)  and ::ReadingValDoIf($hash,'Multisensor','luminance','','d') => 20000  and ::ReadingValDoIf($hash,'Temp_Garten','Temperatur','','d') > ::InternalDoIf($hash,'RolloSchattenTemp','STATE')  and ::ReadingValDoIf($hash,'Temp_Wohnzimmer','Temperatur','','d') > ::InternalDoIf($hash,'RolloSchattenTemp','STATE')  and ::ReadingValDoIf($hash,'BeschattungEinAus','state')  eq "on"
   devices:
     0           myT Multisensor UV_S Temp_Garten RolloSchattenTemp Temp_Wohnzimmer BeschattungEinAus
     1           myT Multisensor Temp_Garten RolloSchattenTemp Temp_Wohnzimmer BeschattungEinAus
     all         myT Multisensor UV_S Temp_Garten RolloSchattenTemp Temp_Wohnzimmer BeschattungEinAus
   do:
     0:
       0          set Rollo.Seite pct 50
     1:
       0          set Rollo.Seite pct 50
     2:
       0          set Rollo.Seite on, set Beschattung_Seite off
   helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   internals:
     0           UV_S:STATE RolloSchattenTemp:STATE
     1           RolloSchattenTemp:STATE
     all         UV_S:STATE RolloSchattenTemp:STATE
   itimer:
   readings:
     0           myT:azimuth Multisensor:ultraviolet Multisensor:luminance Temp_Garten:Temperatur Temp_Wohnzimmer:Temperatur BeschattungEinAus:state
     1           myT:azimuth Multisensor:luminance Temp_Garten:Temperatur Temp_Wohnzimmer:Temperatur BeschattungEinAus:state
     all         myT:azimuth Multisensor:ultraviolet Multisensor:luminance Temp_Garten:Temperatur Temp_Wohnzimmer:Temperatur BeschattungEinAus:state
   uiState:
   uiTable:
Attributes:
   cmdState   fts_shutter_70|fts_shutter_70|fts_shutter_10
   disable    0
   group      DOIF
   repeatsame 1:1:1
   room       DOIF,Jalousien
   verbose    0
   wait       301:301:1800

   
Nach  set checkall


   Internals:
   DEF        (([myT:azimuth] > 139 and [myT:azimuth] < 249)
and ([Multisensor:ultraviolet:d] > [UV_S] or [Multisensor:luminance:d] > 29000)
and [Temp_Garten:Temperatur:d] > [RolloSchattenTemp]
and [Temp_Wohnzimmer:Temperatur:d] > [RolloSchattenTemp]
and [BeschattungEinAus:state]  eq "on")
(set Rollo.Seite pct 50)
DOELSEIF
(([myT:azimuth] > 105 and [myT:azimuth] < 140)
and [Multisensor:luminance:d] => 20000
and [Temp_Garten:Temperatur:d] > [RolloSchattenTemp]
and [Temp_Wohnzimmer:Temperatur:d] > [RolloSchattenTemp]
and [BeschattungEinAus:state]  eq "on")
(set Rollo.Seite pct 50)
DOELSE
(set Rollo.Seite on, set Beschattung_Seite off)
   FUUID      5c72448a-f33f-dcb4-5a12-11aa3e567253b673
   MODEL      FHEM
   NAME       Do_RolloSeiteSchatten
   NR         529
   NTFY_ORDER 50-Do_RolloSeiteSchatten
   STATE      initialized
   TYPE       DOIF
   VERSION    19303 2019-05-01 08:47:16
   READINGS:
     2019-07-02 17:09:05   Device          Multisensor
     2019-07-02 17:08:43   cmd             0
     2019-07-02 17:09:05   e_Multisensor_luminance 29911 Lux
     2019-07-02 17:08:43   mode            enabled
     2019-07-02 17:08:43   state           initialized
     2019-07-02 17:09:05   wait_timer      02.07.2019 17:39:05 cmd_3 Multisensor
   Regex:
     accu:
   attr:
     cmdState:
       0:
         fts_shutter_70
       1:
         fts_shutter_70
       2:
         fts_shutter_10
     repeatsame:
       1
       1
       1
     wait:
       0:
         301
       1:
         301
       2:
         1800
     waitdel:
   condition:
     0          (::ReadingValDoIf($hash,'myT','azimuth') > 139 and ::ReadingValDoIf($hash,'myT','azimuth') < 249)  and (::ReadingValDoIf($hash,'Multisensor','ultraviolet','','d') > ::InternalDoIf($hash,'UV_S','STATE') or ::ReadingValDoIf($hash,'Multisensor','luminance','','d') > 29000)  and ::ReadingValDoIf($hash,'Temp_Garten','Temperatur','','d') > ::InternalDoIf($hash,'RolloSchattenTemp','STATE')  and ::ReadingValDoIf($hash,'Temp_Wohnzimmer','Temperatur','','d') > ::InternalDoIf($hash,'RolloSchattenTemp','STATE')  and ::ReadingValDoIf($hash,'BeschattungEinAus','state')  eq "on"
     1          (::ReadingValDoIf($hash,'myT','azimuth') > 105 and ::ReadingValDoIf($hash,'myT','azimuth') < 140)  and ::ReadingValDoIf($hash,'Multisensor','luminance','','d') => 20000  and ::ReadingValDoIf($hash,'Temp_Garten','Temperatur','','d') > ::InternalDoIf($hash,'RolloSchattenTemp','STATE')  and ::ReadingValDoIf($hash,'Temp_Wohnzimmer','Temperatur','','d') > ::InternalDoIf($hash,'RolloSchattenTemp','STATE')  and ::ReadingValDoIf($hash,'BeschattungEinAus','state')  eq "on"
   devices:
     0           myT Multisensor UV_S Temp_Garten RolloSchattenTemp Temp_Wohnzimmer BeschattungEinAus
     1           myT Multisensor Temp_Garten RolloSchattenTemp Temp_Wohnzimmer BeschattungEinAus
     all         myT Multisensor UV_S Temp_Garten RolloSchattenTemp Temp_Wohnzimmer BeschattungEinAus
   do:
     0:
       0          set Rollo.Seite pct 50
     1:
       0          set Rollo.Seite pct 50
     2:
       0          set Rollo.Seite on, set Beschattung_Seite off
   helper:
     event      luminance: 29911 Lux
     globalinit 1
     last_timer 0
     sleepdevice Multisensor
     sleepsubtimer 0
     sleeptimer 2
     timerdev   
     timerevent luminance: 29911 Lux
     triggerDev
     timerevents:
       luminance: 29911 Lux
     timereventsState:
       luminance: 29911 Lux
     triggerEvents:
       luminance: 29911 Lux
     triggerEventsState:
       luminance: 29911 Lux
   internals:
     0           UV_S:STATE RolloSchattenTemp:STATE
     1           RolloSchattenTemp:STATE
     all         UV_S:STATE RolloSchattenTemp:STATE
   itimer:
   readings:
     0           myT:azimuth Multisensor:ultraviolet Multisensor:luminance Temp_Garten:Temperatur Temp_Wohnzimmer:Temperatur BeschattungEinAus:state
     1           myT:azimuth Multisensor:luminance Temp_Garten:Temperatur Temp_Wohnzimmer:Temperatur BeschattungEinAus:state
     all         myT:azimuth Multisensor:ultraviolet Multisensor:luminance Temp_Garten:Temperatur Temp_Wohnzimmer:Temperatur BeschattungEinAus:state
   trigger:
   uiState:
   uiTable:
Attributes:
   cmdState   fts_shutter_70|fts_shutter_70|fts_shutter_10
   disable    0
   group      DOIF
   repeatsame 1:1:1
   room       DOIF,Jalousien
   verbose    0
   wait       301:301:1800


Das sind die Dummywerte nach Event:


2019-06-25 13:14:46   e_BeschattungEinAus_state on
2019-06-27 11:51:15   e_RolloSchattenTemp_STATE 22
2019-06-27 11:50:14   e_UV_S_STATE    1


Ohne die im Reading des DOIF funktioniert es nicht sauber
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Otto123

Dann machst Du scheinbar keine Abfragen sondern hast Auswertung über Events ...
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Bartimaus

nö, siehe meine "Lists", aber ich lasse mich gerne belehren, deswegen frage ich ja hier  ;)
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Otto123

Ja ok, sehe es jetzt im list, da hatten sich unsere Posts überschnitten ;).
Aber ich verstehe es nicht, Du fragst ja keine internen Readings ab.
Da muss ein DOIF "Interner" was dazu sagen :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Ellert

Ich meine es so, wie in der Befehlsreferenz unter Ersatzwert für nicht existierende Readings oder Status beschrieben ist.

Der Sinn von set <name> checkall ist es, die Bedingungen eines DOIF nacheinander ohne vorhergehende Events zu prüfen und die zur ersten wahren Bedingung gehörenden Befehle auszuführen.

Und natürlich werden die Waittimer beachtet.

Otto123

@Ellert Das heisst: DOIF fragt beim checkall für den Ausdruck [device:reading] nicht das tatsächliche Device ab sondern seine intern empfangenen (oder eben nicht empfangenen) Events / gesetzten Readings ab?  :o
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Ellert

Zitat von: Otto123 am 02 Juli 2019, 18:51:02
@Ellert Das heisst: DOIF fragt beim checkall für den Ausdruck [device:reading] nicht das tatsächliche Device ab sondern seine intern empfangenen (oder eben nicht empfangenen) Events / gesetzten Readings ab?  :o
Ich frage mich, was ich falsch formuliert habe, dass Du es so verstehst.

Es werden die Geräte über die Perlfunktion ReadingValDoIf abgefragt.

Bartimaus

Zitat von: Otto123 am 02 Juli 2019, 18:51:02
@Ellert Das heisst: DOIF fragt beim checkall für den Ausdruck [device:reading] nicht das tatsächliche Device ab sondern seine intern empfangenen (oder eben nicht empfangenen) Events / gesetzten Readings ab?  :o

Genau das ist mein Problem.

Trage ich jetzt wie von Ellert beschrieben, Ersatzwerte ein, löst ein set checkall aus....
... will ich aber die ,,richtigen" Schwellenwerte als Readings im DOIF haben, muss ich händisch die Events auslösen.

Gibt's dafür keine Syntax z.b. in einem Notify whatever, welches Events zu den Dummys mit den gewählten Werten auslöst ?
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Ellert

#14
Ehrlich gesagt, ich verstehe Dein Problem nicht.

Alle internen Readings/Internals sind nur nachrichtlich angegeben, es werden immer die in der Bedingung angegebenen Geräte befragt, nicht die Readings des DOIF. Das steht auch in der Befehlsreferenz:
ZitatMit dem set-Befehl checkall werden wie beim gleichnamigen Attribut alle DOIF-Bedingung überprüft, sobald eine Bedingung als wahr geprüft ist, wird das dazugehörige Kommando ausgeführt. Zu beachten ist, dass nur der erste wahre DOIF-Zweig ausgeführt wird und dass nur Zustandsabfragen sowie Zeitintervalle sinnvoll überprüft werden können. Ereignisabfragen sowie Zeitpunkt-Definitionen, sind zum Zeitpunkt der checkall-Abfrage normalerweise nicht wahr.

Wozu benötigst Du die von Dir vermissten Readings?

Dein DOIF nach checkall funktioniert doch, der Status wechselt von initialized nach cmd_3 nachdem der Waittimer
2019-07-02 17:09:05   wait_timer      02.07.2019 17:39:05 cmd_3 Multisensor abgelaufen ist, allerdings ausgelöst durch Multisensor.

Edit: Timer korrigiert -> 2019-07-02 17:09:05   wait_timer      02.07.2019 17:39:05 cmd_3 Multisensor