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.
Hi,
wenn es Abfragen im DOIF sind, reicht doch ein checkall am DOIF?
Gruß Otto
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
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.
Ok, wird aber später...
Die Auslöserangaben können mit einem Ersatzwert ergänzt werden, der wird verwendet, wenn Readings nicht existieren.
@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
Dann machst Du scheinbar keine Abfragen sondern hast Auswertung über Events ...
nö, siehe meine "Lists", aber ich lasse mich gerne belehren, deswegen frage ich ja hier ;)
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
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.
@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
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.
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 ?
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
Zitat von: Bartimaus am 02 Juli 2019, 19:29:08
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 ?
Du kannst mit "trigger deinDummy" das entsprechende Event provozieren und schauen, was dann passiert.
Zitat von: Ellert am 02 Juli 2019, 19:02:54
Ich frage mich, was ich falsch formuliert habe, dass Du es so verstehst.
Es werden die Geräte über die Perlfunktion ReadingValDoIf abgefragt.
Nein Du hast nichts falsch formuliert, sorry. Aber Du schreibst was von Ersatzwerten...
Wenn ich die lists von Bartimaus richtig interpretiere fragt er doch einfach Readings von Geräten ab. Was spielen dann Ersatzwerte in Readings vom DOIF überhaupt für eine Rolle?
Auch egal was Damian schreibt, ich würde bei dem Code von Bartimaus davon ausgehen, das einfach Werte der Dummies abgefragt werden und die Bedingungen geprüft werden. Events der beteiligten Geräte spielen doch da keine Rolle?
Zitat von: Damian am 02 Juli 2019, 21:09:27
Du kannst mit "trigger deinDummy" das entsprechende Event provozieren und schauen, was dann passiert.
Arrrgh ::) ::)
Danke, da bastel ich mir was
Zitat von: Otto123 am 02 Juli 2019, 21:47:46
Nein Du hast nichts falsch formuliert, sorry. Aber Du schreibst was von Ersatzwerten...
Wenn ich die lists von Bartimaus richtig interpretiere fragt er doch einfach Readings von Geräten ab. Was spielen dann Ersatzwerte in Readings vom DOIF überhaupt für eine Rolle?
Auch egal was Damian schreibt, ich würde bei dem Code von Bartimaus davon ausgehen, das einfach Werte der Dummies abgefragt werden und die Bedingungen geprüft werden. Events der beteiligten Geräte spielen doch da keine Rolle?
Erst das Event des Dummys ,,schreibt" dessen Status in das interne Reading des DOIFs... damit dieses korrekt funktioniert. Die definierten Ersatzwerte werden für den Fall herangezogen falls der Status des Dummys NICHT im internen Reading des DOIFs steht, weil hierzu noch kein Event ausgelöst wurde.
Ohne diesen Ersatzwert, wird der Status des Dummys scheinbar ignoriert...
Zitat von: Ellert am 02 Juli 2019, 20:01: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:
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
Hm.... das habe ich übersehen..... Danke Dir.
Hab jetzt die Ersatzwerte eingetragen.... und auf das triggern der Dummys hätte ich auch kommen können.... :o ;D ... manchmal sieht man den Wald vor lauter Bäumen nicht...
Zitat von: Otto123 am 02 Juli 2019, 21:47:46
Aber Du schreibst was von Ersatzwerten...
In Antwort #5 habe ich nur allgemein erwähnt, was bei fehlenden Readings getan werden kann, ohne Kenntnis des später gelisteten DOIF. Und in Antwort #10 habe ich auf Nachfrage die Antwort 5 präzisiert, ohne Bezug auf das nun vorliegende Listing.
Im Nachhinein dürfte der Hinweis auf den Ersatzwert nicht zielführend sein, sofern alle angegebenen Readings/Internals in den jeweiligen Geräten vorhanden sind.
Dass die Angabe von Ersatzwerten zu einer Verbesserung geführt hat, ist für mich nicht schlüssig.
Zitat von: Ellert am 03 Juli 2019, 00:11:27
... Dass die Angabe von Ersatzwerten zu einer Verbesserung geführt hat, ist für mich nicht schlüssig.
Das geht mir genauso. Mich verwirrt sowohl das Problem als auch die Lösung :-[