event-aggregator und Standardabweichung (sd)

Begonnen von andies, 11 Oktober 2020, 22:06:03

Vorheriges Thema - Nächstes Thema

andies

Sehe ich das richtig, dass bei der Verwendung von
Internals:
   CID        DVES_4AA261
   DEF        DVES_4AA261
   DEVICETOPIC Salzmenge
   FUUID      5f48f797-f33f-1115-d998-6095cba9d5095874
   FVERSION   10_MQTT2_DEVICE.pm:0.224580/2020-07-24
   IODev      Mosquitto
   LASTInputDev Mosquitto
   MSGCNT     4970
   Mosquitto_MSGCNT 4970
   Mosquitto_TIME 2020-10-11 22:02:19
   NAME       Salzmenge
   NR         437
   STATE      26.3 cm
   TYPE       MQTT2_DEVICE
   Helper:
     DBLOG:
       AverageDistance:
         DbLog:
           TIME       1602446539.62846
           VALUE      26.3294490238612
       Heap:
         DbLog:
           TIME       1602439579.26357
           VALUE      23
       LoadAvg:
         DbLog:
           TIME       1602439579.26357
           VALUE      21
       MqttCount:
         DbLog:
           TIME       1602439579.26357
           VALUE      1
       QuadraticDistance:
         DbLog:
           TIME       1602446299.6758
           VALUE      733.76
       SR04_Distance:
         DbLog:
           TIME       1602446539.62846
           VALUE      27.491
       Schwankung:
         DbLog:
           TIME       1602446539.62846
           VALUE      27.49
       Sleep:
         DbLog:
           TIME       1602439579.26357
           VALUE      50
       SleepMode:
         DbLog:
           TIME       1602439579.26357
           VALUE      Dynamic
       Time:
         DbLog:
           TIME       1602439579.3176
           VALUE      2020-10-11T19:06:18
       Uptime:
         DbLog:
           TIME       1602439579.26357
           VALUE      0T02:35:07
       UptimeSec:
         DbLog:
           TIME       1602439579.26357
           VALUE      9307
       Wifi_AP:
         DbLog:
           TIME       1602439579.26357
           VALUE      1
       Wifi_BSSId:
         DbLog:
           TIME       1602439579.26357
           VALUE      1A:E8:29:AA:44:A0
       Wifi_Channel:
         DbLog:
           TIME       1602439579.26357
           VALUE      1
       Wifi_Downtime:
         DbLog:
           TIME       1602439579.26357
           VALUE      0T00:00:06
       Wifi_LinkCount:
         DbLog:
           TIME       1602439579.26357
           VALUE      1
       Wifi_RSSI:
         DbLog:
           TIME       1602439579.26357
           VALUE      100
       Wifi_SSId:
         DbLog:
           TIME       1602439579.26357
           VALUE      WLAN-120954
       Wifi_Signal:
         DbLog:
           TIME       1602439579.26357
           VALUE      -38
   OLDREADINGS:
   READINGS:
     2020-10-11 22:02:19   AverageDistance 26.3294490238612
     2020-10-11 17:31:19   FallbackTopic   cmnd/DVES_4AA261_fb/
     2020-10-11 17:31:19   GroupTopic      cmnd/tasmotas/
     2020-10-11 22:02:19   Heap            24
     2020-10-11 17:31:19   Hostname        tasmota_4AA261-0609
     2020-10-11 17:31:19   IPAddress       192.168.2.56
     2020-10-11 17:31:19   LWT             Online
     2020-10-11 22:02:19   LoadAvg         19
     2020-10-11 17:31:19   Module          Generic
     2020-10-11 22:02:19   MqttCount       1
     2020-10-11 17:31:19   POWER           
     2020-10-11 17:31:19   RestartReason   Power On
     2020-10-11 22:02:19   SR04_Distance   27.491
     2020-10-11 22:02:19   Schwankung      27.49
     2020-10-11 22:02:19   Sleep           50
     2020-10-11 22:02:19   SleepMode       Dynamic
     2020-10-11 22:02:19   Time            2020-10-11T21:02:19
     2020-10-11 22:02:19   Uptime          0T04:31:08
     2020-10-11 22:02:19   UptimeSec       16268
     2020-10-11 17:31:19   Version         8.3.1(sensors)
     2020-10-11 17:31:19   WebServerMode   Admin
     2020-10-11 22:02:19   Wifi_AP         1
     2020-10-11 22:02:19   Wifi_BSSId      1A:E8:29:AA:44:A0
     2020-10-11 22:02:19   Wifi_Channel    1
     2020-10-11 22:02:19   Wifi_Downtime   0T00:00:06
     2020-10-11 22:02:19   Wifi_LinkCount  1
     2020-10-11 22:02:19   Wifi_RSSI       100
     2020-10-11 22:02:19   Wifi_SSId       WLAN-120954
     2020-10-11 22:02:19   Wifi_Signal     -40
Attributes:
   IODev      Mosquitto
   event-aggregator AverageDistance::none:mean:43200, Schwankung::none:sd:43200
   readingList ...
   stateFormat {0.1*int(10*ReadingsVal($name, "AverageDistance", "offline")+0.5)." cm"}
   userReadings AverageDistance {0.01*int(100*ReadingsNum($name, "SR04_Distance", 0)+0.05)}, Schwankung {0.01*int(100*ReadingsNum($name, "SR04_Distance", 0)+0.05)}

ich im Reading Schwankung mit Hilfe des event-aggregators die Schwankung (Standardweichung) des Abstandes SR04_distance erfasse? Darunter würde ich so etwas wie
Zitat1/Anzahl Beobachtung * ( Summe(Schwankung^2)-Summe^2(Schwankung) )
verstehen. Weiß jemand, was da genau gerechnet wird? Die Werte passen nicht richtig.

Ich hatte auch mit anderen Varianten Probleme. Es scheint so zu sein, dass man den event-aggregator in einem device nur mit einem Reading anwenden kann, nicht aber mit zwei Readings eines devices (weil er eben Events und nicht Werte aggregiert). In der comandref steht dann, dass man das reading "zB mit einem notify duplizieren" soll. Reicht denn nicht die Duplikation wie oben bei mir mit einem userreading?
Also das Problem bestand darin, dass der event-aggregator beim zweiten Reading nicht aggregierte, sondern einfach das ursprüngliche Reading wiedergab.
FHEM 6.1 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

andies

Ich muss, glaube ich, die Frage einfacher formulieren. Geht so etwas hier:
defmod Salzmenge <whatever>
attr Salzmenge event-aggregator Schwankung::none:sd:43200, AverageDistance::none:mean:43200
attr Salzmenge userReadings AverageDistance {ReadingsNum($name, "Distance", 0)}, Schwankung {ReadingsNum($name, "Distance", 0)}

Bei mir wird nur das erste Reading (Schwankung) korrekt wiedergegeben, nicht das zweite (AverageDistance).
FHEM 6.1 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

andies

Also, ich habe folgendes bemerkt. Wenn die beiden Readings, die eventaggregiert werden sollen, ohne Leerzeichen und nur mit einem Komma getrennt werden
attr <device> event-aggregator Schwankung::none:sd:43200,AverageDistance::none:mean:43200
dann werden beide korrekt aktualisiert!
FHEM 6.1 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann