Ich möchte das Logging meiner FHEM-Installationen mal überarbeiten und teste daher ein neues Setup, exemplarisch an einem DOIF (list unten). Das DOIF sammelt von mehreren Thermometern Werte ein und aggregiert sie auf verschiedene Weisen, u.a. wird der Median berechnet. Diesen möchte ich über eine MQTT_GENERIC_BRIDGE an einen Broker schicken.
Mein Problem: Egal ob ich DOIF_Readings oder event_Readings (mit selftrigger all) für die Berechnung der Werte verwende, und auch egal ob ich event-min-interval setze, sobald event-on-change-reading gesetzt ist, werden keine Werte mehr über die Bridge übertragen. Wenn ich event-min-interval (zum Testen) auf 10 Sekunden und eocr gesetzt habe, sollte ja wenigstens alle 10 Sekunden eine Message kommen - es kam aber genau keine, selbst wenn sich der Medianwert änderte.
Hat jemand eine Idee, warum das so ist? Ist das Verhalten so beabsichtigt?
Internals:
.FhemMetaInternals 1
.eventMapCmd clear:noArg
.lastTimemedian 1612728856.75202
.lastTimestate 1612728390.58988
CFGFN ./cfg.d/general/weather/temperature.cfg
DEF (
["out\.sensors\.environment\.temperature\..+:temperature:.+"]
and [?$DEVICE:activity] eq "alive"
and AttrVal(q($DEVICE), q(ignore_for_calculation), q(false)) ne q(true)
)
(
setreading $SELF temperature_$DEVICE [$DEVICE:temperature],
)
DOELSEIF
(
["out\.sensors\.environment\.temperature\..+:temperature:.+"]
and (
[$DEVICE:activity] eq "dead"
or AttrVal(q($DEVICE), q(ignore_for_calculation), q(false)) eq q(true)
)
)
(
deletereading $SELF temperature_$DEVICE,
)
DOELSEIF
(
[$SELF:clear]
)
(
deletereading $SELF temperature_.+,
)
DOIFDEV ^global$|^general.weather.temperature.median.current$|out\.sensors\.environment\.temperature\..+|general.weather.temperature.median.current
FUUID 600f17ad-f33f-a67d-d9d3-6a037800048b3e9c
FVERSION 98_DOIF.pm:0.234660/2021-01-03
MODEL FHEM
NAME general.weather.temperature.median.current
NR 5306
NTFY_ORDER 50-general.weather.temperature.median.current
STATE -5.90 °C am 07.02.2021 um 21:16
TYPE DOIF
VERSION 23466 2021-01-03 17:14:46
.attraggr:
.attreocr:
.+
.attrminint:
median:10
DOIF_Readings:
average ::AggregateDoIf($hash,'#average:d2:','general.weather.temperature.median.current','"^temperature_.+$"')
max ::AggregateDoIf($hash,'#max:d2:','general.weather.temperature.median.current','"^temperature_.+$"')
median ::AggregateDoIf($hash,'#median:d2:','general.weather.temperature.median.current','"^temperature_.+$"')
min ::AggregateDoIf($hash,'#min:d2:','general.weather.temperature.median.current','"^temperature_.+$"')
sensors_count ::AggregateDoIf($hash,'#','general.weather.temperature.median.current','"^temperature_.+$"')
Helper:
DBLOG:
average:
general.system.log.db:
TIME 1612729001.59173
VALUE -6.02
cmd:
general.system.log.db:
TIME 1612727543.85516
VALUE 1
cmd_event:
general.system.log.db:
TIME 1612729001.54254
VALUE out.sensors.environment.temperature.garden_shed
cmd_nr:
general.system.log.db:
TIME 1612727543.85516
VALUE 1
max:
general.system.log.db:
TIME 1612729001.59173
VALUE -5.10
median:
general.system.log.db:
TIME 1612466127.70055
VALUE 2.00
min:
general.system.log.db:
TIME 1612727543.93009
VALUE -6.60
mode:
general.system.log.db:
TIME 1612444050.49525
VALUE enabled
sensors_count:
general.system.log.db:
TIME 1612727543.99901
VALUE 5
state:
general.system.log.db:
TIME 1612728329.51747
VALUE -5.90
temperature_out.sensors.environment.temperature.driveway.back:
general.system.log.db:
TIME 1612727335.69826
VALUE -5.900000
temperature_out.sensors.environment.temperature.driveway.front:
general.system.log.db:
TIME 1612727335.20337
VALUE -5.900000
temperature_out.sensors.environment.temperature.driveway_pedestrian:
general.system.log.db:
TIME 1612727543.74602
VALUE -6.600000
temperature_out.sensors.environment.temperature.garden_shed:
general.system.log.db:
TIME 1612729001.50819
VALUE -5.100000
temperature_out.sensors.environment.temperature.test:
general.system.log.db:
TIME 1612727642.90647
VALUE 12
temperature_out.sensors.environment.temperature.test1:
general.system.log.db:
TIME 1612727713.04626
VALUE 12
temperature_out.sensors.environment.temperature.test2:
general.system.log.db:
TIME 1612727861.30538
VALUE 12
temperature_out.sensors.environment.temperature.tulpenweg:
general.system.log.db:
TIME 1612727391.30105
VALUE -6.600000
OLDREADINGS:
READINGS:
2021-02-07 21:16:41 Device out.sensors.environment.temperature.garden_shed
2021-02-07 21:16:41 average -6.02
2021-02-07 21:16:41 cmd 1
2021-02-07 21:16:41 cmd_event out.sensors.environment.temperature.garden_shed
2021-02-07 21:16:41 cmd_nr 1
2021-02-07 21:16:41 max -5.10
2021-02-07 21:14:16 median -5.90
2021-02-07 21:14:16 min -6.60
2021-02-04 14:07:30 mode enabled
2021-02-07 21:14:16 sensors_count 5
2021-02-07 21:16:41 state -5.90
2021-02-07 21:14:16 temperature_out.sensors.environment.temperature.driveway.back -5.900000
2021-02-07 21:14:16 temperature_out.sensors.environment.temperature.driveway.front -5.900000
2021-02-07 21:12:02 temperature_out.sensors.environment.temperature.driveway_pedestrian -6.600000
2021-02-07 21:16:41 temperature_out.sensors.environment.temperature.garden_shed -5.100000
2021-02-07 21:15:56 temperature_out.sensors.environment.temperature.tulpenweg -6.600000
Regex:
DOIF_Readings:
:
average:
"general.weather.temperature.median.current" general.weather.temperature.median.current
max:
"general.weather.temperature.median.current" general.weather.temperature.median.current
median:
"general.weather.temperature.median.current" general.weather.temperature.median.current
min:
"general.weather.temperature.median.current" general.weather.temperature.median.current
sensors_count:
"general.weather.temperature.median.current" general.weather.temperature.median.current
general.weather.temperature.median.current:
average:
max:
median:
min:
sensors_count:
STATE:
:
STATE:
"general.weather.temperature.median.current" general.weather.temperature.median.current
accu:
cond:
:
0:
"out\.sensors\.environment\.temperature\..+:temperature:.+" out\.sensors\.environment\.temperature\..+:temperature:.+
1:
"out\.sensors\.environment\.temperature\..+:temperature:.+" out\.sensors\.environment\.temperature\..+:temperature:.+
2:
general.weather.temperature.median.current:
0:
1:
2:
clear ^general.weather.temperature.median.current$:^clear:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::EventDoIf('out\.sensors\.environment\.temperature\..+',$hash,'temperature:.+',0) and ::ReadingValDoIf($hash,'$DEVICE','activity') eq "alive" and AttrVal(q($DEVICE), q(ignore_for_calculation), q(false)) ne q(true)
1 ::EventDoIf('out\.sensors\.environment\.temperature\..+',$hash,'temperature:.+',0) and ( ::ReadingValDoIf($hash,'$DEVICE','activity') eq "dead" or AttrVal(q($DEVICE), q(ignore_for_calculation), q(false)) eq q(true) )
2 ::ReadingValDoIf($hash,'general.weather.temperature.median.current','clear')
do:
0:
0 setreading general.weather.temperature.median.current temperature_$DEVICE [$DEVICE:temperature],
1:
0 deletereading general.weather.temperature.median.current temperature_$DEVICE,
2:
0 deletereading general.weather.temperature.median.current temperature_.+,
3:
helper:
DEVFILTER ^global$|^general.weather.temperature.median.current$|out\.sensors\.environment\.temperature\..+|general.weather.temperature.median.current
NOTIFYDEV global|general.weather.temperature.median.current|.*out\.sensors\.environment\.temperature\..+.*|.*general.weather.temperature.median.current.*
event average: -6.02,max: -5.10
globalinit 1
last_timer 0
sleeptimer -1
timerdev out.sensors.environment.temperature.garden_shed
timerevent temperature: -5.100000
triggerDev general.weather.temperature.median.current
DOIF_eventa:
-5.90
DOIF_eventas:
state: -5.90
timerevents:
temperature: -5.100000
control: -5.100000
-5.100000
hmstate: -5.100000
timereventsState:
temperature: -5.100000
control: -5.100000
state: -5.100000
hmstate: -5.100000
triggerEvents:
average: -6.02
max: -5.10
triggerEventsState:
average: -6.02
max: -5.10
internals:
readings:
all general.weather.temperature.median.current:clear
trigger:
uiState:
uiTable:
Attributes:
DOIF_Readings median:[#median:d2:"$SELF":"^temperature_.+$"],
max:[#max:d2:"$SELF":"^temperature_.+$"],
min:[#min:d2:"$SELF":"^temperature_.+$"],
sensors_count:[#"$SELF":"^temperature_.+$"],
average:[#average:d2:"$SELF":"^temperature_.+$"],
alias Temperaturmedian
do always
event-min-interval median:10
event-on-change-reading .+
eventMap /cmd_3:clear/
group Wetterstation
icon temp_outside@black
logging_bridge_Publish median:topic={"hab/logging/$device/median"} median:expression={toJSON({value => $value, ts => ::ReadingsTimestamp($device, q(median), 0)})} median:qos=1 state:retain=0
room Allgemein->Umwelt
selftrigger all
sortby 11
state [#median:d2:"general.weather.temperature.median.current":"^temperature_.+$"]
stateFormat {FHEM::MyUtils::State::temperature_with_datetime($name, q[state])}
Nach meinem Verständnis erzeugt event-min-interval selbst keine Events, solange keine kommen.
event-Attribute sind Bestandteil von FHEM, da habe ich keine Karten im Spiel.
@Rudi: Hast du hier eine Idee? Irgendwann sollten ja mal Events kommen und die Bridge funktioniert an sich auch, denn wenn ich eocr lösche und ein bisschen mit Readings/Devices spiele, sehe im Topic durchaus Verkehr. Sobald ich aber eocr setze, kommt nichts mehr.
Ich habe jetzt mal folgendes für Publish im DOIF versucht und hier kommen auch Nachrichten an:
Internals:
.FhemMetaInternals 1
.eventMapCmd clear:noArg
.lastTimeDevice 1613084670.13105
.lastTimeaverage 1613084670.15708
.lastTimecmd 1613084669.96443
.lastTimecmd_event 1613084670.18005
.lastTimecmd_nr 1613084669.96443
.lastTimemax 1613084669.93761
.lastTimemedian 1613084669.93384
.lastTimemin 1613084669.92604
.lastTimesensors_count 1613084669.92216
.lastTimestate 1613084669.96443
.lastTimetemperature_out.sensors.environment.temperature.driveway.back 1613084669.88312
.lastTimetemperature_out.sensors.environment.temperature.driveway.front 1613084670.13303
.lastTimetemperature_out.sensors.environment.temperature.tulpenweg 1613084625.72332
CFGFN ./cfg.d/general/weather/temperature.cfg
DEF (
["out\.sensors\.environment\.temperature\..+:temperature:.+"]
and [?$DEVICE:activity] eq "alive"
and AttrVal(q($DEVICE), q(ignore_for_calculation), q(false)) ne q(true)
)
(
setreading $SELF temperature_$DEVICE [$DEVICE:temperature],
)
DOELSEIF
(
["out\.sensors\.environment\.temperature\..+:temperature:.+"]
and (
[$DEVICE:activity] eq "dead"
or AttrVal(q($DEVICE), q(ignore_for_calculation), q(false)) eq q(true)
)
)
(
deletereading $SELF temperature_$DEVICE,
)
DOELSEIF
(
[$SELF:clear]
)
(
deletereading $SELF temperature_.+,
)
DOIFDEV ^global$|^general.weather.temperature.median.current$|out\.sensors\.environment\.temperature\..+|general.weather.temperature.median.current
FUUID 600f17ad-f33f-a67d-d9d3-6a037800048b3e9c
FVERSION 98_DOIF.pm:0.234660/2021-01-03
MODEL FHEM
NAME general.weather.temperature.median.current
NR 5306
NTFY_ORDER 50-general.weather.temperature.median.current
STATE -13.40 °C am 12.02.2021 um 00:04
TYPE DOIF
VERSION 23466 2021-01-03 17:14:46
.attraggr:
.attreocr:
.+
.attrminint:
.+:10
Helper:
DBLOG:
average:
general.system.log.db:
TIME 1613056369.88197
VALUE 0.92
cmd:
general.system.log.db:
TIME 1613084670.02727
VALUE 1
cmd_event:
general.system.log.db:
TIME 1613084670.18403
VALUE out.sensors.environment.temperature.driveway.front
cmd_nr:
general.system.log.db:
TIME 1613084670.02727
VALUE 1
error:
general.system.log.db:
TIME 1613058889.60468
VALUE deletereading general.weather.temperature.median.current temperature_.+
max:
general.system.log.db:
TIME 1613056370.00775
VALUE 6.10
median:
general.system.log.db:
TIME 1613056369.96356
VALUE 0.50
min:
general.system.log.db:
TIME 1613056370.09532
VALUE -1.40
mode:
general.system.log.db:
TIME 1612444050.49525
VALUE enabled
sensors_count:
general.system.log.db:
TIME 1613056370.04456
VALUE 5
state:
general.system.log.db:
TIME 1613084670.02727
VALUE -13.40
temperature_out.sensors.environment.temperature.driveway.back:
general.system.log.db:
TIME 1613084669.89122
VALUE -14.600000
temperature_out.sensors.environment.temperature.driveway.front:
general.system.log.db:
TIME 1613084670.13661
VALUE -14.600000
temperature_out.sensors.environment.temperature.driveway_pedestrian:
general.system.log.db:
TIME 1613084538.31263
VALUE -11.600000
temperature_out.sensors.environment.temperature.dummy.0:
general.system.log.db:
TIME 1613052224.01884
VALUE 200
temperature_out.sensors.environment.temperature.dummy.1:
general.system.log.db:
TIME 1613052330.30394
VALUE 201
temperature_out.sensors.environment.temperature.garden_shed:
general.system.log.db:
TIME 1613084566.27714
VALUE -11.100000
temperature_out.sensors.environment.temperature.test:
general.system.log.db:
TIME 1612727642.90647
VALUE 12
temperature_out.sensors.environment.temperature.test1:
general.system.log.db:
TIME 1612727713.04626
VALUE 12
temperature_out.sensors.environment.temperature.test2:
general.system.log.db:
TIME 1612727861.30538
VALUE 12
temperature_out.sensors.environment.temperature.tulpenweg:
general.system.log.db:
TIME 1613084625.7273
VALUE -13.400000
OLDREADINGS:
READINGS:
2021-02-12 00:04:30 Device out.sensors.environment.temperature.driveway.front
2021-02-12 00:04:30 average -13.06
2021-02-12 00:04:30 cmd 1
2021-02-12 00:04:30 cmd_event out.sensors.environment.temperature.driveway.front
2021-02-12 00:04:30 cmd_nr 1
2021-02-12 00:04:30 max -11.10
2021-02-12 00:04:30 median -13.40
2021-02-12 00:04:30 min -14.60
2021-02-04 14:07:30 mode enabled
2021-02-12 00:04:30 sensors_count 5
2021-02-12 00:04:30 state -13.40
2021-02-12 00:04:29 temperature_out.sensors.environment.temperature.driveway.back -14.600000
2021-02-12 00:04:30 temperature_out.sensors.environment.temperature.driveway.front -14.600000
2021-02-12 00:02:18 temperature_out.sensors.environment.temperature.driveway_pedestrian -11.600000
2021-02-12 00:02:46 temperature_out.sensors.environment.temperature.garden_shed -11.100000
2021-02-12 00:03:45 temperature_out.sensors.environment.temperature.tulpenweg -13.400000
Regex:
STATE:
general.weather.temperature.median.current:
STATE:
median ^general.weather.temperature.median.current$:^median:
accu:
cond:
:
0:
"out\.sensors\.environment\.temperature\..+:temperature:.+" out\.sensors\.environment\.temperature\..+:temperature:.+
1:
"out\.sensors\.environment\.temperature\..+:temperature:.+" out\.sensors\.environment\.temperature\..+:temperature:.+
2:
general.weather.temperature.median.current:
0:
1:
2:
clear ^general.weather.temperature.median.current$:^clear:
event_Readings:
:
average:
"general.weather.temperature.median.current" general.weather.temperature.median.current
max:
"general.weather.temperature.median.current" general.weather.temperature.median.current
median:
"general.weather.temperature.median.current" general.weather.temperature.median.current
min:
"general.weather.temperature.median.current" general.weather.temperature.median.current
sensors_count:
"general.weather.temperature.median.current" general.weather.temperature.median.current
general.weather.temperature.median.current:
average:
max:
median:
min:
sensors_count:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::EventDoIf('out\.sensors\.environment\.temperature\..+',$hash,'temperature:.+',0) and ::ReadingValDoIf($hash,'$DEVICE','activity') eq "alive" and AttrVal(q($DEVICE), q(ignore_for_calculation), q(false)) ne q(true)
1 ::EventDoIf('out\.sensors\.environment\.temperature\..+',$hash,'temperature:.+',0) and ( ::ReadingValDoIf($hash,'$DEVICE','activity') eq "dead" or AttrVal(q($DEVICE), q(ignore_for_calculation), q(false)) eq q(true) )
2 ::ReadingValDoIf($hash,'general.weather.temperature.median.current','clear')
do:
0:
0 setreading general.weather.temperature.median.current temperature_$DEVICE [$DEVICE:temperature],
1:
0 deletereading general.weather.temperature.median.current temperature_$DEVICE,
2:
0 deletereading general.weather.temperature.median.current temperature_.+,
3:
event_Readings:
average ::AggregateDoIf($hash,'#average:d2:','general.weather.temperature.median.current','"^temperature_.+$"')
max ::AggregateDoIf($hash,'#max:d2:','general.weather.temperature.median.current','"^temperature_.+$"')
median ::AggregateDoIf($hash,'#median:d2:','general.weather.temperature.median.current','"^temperature_.+$"')
min ::AggregateDoIf($hash,'#min:d2:','general.weather.temperature.median.current','"^temperature_.+$"')
sensors_count ::AggregateDoIf($hash,'#','general.weather.temperature.median.current','"^temperature_.+$"')
helper:
DEVFILTER ^global$|^general.weather.temperature.median.current$|out\.sensors\.environment\.temperature\..+|general.weather.temperature.median.current
NOTIFYDEV global|general.weather.temperature.median.current|.*out\.sensors\.environment\.temperature\..+.*|.*general.weather.temperature.median.current.*
event cmd_event: out.sensors.environment.temperature.driveway.front
globalinit 1
last_timer 0
sleeptimer -1
timerdev out.sensors.environment.temperature.driveway.front
timerevent temperature: -14.600000
triggerDev general.weather.temperature.median.current
timerevents:
temperature: -14.600000
control: -14.600000
-14.600000
hmstate: -14.600000
timereventsState:
temperature: -14.600000
control: -14.600000
state: -14.600000
hmstate: -14.600000
triggerEvents:
cmd_event: out.sensors.environment.temperature.driveway.front
triggerEventsState:
cmd_event: out.sensors.environment.temperature.driveway.front
internals:
readings:
all general.weather.temperature.median.current:clear
trigger:
uiState:
uiTable:
Attributes:
alias Temperaturmedian
do always
event-min-interval .+:10
event-on-change-reading .+
eventMap /cmd_3:clear/
event_Readings median:[#median:d2:"$SELF":"^temperature_.+$"],
max:[#max:d2:"$SELF":"^temperature_.+$"],
min:[#min:d2:"$SELF":"^temperature_.+$"],
sensors_count:[#"$SELF":"^temperature_.+$"],
average:[#average:d2:"$SELF":"^temperature_.+$"],
group Wetterstation
icon temp_outside@black
logging_bridge_Publish state:topic={"hab/logging/$device/median"} state:expression={toJSON({ device => $device, value => $value, ts => ::ReadingsTimestamp($device, q(state), 0)})} state:qos=1 state:retain=0
room Allgemein->Umwelt
selftrigger all
sortby 11
state [$SELF:median]
stateFormat {FHEM::MyUtils::State::temperature_with_datetime($name, q[state])}
Der Unterschied ist, dass ich state über die Bridge publishe und kein Reading aus event_Reading. Kann es sein, dass irgendeine der drei Komponenten, also DOIF, Fhem-Core oder MQTT_GENERIC_BRIDGE nicht mitbekommt, wenn etwas von event_Readings generiert wird?
Hier noch was aus dem Event Monitor von eben:
2021-02-12 00:03:45.771 DOIF general.weather.temperature.median.current temperature_out.sensors.environment.temperature.tulpenweg: -13.400000
2021-02-12 00:03:45.771 DOIF general.weather.temperature.median.current sensors_count: 5
2021-02-12 00:03:45.771 DOIF general.weather.temperature.median.current min: -14.50
2021-02-12 00:03:45.771 DOIF general.weather.temperature.median.current average: -13.02
2021-02-12 00:03:45.771 DOIF general.weather.temperature.median.current median: -13.40
2021-02-12 00:03:45.771 DOIF general.weather.temperature.median.current max: -11.10
2021-02-12 00:03:45.869 DOIF general.weather.temperature.median.current cmd_nr: 1
2021-02-12 00:03:45.869 DOIF general.weather.temperature.median.current cmd: 1
2021-02-12 00:03:45.869 DOIF general.weather.temperature.median.current cmd_event: out.sensors.environment.temperature.tulpenweg
2021-02-12 00:03:45.869 DOIF general.weather.temperature.median.current -13.40
2021-02-12 00:04:29.960 DOIF general.weather.temperature.median.current temperature_out.sensors.environment.temperature.driveway.back: -14.600000
2021-02-12 00:04:29.960 DOIF general.weather.temperature.median.current sensors_count: 5
2021-02-12 00:04:29.960 DOIF general.weather.temperature.median.current min: -14.60
2021-02-12 00:04:29.960 DOIF general.weather.temperature.median.current average: -13.04
2021-02-12 00:04:29.960 DOIF general.weather.temperature.median.current median: -13.40
2021-02-12 00:04:29.960 DOIF general.weather.temperature.median.current max: -11.10
2021-02-12 00:04:30.100 DOIF general.weather.temperature.median.current cmd_nr: 1
2021-02-12 00:04:30.100 DOIF general.weather.temperature.median.current cmd: 1
2021-02-12 00:04:30.100 DOIF general.weather.temperature.median.current cmd_event: out.sensors.environment.temperature.driveway.back
2021-02-12 00:04:30.100 DOIF general.weather.temperature.median.current -13.40
2021-02-12 00:04:30.178 DOIF general.weather.temperature.median.current temperature_out.sensors.environment.temperature.driveway.front: -14.600000
2021-02-12 00:04:30.178 DOIF general.weather.temperature.median.current average: -13.06
2021-02-12 00:04:30.225 DOIF general.weather.temperature.median.current cmd_event: out.sensors.environment.temperature.driveway.front
Die GenericBridge reagiert, wenn sie über das Event-Mechanismus angetriggert wird. Daher vermute ich, dass in diesem Fall die Nachrichten gar nicht erst ankommen. Leider weiß ich nicht, wie das Event-Mechanismus in Detail funktioniert und wie Event-On-Change-Reading genau wirkt.
Ich meine, FHEM hat eine Art Loop-Schutz bei der Event-Verarbeitung, damit keine Trigger-Schleife entsteht. Evtl. greift das hier irgendwie dazwischen.
Ich könnte versuchen, dass nachzustellen, evtl. werde ich aus den Logs etwas erkennen.
Mir ist zwischenzeitlich aufgefallen, dass auch im DBLog keines der event_Readings/DOIF_Readings landet, obwohl ich alles logge was geschieht.
Sieht für mich auch so aus, als würden DOIF_Readings/event_Readings gar keine Events auslösen - und so kann natürlich auch weder DBLog noch M_G_B was schreiben.
@Damian: Magst du vielleicht doch noch mal versuchen, ob du das nachstellen kannst?
nb: event-min-interval / eocr habe ich komplett raus. D.h. es sollte ja immer ein Event kommen, aber nix von den event_Readings zu sehen.
DOIF_Readings erzeugen keine Events nach außen, die sind nur dazu da, das eigene Modul zu "triggern", besser gesagt, das Modul ruft sich rekursiv selbst auf.
event_Readings werden nicht in einem Block erzeugt, das führt offenbar in FHEM zu Problemen, das ist eine größere Baustelle, die ich mir noch vornehmen muss, das kann aber noch dauern.
Zitat von: Damian am 26 Juni 2021, 11:13:20
DOIF_Readings erzeugen keine Events nach außen, die sind nur dazu da, das eigene Modul zu "triggern", besser gesagt, das Modul ruft sich rekursiv selbst auf.
event_Readings werden nicht in einem Block erzeugt, das führt offenbar in FHEM zu Problemen, das ist eine größere Baustelle, die ich mir noch vornehmen muss, das kann aber noch dauern.
Das mit DOIF_Readings war klar, aber das Verhalten in Kombination mit M_G_B unklar, weil dort die Def ja auch im Modul stattfindet ;-)
Danke, dass du einen Blick darauf wirfst. Ich baue mir derweil einen würgaround.
Als Workaround kann man im Perl-Modus mit den elementaren Funktionen arbeiten: https://fhem.de/commandref_DE.html#DOIF_set_Reading_Update arbeiten.