98_statistics.pm - fehlermeldung

Begonnen von the ratman, 08 Januar 2025, 09:31:11

Vorheriges Thema - Nächstes Thema

the ratman

grüß euch!
gleich vorweg - ich hab' keine ahnung warum, ich kenne das modul nicht und verwende es somit auch nicht bewusst, aber bei meinem alltäglichen /update restart kam eben einmalig folgende meldung:

2025.01.07 12:46:39 1: PERL WARNING: Use of uninitialized value in split at ./FHEM/98_statistics.pm line 798.
2025.01.07 12:46:39 1: stacktrace:
2025.01.07 12:46:39 1:     main::__ANON__                      called by ./FHEM/98_statistics.pm (798)
2025.01.07 12:46:39 1:     main::statistics_doStatisticDelta   called by ./FHEM/98_statistics.pm (470)
2025.01.07 12:46:39 1:     main::statistics_DoStatistics       called by ./FHEM/98_statistics.pm (300)
2025.01.07 12:46:39 1:     main::statistics_Notify             called by fhem.pl (3988)
2025.01.07 12:46:39 1:     main::CallFn                        called by fhem.pl (3900)
2025.01.07 12:46:39 1:     main::DoTrigger                     called by fhem.pl (4290)
2025.01.07 12:46:39 1:     main::Dispatch                      called by ./FHEM/00_HMUARTLGW.pm (1471)
2025.01.07 12:46:39 1:     main::HMUARTLGW_Parse               called by ./FHEM/00_HMUARTLGW.pm (1574)
2025.01.07 12:46:39 1:     main::HMUARTLGW_Read                called by fhem.pl (3988)
2025.01.07 12:46:39 1:     main::CallFn                        called by fhem.pl (789)
2025.01.08 09:23:34 1:
2025.01.08 09:23:34 1: Downloading https://fhem.de/fhemupdate/controls_fhem.txt
~~~snip~~~
scheinbar passiert auch nix weiter in den ersten 5 min. nach dem restart.
dies nur, falls es für jemanden hier interessant sein sollte ...
→do↑p!dnʇs↓shit←

Adimarantis

Also, wenn du kein statistics device verwendest, dann wäre das schon extrem seltsam.
Irgendwo wird das schon sein.
Schaut so aus als wäre da was mit den Statistics Readings in diesen HMUARTLGW device inkonsistent.
Könnte man jetzt einfach abfangen, sollte aber eigentlich nicht passieren und daher würde es Sinn machen rauszufinden was du (fehl-)konfiguriert hast um das Verhalten zu provizieren.

Kannst du dein statistics device suchen (list TYPE=statistics) und das Ergebnis posten?
Und in der Definition dieses Moduls müsste eigentlich irgendein Device vom Typ HMUARTLGW auftauchen. Von dem dann auch ein "list"

Danke,
Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

the ratman

uij, ich blöd ... du hast vollkommen recht!

list TYPE=statistics

Internals:
   DEF        wetterstation
   DEV_REGEXP wetterstation
   FUUID      64119157-f33f-f543-da14-950c352606ab3f13
   NAME       stat_regen
   NOTIFYDEV  global,wetterstation
   NR         297
   NTFY_ORDER 10-stat_regen
   PREFIX     stat
   STATE      Updated stats for: wetterstation
   TYPE       statistics
   eventCount 89
   READINGS:
     2025-01-08 09:24:14   monitoredDevicesCUL_HM wetterstation
     2025-01-08 11:59:55   nextPeriodChangeCalc 2025-01-08 12:59:55
     2025-01-08 12:53:17   state           Updated stats for: wetterstation
   fhem:
     modulVersion $Date: 2024-05-18 09:37:34 +0200 (Sat, 18 May 2024) $
     nextPeriodChangeTime 1736337595
Attributes:
   alias      regenstatistik
   excludedReadings wetterstation:humidity|wetterstation:brightness|wetterstation:windSpeed|wetterstation:temperature
   group      temperaturhilfen
   icon       weather_rain_gauge
   room       logik und schalten
   singularReadings wetterstation:rain:Delta:(Hour|Day)

also:

defmod stat_regen statistics wetterstation
attr stat_regen alias regenstatistik
attr stat_regen excludedReadings wetterstation:humidity|wetterstation:brightness|wetterstation:windSpeed|wetterstation:temperature
attr stat_regen group temperaturhilfen
attr stat_regen icon weather_rain_gauge
attr stat_regen room logik und schalten
attr stat_regen singularReadings wetterstation:rain:Delta:(Hour|Day)

setstate stat_regen Updated stats for: wetterstation
setstate stat_regen 2025-01-08 12:56:02 .wetterstation:rain LastValue: 14.455 ShowDate: 0 DecPlaces: 3
setstate stat_regen 2025-01-08 09:24:14 monitoredDevicesCUL_HM wetterstation
setstate stat_regen 2025-01-08 11:59:55 nextPeriodChangeCalc 2025-01-08 12:59:55
setstate stat_regen 2025-01-08 12:56:02 state Updated stats for: wetterstation

allerdings hab' ich an diesem modul auch schon ewig nix mehr gedreht.
gestern nachmittag (wie schon des öfteren) hat mir die wetterstation negative werte bei der regenmenge angezeigt, und ich hab' dann wie immer die readings gecleard. daraufhin ists - auch wie immer - brav weiter gelaufen.

werde also mal schauen, obs beim nächsten restart von fhem wieder einen fehler gibt, oder das nur die "nachwehen" von gestern waren.

derweil mal vielen dank fürs in-die-richtige-richtung stoßen!
→do↑p!dnʇs↓shit←

Adimarantis

Zitat von: the ratman am 08 Januar 2025, 13:02:19ich hab' dann wie immer die readings gecleard.
Na ich denke dann haben wir den Übeltäter - da saß der Bug wieder vorm Computer :)
Die Fehlermeldung war nämlich genau deswegen, weil ihm das stat... Reading gefehlt hat, er es aber erwartet hatte, da das "hiddenReading" (also mit "." vorne existiert hat (welches du bei deiner Löschaktion nicht erwischt hast).
Das gibt sich dann nach einem Lauf wieder. Könnte man absichern, ist aber ein so exotischer Fall, das ich dafür jetzt keine neue Version mache.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

the ratman

#4
thx fürs informieren.

dann mach' ich's wie früher: jedes negative reading per hand löschen - sind eh nur 4 stk. normalerweise. zumindest kann ich mich da nicht an fehlermeldungen erinnern.

aber wenn ich dich hier schon an der strippe hab: wäre es möglich, dass das statistikmodul negative werte rausschmeißt und durch 0 ersetzt, oder nur positive werte zulässt?
ich hoffe, ich lüge jetzt nicht, aber glaube mich zu erinnern, dass ich die negativen werte immer kriege, wenn die wetterstation ihren gesamt-regenzähler "rain" überdreht, also nicht mehr als 99.999 mm anzeigen kann.
→do↑p!dnʇs↓shit←

Adimarantis

Da würde ich einen anderen Weg gehen:
Definiere dir ein monotonic userReadings und lege deine Statistik stattdessen auf dieses
Auszug aus der Doku:
monotonic: wenn die Differenz zw. dem aktuellen und dem vorherigen Wert positiv ist wird diese Differenz zum Reading addiert. Damit lässt sich von einem Zähler der bei Stromverlust zurückgesetzt wird ein monoton wachsender Zähler ableiten.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

the ratman

das wäre natürlich auch möglich *g*
nochmal danke für deine hilfe!
→do↑p!dnʇs↓shit←

RalfRog

Hallo
Zitatdass das statistikmodul negative werte rausschmeißt und durch 0 ersetzt, oder nur positive werte zulässt

Wäre vermutlich auch kontraproduktiv, da es ja durchaus Fälle gibt wo positive und negative Werte normal sind.

Gruß Ralf
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder