DOIF und Events: event-min-interval, eocr, Aggregate erzeugen keine Events

Begonnen von Christoph Morrison, 07 Februar 2021, 21:48:43

Vorheriges Thema - Nächstes Thema

Christoph Morrison

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])}

Damian

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

Christoph Morrison

@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.

Christoph Morrison

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?


Christoph Morrison

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

hexenmeister

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.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Christoph Morrison

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?

Christoph Morrison

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.

Damian

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

Christoph Morrison

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.

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF