FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: sz_wolfi am 14 Dezember 2019, 21:09:24

Titel: Vertständnis von event-aggregator
Beitrag von: sz_wolfi am 14 Dezember 2019, 21:09:24
Hallo,

ich habe jetzt die commandref bzgl. "event-aggregator" durchgelesen, aber mein event-aggregator funktioniert irgendwie nicht.

was ich habe:

Einen Aeotec ZW100 Sensor - von dem ich die Anzahl der Bewegungsmeldungen innerhalb einer Zeit zählen will.
...bzw. eigentlich will ich sie aufintegrieren ... - aber Zählen ist einfacher zu verifizieren.

in der Commandref zu 'attr event-aggregator' steht - dass man idealerweise ein userReading dazu nehmen sollte.

gemacht, getan - GEHT auch wie erwartet:


attr SENSOR_2 userReadings alarmTime:.*alarm.*Motion.* {ReadingsTimestamp("$NAME","alarm",99999);; }, MotionFreq:basicSet.* \
{ if (ReadingsNum("$NAME","basicSet",0) > 0) { Log 1,"uR: $NAME = 1.0";; return 1.0;;} else {Log 1,"uR: $NAME = 0.0";; return 0.0;;} }


...und diese zwei userReadings funktionieren auch soweit - laut Log-Meldungen - insbes. das "MotionFreq" Reading:


2019.12.14 20:04:18 1: uR: SENSOR_2 = 1.0
2019.12.14 20:06:02 1: uR: SENSOR_2 = 0.0
2019.12.14 20:07:13 1: uR: SENSOR_2 = 1.0
2019.12.14 20:07:53 1: uR: SENSOR_2 = 0.0
2019.12.14 20:07:53 1: uR: SENSOR_2 = 0.0
2019.12.14 20:07:53 1: uR: SENSOR_2 = 0.0
2019.12.14 20:08:13 1: uR: SENSOR_2 = 1.0
2019.12.14 20:08:38 1: uR: SENSOR_2 = 0.0
2019.12.14 20:08:43 1: uR: SENSOR_2 = 1.0
2019.12.14 20:10:28 1: uR: SENSOR_2 = 0.0
2019.12.14 20:12:17 1: uR: SENSOR_2 = 1.0


DIES funktioniert wirklich, weil ich es mit einem Notify kontrolliert habe:


defmod ntf_sensor2_motionFreq notify SENSOR_2:MotionFreq.* { Log 1,"Notify MotionFreq: $NAME $EVENT";;}


Output im Log FAST wie erwartet: (man sieht, es sind INT nicht Float Werte - macht nix)


2019.12.14 20:50:48 1: uR: SENSOR_2 = 1.0
2019.12.14 20:50:48 1: Notify MotionFreq: SENSOR_2 MotionFreq: 1


Soweit - so gut :-)

Dann setze ich auf 'MotionFreq' einen event-aggregator - und es passiert NIX mehr :-(

...zuerst ganz banal - er soll zählen, wieviele Events es innerhalb von 300 Sekunden es gab:


attr SENSOR_2 event-aggregator MotionFreq::none:count:300:10


...leider will das Teil nicht mal zählen - und auch der Notify 'sieht' nie wieder ein Event von DEM userReading :-(

da die commandref nicht "lügt" - muss ich irgendwas hier ziemlich falsch machen - aber WAS?
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: amenomade am 14 Dezember 2019, 22:10:03
Wo hast Du "count" in den Methoden gesehen?
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: sz_wolfi am 14 Dezember 2019, 23:21:05
Zitat von: amenomade am 14 Dezember 2019, 22:10:03
Wo hast Du "count" in den Methoden gesehen?

'count' sollte doch die 'function' sein, weil 'interval' leer ist, 'none' ist die Methode:


attr SENSOR_2 event-aggregator MotionFreq::none:count:300:10


... nochmal genau nachgesehen --- das WIKI sagt, dass es 'count' gibt:
https://wiki.fhem.de/wiki/Event-aggregator

Allerdings - die commandref erwähnt das in der Tat nicht.

die syntax aus der commandref:  reading:interval:method:function:holdTime

OK - dann, gleiches Problem mit der integral Funktion.

'interval' darf ja leer bleiben ("With holdTime defined the interval can be kept undefined"),
weil ich ja 'holdTime' verwenden will (sonst wuerde er ja nur summieren, das waere ja praktisch 'count' :-)  )
'const' als 'method' --- 'integral' als 'function' - und 600 Sek als 'holdTime':


attr SENSOR_2 event-aggregator MotionFreq::const:integral:600


...geht genausowenig - bzw. macht nicht das was ich erwarte :-( - und das Reading bleibt auf 0.


Titel: Antw:Vertständnis von event-aggregator
Beitrag von: amenomade am 14 Dezember 2019, 23:30:40
Zeig mal ein "list" vom Device bitte


Du hast mind. ein Parameter zu viel.
MotionFreq::none:count:300:10
reading:interval:method:function:holdTime

Steht nichts in der Log?
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: sz_wolfi am 14 Dezember 2019, 23:35:50
hier in aller Pracht:


Internals:
   DEF        cff0272b 25
   FUUID      5d1a1c38-f33f-431b-666d-45f4a2bd6b1d28ad
   IMAGE      /fhem/deviceimages/zwave/ZC10-17115891
   IODev      ZSTICK
   LASTInputDev ZSTICK
   MSGCNT     1695
   NAME       SENSOR_2
   NR         209
   STATE      configGroup1Interval 300
   TYPE       ZWave
   ZSTICK_MSGCNT 1695
   ZSTICK_RAWMSG 00040019053105050136
   ZSTICK_TIME 2019-12-14 23:32:58
   ZWaveSubDevice no
   homeId     cff0272b
   isWakeUp   
   lastMsgSent 1576360994.9127
   nodeIdHex  19
   READINGS:
     2018-12-17 23:18:05   CMD             ZW_APPLICATION_UPDATE
     2019-12-14 23:29:12   MotionFreq      0
     2018-12-18 00:02:15   SEND_DATA       failed:00
     2019-12-07 07:11:16   UNPARSED        COLOR_CONTROL 0133
     2019-12-14 23:29:12   alarm           HomeSecurity: Event cleared: Previous Events cleared
     2019-12-14 23:28:48   alarmTime       2019-12-14 23:28:48
     2019-11-21 16:35:28   alarmTypeSupported HomeSecurity
     2018-12-17 23:10:04   assocGroup_1    Max 5 Nodes ZSTICK
     2018-12-17 23:10:04   assocGroups     1
     2019-12-14 23:29:12   basicSet        0
     2019-11-21 16:56:48   battery         100 %
     2019-11-21 16:56:48   batteryPercent  100
     2019-11-21 16:56:48   batteryState    ok
     2019-11-21 16:34:33   configAwakeTimeout 15
     2019-11-21 16:34:34   configBatteryReportingThreshold 10
     2019-11-21 16:34:34   configCommandOptions BasicSet
     2019-11-21 16:34:35   configCurrentPowerMode 2
     2019-11-21 16:34:35   configEnableDisableLockConfiguration Disable
     2019-11-21 16:34:36   configEnableDisableToSendAReportOn48 0
     2019-11-21 16:34:36   configEnableMotionSensor EnabledLevel5
     2019-11-21 16:34:36   configGetTheOutOfLimitStateOfThe61 0
     2019-11-22 17:29:41   configGroup1Interval 120
     2019-11-21 16:34:39   configGroup1Reports 240
     2019-11-21 16:34:39   configGroup2Interval 3600
     2019-11-21 16:34:40   configGroup2Reports 0
     2019-11-21 16:34:40   configGroup3Interval 3600
     2019-11-21 16:34:41   configGroup3Reports 0
     2019-11-21 16:34:41   configHumidityCalibration 3
     2019-11-21 16:34:42   configHumidityReportingThreshold 3
     2019-11-21 16:34:42   configLEDBlinkingReport EnableLEDBlinking
     2019-11-21 16:34:43   configLowBattery 20
     2019-11-21 16:34:43   configLowTempAlarm Enabled
     2019-11-21 16:34:44   configLuminanceCalibration 0
     2019-11-21 16:34:44   configLuminanceReportingThreshold 3
     2019-11-21 16:34:45   configOnTime    15
     2019-11-21 16:34:45   configReportOnlyOnThresholds Enabled
     2019-11-21 16:34:46   configSetTheLowerLimitValueOf50 256
     2019-11-21 16:34:46   configSetTheLowerLimitValueOf56 4
     2019-11-21 16:34:47   configSetTheLowerLimitValueOfHumidity52 50
     2019-11-21 16:34:49   configSetTheLowerLimitValueOfLighting54 100
     2019-11-21 16:34:49   configSetTheRecoverLimitValueOf57 5121
     2019-11-21 16:34:50   configSetTheRecoverLimitValueOf58 5
     2019-11-21 16:34:50   configSetTheRecoverLimitValueOf59 10
     2019-11-21 16:34:50   configSetTheRecoverLimitValueOf60 2
     2019-11-21 16:34:51   configSetTheUpperLimitValueOf49 18350336
     2019-11-21 16:34:51   configSetTheUpperLimitValueOf55 8
     2019-11-21 16:34:52   configSetTheUpperLimitValueOfHumidity51 60
     2019-11-21 16:34:53   configSetTheUpperLimitValueOfLighting53 1000
     2019-11-26 13:24:51   configTemperatureCalibration 61185
     2019-11-21 16:34:54   configTemperatureReportingThreshold 1310976
     2019-11-21 16:34:54   configTemperatureScale Celsius
     2019-11-21 16:34:55   configUVReportingThreshold 2
     2019-11-21 16:34:55   configUltravioletCalibration 0
     2019-11-21 16:34:56   configWakeUp10MinutesOnPowerOn EnableFr
     2019-12-14 23:32:58   dewPoint        9.58
     2019-12-14 23:32:58   humidity        54 %
     2019-12-14 23:32:56   luminance       22 Lux
     2019-10-10 22:01:57   model           AEON Labs ZW100 MultiSensor 6
     2019-10-10 22:01:57   modelConfig     aeotec/zw100.xml
     2019-10-10 22:01:57   modelId         0086-0002-0064
     2019-10-15 20:35:40   neighborList    STECKER_1 ALWAYS_ON ZBULB1 DIMMER_OFFICE THERMOSTAT_OFFICE1 THERMOSTAT_OFFICE2
     2019-11-21 16:38:47   neighborUpdate  done
     2019-11-21 16:33:54   powerlvl        current 0 remain 0
     2019-11-21 16:33:45   powerlvlTest    node 14 status 1 frameAck 100
     2019-10-06 17:06:25   reportedState   closed
     2019-10-26 05:49:52   seismicIntensity 0 mercalli
     2019-11-22 17:29:56   state           configGroup1Interval 300
     2019-12-14 23:32:58   temperature     19.1 C
     2019-12-14 23:03:15   timeToAck       0.223
     2019-12-14 23:03:15   transmit        OK
     2019-12-14 23:32:56   ultraviolet     0 UV
     2019-10-10 23:06:05   version         Lib 3 Prot 4.54 App 1.13 HW 100 FWCounter 0
     2019-12-14 23:03:12   wakeup          notification
Attributes:
   IODev      ZSTICK
   classes    ZWAVEPLUS_INFO VERSION MANUFACTURER_SPECIFIC ASSOCIATION_GRP_INFO ASSOCIATION POWERLEVEL ALARM BATTERY SENSOR_BINARY SENSOR_MULTILEVEL CONFIGURATION FIRMWARE_UPDATE_MD DEVICE_RESET_LOCALLY MARK
   comment    1
   devStateIcon .*:temperature_humidity
   event-aggregator MotionFreq::const:integral:600
   icon       temperature_humidity
   neighborListPos 104.69,351.19
   room       OFFICE,ZWave
   userReadings alarmTime:.*alarm.*Motion.* {ReadingsTimestamp("$NAME","alarm",99999); }, MotionFreq:basicSet.*
{ if (ReadingsNum("$NAME","basicSet",0) > 0) { Log 1,"uR: $NAME = 1.0"; return 1.0;} else {Log 1,"uR: $NAME = 0.0"; return 0.0;} }, dewPoint:temperature.* {urDewpoint($name)}
   vclasses   ALARM:3 ASSOCIATION:2 ASSOCIATION_GRP_INFO:1 BATTERY:1 CONFIGURATION:1 DEVICE_RESET_LOCALLY:1 FIRMWARE_UPDATE_MD:2 MANUFACTURER_SPECIFIC:2 POWERLEVEL:1 SENSOR_BINARY:1 SENSOR_MULTILEVEL:5 VERSION:2 WAKE_UP:2 ZWAVEPLUS_INFO:2


Titel: Antw:Vertständnis von event-aggregator
Beitrag von: sz_wolfi am 14 Dezember 2019, 23:49:17
Zitat von: amenomade am 14 Dezember 2019, 23:30:40
Du hast mind. ein Parameter zu viel.
MotionFreq::none:count:300:10
reading:interval:method:function:holdTime

ja, bei DER Version mit 'count' - in der Tat - aber akt. mit 'integral' sollte es korrekt sein:

event-aggregator MotionFreq::const:integral:600

Zitat
Steht nichts in der Log?

wie schon geschrieben: nein - also nix offensichtliches, keine Fehler etc.

die debug-Log-Meldungen des userReadings kommen nach wie vor im fhem-Log.
und im Sensor-Log-File - sieht alles ok aus, bis auf den Punkt, dass keine Updates von diesem userReading 'MotionFreq' erfolgen.
die anderen userReadings werden ja generiert. (z.B. 'alarmTime' und 'dewPoint' )

wenn ich das event-aggregator Attribut loesche, dann funktioniert der Notify auf das 'MotionFreq' Reading sofort wieder.
(und es kommen auch im Sensor_log-file die entsprechenden Meldungen)

ist der event-aggregator gesetzt - passiert nix mehr. :-(

Titel: Antw:Vertständnis von event-aggregator
Beitrag von: amenomade am 15 Dezember 2019, 00:04:58
Hmmm komisch. Ich kann das nicht reproduzieren.
Hast Du genüge Events auf basicSet, damit die Integrale auf der Periode nicht 0 ist?
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: amenomade am 15 Dezember 2019, 00:13:58
Kannst Du bei dir mit folgendem dummy testen?
defmod SENSOR_2_test dummy
attr SENSOR_2_test event-aggregator MotionFreq::const:integral:600
attr SENSOR_2_test readingList basicSet
attr SENSOR_2_test setList basicSet:slider,0,1,100
attr SENSOR_2_test userReadings MotionFreq:basicSet.* { if (ReadingsNum("$NAME","basicSet",0) > 0) { Log 1,"uR: $NAME = 1.0";; return 1.0;;} else {Log 1,"uR: $NAME = 0.0";; return 0.0;;} }
attr SENSOR_2_test webCmd basicSet
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: amenomade am 15 Dezember 2019, 00:58:37
Und bei Gelegenheit, zeig mal das Ergebnis von:
{ Dumper($defs{"SENSOR_2"}{READINGS}{"MotionFreq"}{".ts"}) } in der Kommandozeile
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: sz_wolfi am 15 Dezember 2019, 01:16:04

{ Dumper($defs{"SENSOR_2"}{READINGS}{"MotionFreq"}{".ts"}) }

$VAR1 = bless( {
                 '_M' => '222145.995299021',
                 '_S' => '535654274279.998',
                 '_t' => '1576368930.00505',
                 '_t0' => '1576368441.61963',
                 '_v' => 10000,
                 'autoreset' => undef,
                 'count' => 7,
                 'holdTime' => 600,
                 'integral' => '1332875.97179413',
                 'lost' => 0,
                 'max' => 10000,
                 'mean' => '2729.1477529466',
                 'median' => undef,
                 'method' => 'const',
                 'min' => 0,
                 'n' => 6,
                 'sd' => '4021.10899610649',
                 't' => '1576368930.00505',
                 't0' => '1576368441.61963',
                 'tSeries' => [
                                '1576368441.61963',
                                '1576368492.06582',
                                '1576368493.26136',
                                '1576368518.90147',
                                '1576368864.72274',
                                '1576368921.92403',
                                '1576368930.00505'
                              ],
                 'v' => 10000,
                 'v0' => 10000,
                 'vSeries' => [
                                10000,
                                0,
                                10000,
                                0,
                                10000,
                                0,
                                10000
                              ]
               }, 'TimeSeries' );


Titel: Antw:Vertständnis von event-aggregator
Beitrag von: sz_wolfi am 15 Dezember 2019, 01:17:11
Zitat von: amenomade am 15 Dezember 2019, 00:13:58
Kannst Du bei dir mit folgendem dummy testen?
defmod SENSOR_2_test dummy
attr SENSOR_2_test event-aggregator MotionFreq::const:integral:600
attr SENSOR_2_test readingList basicSet
attr SENSOR_2_test setList basicSet:slider,0,1,100
attr SENSOR_2_test userReadings MotionFreq:basicSet.* { if (ReadingsNum("$NAME","basicSet",0) > 0) { Log 1,"uR: $NAME = 1.0";; return 1.0;;} else {Log 1,"uR: $NAME = 0.0";; return 0.0;;} }
attr SENSOR_2_test webCmd basicSet


verhaelt sich bei mir wie 'bekannt':

a.) basicSet auf 100 - und 'set'
b.) F5 - zum web-reload - und MotionFreq steht auf '1'
c.) basicSet auf 0 - 'set' ---> reload -> MotionFreq ist '0'

...es gibt keine floating-point Zwischenwerte ... - also OK - alles auf 10k skalieren
dann sollten doch 4 Stellen fuer Integer Arithmetik uebrig sein :-)

mit 10000 und 0 probiert - gleiches Verhalten. nur 10k oder 0 - keine Zahl dazwischen.

im webif - wenn ich die 'raw definition' ein/aus-klappe - sehe ich den 'setstate' der Variablen.
die folgen 100% zeitsynchron einander ...

und das Reading loest keine Events/Updates im webif aus - die web-seite bleibt gleich.
erst ein 'Reload' - updated den Zeitstempel vom Reading - aber der Wert ist nur 10k oder 0.
(beim 'basicSet' Reading - sobald ich 'set' mache - wird die Zeit des Readings geupdated und rot gefaerbt, ohne reload)

... er integriert ueber die Zeit nicht.
und wenn ich die holdTime weglasse - muesste er doch hochzaehlen - macht er auch nicht.
der Zustand folgt einfach nur dem basicSet.

der fhem-update-check sagt 'nothing to do' - weil ich das schon heute vormittag gemacht hatte ;-)

Titel: Antw:Vertständnis von event-aggregator
Beitrag von: amenomade am 15 Dezember 2019, 01:27:10
Zitat'integral' => '1332875.97179413'
Also... wird doch kalkuliert.
Zitat                 'tSeries' => [
                                '1576368441.61963',
                                '1576368492.06582',
                                '1576368493.26136',
                                '1576368518.90147',
                                '1576368864.72274',
                                '1576368921.92403',
                                '1576368930.00505'
                              ],
                 'vSeries' => [
                                10000,
                                0,
                                10000,
                                0,
                                10000,
                                0,
                                10000
                              ]
und er hat mehrere Werte mit unterschiedlichen Timestamps gespeichert

Dein Problem ist wahrscheinlich eher ein Problem von Aktualisierung der Weboberfläsche.
Nw. hast Du mit meiner Definition ein slider neben dem Name, um direkt den Wert zu setzen. basicSet und MotionFreq sollten sofort aktualisieren.

Wie ist das longpoll Attribut auf deiner FHEMWEB (i.d.R. Name=WEB) Instanz gesetzt?

Titel: Antw:Vertständnis von event-aggregator
Beitrag von: sz_wolfi am 15 Dezember 2019, 01:56:13
Zitat von: amenomade am 15 Dezember 2019, 01:27:10
Also... wird doch kalkuliert.und er hat mehrere Werte mit unterschiedlichen Timestamps gespeichert

ACK! - das wuerde ich auch draus lesen :-)

Zitat
Dein Problem ist wahrscheinlich eher ein Problem von Aktualisierung der Weboberfläsche.
Nw. hast Du mit meiner Definition ein slider neben dem Name, um direkt den Wert zu setzen. basicSet und MotionFreq sollten sofort aktualisieren.

Wie ist das longpoll Attribut auf deiner FHEMWEB (i.d.R. Name=WEB) Instanz gesetzt?

vorher hatte ich longpoll gar nicht gesetzt. Laut Dok ist es dann aktiv.
dann habe ich mit 'attr WEB longpoll 1' probiert - kein Unterschied im UI.
dann mit 'attr WEB longpoll 0' - da updated er ja im webBrowser das basicSet nicht, wenn ich den Slider via 'set' setze.
... habe ich 'longpoll 1' - dann ist es wieder OK.

...das Reading "MotionFreq" muesste aber doch den Wert aus 'integral' aus dem Dumper-Output haben - richtig ?
und events generieren, auf die ein Notify triggert...
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: amenomade am 15 Dezember 2019, 02:12:14
Zitat von: sz_wolfi am 15 Dezember 2019, 01:56:13

...das Reading "MotionFreq" muesste aber doch den Wert aus 'integral' aus dem Dumper-Output haben - richtig ?
und events generieren, auf die ein Notify triggert...
Sollte, ja. Bzw. vielleicht nicht genau den gleichen Wert sondern den vorherign. Aber doch was.
Mir kommt im Moment keine neue Idee
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: sz_wolfi am 15 Dezember 2019, 16:01:43
Zitat von: amenomade am 15 Dezember 2019, 02:12:14
Sollte, ja. Bzw. vielleicht nicht genau den gleichen Wert sondern den vorherign. Aber doch was.
Mir kommt im Moment keine neue Idee

Danke erstmal - soweit ist mir jetzt klar, dass es 'im Prinzip' korrekt ist/war.
Muss irgendwas spez. an meiner Installation sein ... - zumindest DAS weiss ich jetzt.
Ich werde mir mal 'ne neue VM (centos-7.5) aufsetzen - und mit paar Dummies da weiter testen.
... ich update diesen Thread, wenn ich dazu gekommen bin :-)
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: sz_wolfi am 16 Dezember 2019, 10:01:14
1. Update: frische VM, neues fhem-5.9.tar -> SENSOR_2_test dummy: funktioniert ! - integrale werden angezeigt. - GEHT!

... jetzt muss ich diese 'funktionierende' fhem-instanz auf die alte VM dazu packen - um es weiter einzugrenzen. :-(
(liegt's an fhem - oder liegt's am perl ? - das OS ist ja beides mal gleich - bzw. 'fast gleich')

Titel: Antw:Vertständnis von event-aggregator
Beitrag von: sz_wolfi am 16 Dezember 2019, 10:11:29
2nd Update: frisches fhem-5.9 auf der gleichen VM geht AUCH ! - liegt also nicht am perl.

ich habe als "Produktions"-Release - mit fhem-5.7 angefangen - und das dauernd upgedatet.
(ein update-check sagt 'nothing to do ...')

scheint aber nicht das gleiche zu sein wie ein 'frisches' 5.9 :-(
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: sz_wolfi am 16 Dezember 2019, 12:36:49
3. Update:
fhem 5.9 'stock' (also das tar.gz ohne Updates) - funktioniert - und wenn ich da drin 'update' machen (also: 16.12.2019) -> geht's wieder NICHT mehr!
wird (fuer mich) akt. etwas zu aufwaendig, das Update (was ja nicht gerade klein ist) weiter zu zerpflücken :-(
... aber soweit kann ich es rel. sicher eingrenzen.
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: mumpitzstuff am 16 Dezember 2019, 17:47:59
Ich habe nicht alles gelesen aber kannst du mal probieren folgendes zurückzubauen?

https://forum.fhem.de/index.php/topic,92841.0.html (https://forum.fhem.de/index.php/topic,92841.0.html)

Dieser Patch wurde vor kurzem eingecheckt und hat jetzt vielleicht doch andere Auswirkungen als gedacht.
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: sz_wolfi am 16 Dezember 2019, 21:35:16
Zitat von: mumpitzstuff am 16 Dezember 2019, 17:47:59
Ich habe nicht alles gelesen aber kannst du mal probieren folgendes zurückzubauen?

https://forum.fhem.de/index.php/topic,92841.0.html (https://forum.fhem.de/index.php/topic,92841.0.html)

Dieser Patch wurde vor kurzem eingecheckt und hat jetzt vielleicht doch andere Auswirkungen als gedacht.

bingo!


fhem:/opt/fhem # diff -u fhem.pl-ORIG fhem.pl
--- fhem.pl-ORIG        2019-12-16 21:29:19.686210089 +0100
+++ fhem.pl     2019-12-16 21:31:42.283311657 +0100
@@ -4874,8 +4874,10 @@
       } else {
         require "TimeSeries.pm";
         $ts = TimeSeries->new( { method => $method,
-                  autoreset=>(looks_like_number($duration) ? $duration:undef),
-                  holdTime =>(looks_like_number($holdTime) ? $holdTime:undef)});
+                  autoreset => $duration,
+                  holdTime => $holdTime } );
+#                  autoreset=>(looks_like_number($duration) ? $duration:undef),
+#                  holdTime =>(looks_like_number($holdTime) ? $holdTime:undef)});
         $readings->{".ts"}= $ts;
         # access from command line:
         # { $defs{"myClient"}{READINGS}{"myValue"}{".ts"}{max} }


wenn ich die zwei Zeilen so zurückbaue - geht's wieder :-)
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: sz_wolfi am 16 Dezember 2019, 22:55:48
...jetzt  habe ich noch einen weiteren kleinen Bug:

ich nehme diesen Dummy:   --- Integral ueber 60 Sekunden:


defmod AGGR_test dummy
attr AGGR_test event-aggregator MotionFreq::const:integral:60
attr AGGR_test readingList basicSet
attr AGGR_test room TESTING
attr AGGR_test setList basicSet:slider,0,1,100
attr AGGR_test userReadings MotionFreq:basicSet.* { if (ReadingsNum("$NAME","basicSet",0) > 0) { Log 1,"uR: $NAME = 1";; return 1;;} else {Log 1,"uR: $NAME = 0";; return 0;;} }
attr AGGR_test webCmd basicSet


und dieses DOIF - um den Dummy - alle 5 sek umzuschalten:


defmod doif_half DOIF ( [+00:00:05] and [AGGR_test:basicSet] == 0 )\
( { Log 1,"doif_half: set to 1";;} set AGGR_test basicSet 1;;)\
DOELSEIF\
( [+00:00:05] and [AGGR_test:basicSet] == 1 )\
( { Log 1,"doif_half: set to 0";;} set AGGR_test basicSet 0;;)
attr doif_half disable 0
attr doif_half do always
attr doif_half room TESTING


...also - alle 5 Sek toggle zwischen 0 und 1

MEINE Erwartung waere - dass das Integral - ueber 60 Sek - immer '30' ist.
aber das Reading geht dauernd hoeher ... ist jetzt bei 299.x - also 300 !

äh - Moment - da war ja was vorher:


{ Dumper($defs{"AGGR_test"}{READINGS}{"MotionFreq"}{".ts"}) }


und schon kommt die Antwort: (nur der Anfang - langt aber um die Loesung zu sehen):


$VAR1 = bless( {
                 '_M' => '2.49998664259911',
                 '_S' => '789.285900270158',
                 '_t' => '1576531377.00512',
                 '_t0' => '1576530777.00487',
                 '_v' => 0,
                 'autoreset' => '',
                 'count' => 121,
>>>>>>>                'holdTime' => 600,
                 'integral' => '299.998397111893',
                 'lost' => 0,


... die 'holdTime' - kann man nicht mehr im laufenden Betrieb ändern - via 'attr'.

Klar, das WEB-interface zeigt den 'neuen' Wert an - ist aber 'fake news'. ;-)

war auf 600 - und hatte sie später via 'attr' auf 60 "geändert".

Da hilft kein 'attribut'-Delete ( und neu setzen ) - nur ein fhem-restart :-(

ABER:
fuer '600' Sek 'holdtime' - und 50% "Tastverhältnis" - ist das Integral dann mit ~300 vollkommen korrekt.

... meine "Wusel"-Frequenz-Berechnung sollte dann funktionieren :-)
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: stromer-12 am 29 Dezember 2019, 18:25:41
Zitat von: sz_wolfi am 16 Dezember 2019, 21:35:16
bingo!


fhem:/opt/fhem # diff -u fhem.pl-ORIG fhem.pl
--- fhem.pl-ORIG        2019-12-16 21:29:19.686210089 +0100
+++ fhem.pl     2019-12-16 21:31:42.283311657 +0100
@@ -4874,8 +4874,10 @@
       } else {
         require "TimeSeries.pm";
         $ts = TimeSeries->new( { method => $method,
-                  autoreset=>(looks_like_number($duration) ? $duration:undef),
-                  holdTime =>(looks_like_number($holdTime) ? $holdTime:undef)});
+                  autoreset => $duration,
+                  holdTime => $holdTime } );
+#                  autoreset=>(looks_like_number($duration) ? $duration:undef),
+#                  holdTime =>(looks_like_number($holdTime) ? $holdTime:undef)});
         $readings->{".ts"}= $ts;
         # access from command line:
         # { $defs{"myClient"}{READINGS}{"myValue"}{".ts"}{max} }


wenn ich die zwei Zeilen so zurückbaue - geht's wieder :-)

Bei mir ebenso, nach zurückändern dieser beiden Zeilen, geht bei mir die Event-Aggregatoren wieder.
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: ergerd am 29 Dezember 2019, 18:34:41
Ich habe auch die beiden Zeilen wieder zurück geändert, weil event-aggregator nicht mehr funktioniert hat.

Grüße
ergerd
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: stromer-12 am 29 Dezember 2019, 20:17:33
Ich habe noch mal nachgesehen.
Wenn ich bei "median" für das Intervall eine ":0:" anstelle von "::" eintrage geht es mit der aktuellen fhem.pl wieder.
Für mich reicht das erst mal, ohne Änderungen an den Dateien vorzunehmen.
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: thymjan am 29 Dezember 2019, 20:19:57
Seit meinem FHEM-Dezember-Update funktioniert meine event-aggregator Konfiguration ebenfalls nicht mehr.
Folgendes habe ich benutzt um bei einem Sensor Ausreißer auszuschließen:
attr Sensor event-aggregator Messwert::none:median:900
Nun werden die Sensorwerte nicht mehr geloggt.
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: thymjan am 29 Dezember 2019, 20:21:18
Zitat von: stromer-12 am 29 Dezember 2019, 20:17:33
Ich habe noch mal nachgesehen.
Wenn ich bei "median" für das Intervall eine ":0:" anstelle von "::" eintrage geht es mit der aktuellen fhem.pl wieder.
Für mich reicht das erst mal, ohne Änderungen an den Dateien vorzunehmen.
Werde dies gleich mal testen...
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: mumpitzstuff am 29 Dezember 2019, 21:26:49
Sag bitte Bescheid ob es dann wieder funktioniert. Falls ja, werde ich die Doku dazu anpassen. Der Patch sollte eigentlich eine nervige Fehlermeldung im Log beheben, hat aber anscheinend unvorhergesehene Auswirkungen.
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: thymjan am 29 Dezember 2019, 22:01:38
Ich habe zwei Readings mit einem event-aggregator in einer Kommaseparierten Liste. Beim zweiten Reading in der Liste funktioniert die Null. Beim ersten scheint sich nichts zu ändern, hier greift die Konfiguration nicht.

Jetzt habe ich die fhem.pl zurückgeändert und die zwei Nullen wieder entfernt.

Melde mich sobald ich Ergebnisse habe...
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: thymjan am 30 Dezember 2019, 20:51:55
":0:" oder ehemalige fhem.pl-Version scheint vom Ergebnis doch gleich zu sein.

In folgender Reihe sortiert die median-Funktion die 0.4 nicht mehr aus. Dies hat vor dem update noch funktioniert.
Das kann aber auch an was anderem liegen:
2019-12-29_20:53:45 0.4
2019-12-29_20:53:45 352.5
2019-12-29_20:53:45 352.7
2019-12-29_20:53:48 352.6
2019-12-29_20:58:47 0.4
2019-12-29_20:58:48 352.6
2019-12-29_20:58:48 352.7
2019-12-29_20:58:50 352.7
2019-12-29_21:03:50 0.4
2019-12-29_21:03:50 352.5
2019-12-29_21:03:50 352.9
2019-12-29_21:03:53 352.7
2019-12-29_21:08:52 0.4
2019-12-29_21:08:52 352.7
2019-12-29_21:08:53 352.6
2019-12-29_21:08:55 352.8
2019-12-29_21:13:54 0.4
2019-12-29_21:13:55 352.7
2019-12-29_21:13:55 352.6
2019-12-29_21:13:58 352.9
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: mumpitzstuff am 31 Dezember 2019, 00:53:16
Hmm das ist tatsächlich eigenartig. Eigentlich sollte die 0.4 hier tatsächlich raus fliegen.

Ich schau mir erst mal das Problem mit :: und :0: noch mal genau an. Alles andere kann ich schlecht beurteilen, da ich nicht der Author des Event aggregators bin.

DOIF kann aber neuerdings auch sowas. Vielleicht liefert das ja bessere Ergebnisse.
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: thymjan am 01 Januar 2020, 15:29:09
Jetzt funktioniert mein event-aggregator wieder. Habe für alle drei voneinander abhängigen Readings (zwei davon userReadings) den Aggregator mit median definiert. Komisch, dass ein Reading allein nicht funktioniert.
Titel: Antw:Vertständnis von event-aggregator
Beitrag von: abc2006 am 24 Februar 2020, 12:47:57
Moin.
Ich schließ mich hier mal an:) Hatte das selbe Problem, nach einem Update (gerade eben) funktioniert es wieder.

Danke!