Unterstützungssuche bei Warnungfehlern (stacktrace 1)

Begonnen von flummy1978, 07 Februar 2025, 15:15:08

Vorheriges Thema - Nächstes Thema

flummy1978

Hallo zusammen,

nachdem ich mich vor einiger Zeit daran begeben habe, alle meine Geräte auf etwaige Warnungen zu kontrolliere, bin ich recht weit gekommen, dass ich (fast) alles gefunden habe. Nun habe ich aber in der stacktrace Meldung aber so meine Probleme zu erkennen, WOHER der Fehler nun tatsächlich kommt.

Ich habe zwei Warnungen mit den ich nichts anfangen kann. Kommen sie nun von meinem Aufruf, dem DbLog Modul? ElectricityCalculator? MQTT2_SERVER? Oder ganz wo anders her?
Woran kann ich mich in solchen Fällen richten?

In dieser Zeit werden Verbräuche resettet und ich schreibe zusätzliche Logwerte um Plotabrisse zu vermeiden.... das nur so als Hinweis. Ich könnte mir vorstellen, dass es sich hierbei um meine eigenen Werte handelt, finde dort aber einfach keinen Fehler ;(

Vielleicht kann mir da jemand unter die Arme greifen...

Vielen Dank schon im Voraus
VG
Andreas

Fehlermeldungen:
2025.02.07 00:00:01.055 1: stacktrace:
2025.02.07 00:00:01.055 1:     main::__ANON__                      called by (eval 14165138) (2)
2025.02.07 00:00:01.056 1:     (eval)                              called by ./FHEM/93_DbLog.pm (1390)
2025.02.07 00:00:01.056 1:     (eval)                              called by ./FHEM/93_DbLog.pm (1241)
2025.02.07 00:00:01.056 1:     main::DbLog_Log                     called by fhem.pl (3983)
2025.02.07 00:00:01.056 1:     main::CallFn                        called by ./FHEM/98_freezemon.pm (1235)
2025.02.07 00:00:01.056 1:     main::freezemon_callFn              called by ./FHEM/98_freezemon.pm (1348)
2025.02.07 00:00:01.057 1:     main::__ANON__                      called by fhem.pl (3900)
2025.02.07 00:00:01.057 1:     main::DoTrigger                     called by fhem.pl (5017)
2025.02.07 00:00:01.057 1:     main::readingsEndUpdate             called by fhem.pl (5200)
2025.02.07 00:00:01.057 1:     main::readingsSingleUpdate          called by ./FHEM/73_ElectricityCalculator.pm (996)
2025.02.07 00:00:01.057 1:     main::ElectricityCalculator_Notify  called by fhem.pl (3983)
2025.02.07 00:00:01.058 1:     main::CallFn                        called by ./FHEM/98_freezemon.pm (1235)
2025.02.07 00:00:01.058 1:     main::freezemon_callFn              called by ./FHEM/98_freezemon.pm (1348)
2025.02.07 00:00:01.058 1:     main::__ANON__                      called by fhem.pl (3900)
2025.02.07 00:00:01.058 1:     main::DoTrigger                     called by fhem.pl (4290)
2025.02.07 00:00:01.058 1:     main::Dispatch                      called by ./FHEM/00_MQTT2_SERVER.pm (587)
2025.02.07 00:00:01.059 1:     main::MQTT2_SERVER_doPublish        called by ./FHEM/00_MQTT2_SERVER.pm (467)
2025.02.07 00:00:01.059 1:     main::MQTT2_SERVER_Read             called by fhem.pl (3983)
2025.02.07 00:00:01.059 1:     main::CallFn                        called by ./FHEM/98_freezemon.pm (1235)
2025.02.07 00:00:01.059 1:     main::freezemon_callFn              called by ./FHEM/98_freezemon.pm (1348)
2025.02.07 00:00:01.059 1:     main::__ANON__                      called by fhem.pl (789)
2025.02.07 00:01:00.097 1: PERL WARNING: Argument "" isn't numeric in numeric lt (<) at (eval 14167954) line 2.
2025.02.07 00:01:00.098 1: stacktrace:
2025.02.07 00:01:00.098 1:     main::__ANON__                      called by (eval 14167954) (2)
2025.02.07 00:01:00.098 1:     (eval)                              called by ./FHEM/93_DbLog.pm (1390)
2025.02.07 00:01:00.098 1:     (eval)                              called by ./FHEM/93_DbLog.pm (1241)
2025.02.07 00:01:00.098 1:     main::DbLog_Log                     called by fhem.pl (3983)
2025.02.07 00:01:00.099 1:     main::CallFn                        called by ./FHEM/98_freezemon.pm (1235)
2025.02.07 00:01:00.099 1:     main::freezemon_callFn              called by ./FHEM/98_freezemon.pm (1348)
2025.02.07 00:01:00.099 1:     main::__ANON__                      called by fhem.pl (3900)
2025.02.07 00:01:00.099 1:     main::DoTrigger                     called by fhem.pl (3347)
2025.02.07 00:01:00.099 1:     main::CommandTrigger                called by fhem.pl (1285)
2025.02.07 00:01:00.100 1:     main::AnalyzeCommand                called by ./FHEM/98_freezemon.pm (1256)
2025.02.07 00:01:00.100 1:     main::freezemon_AnalyzeCommand      called by ./FHEM/98_freezemon.pm (1366)
2025.02.07 00:01:00.100 1:     main::__ANON__                      called by fhem.pl (1136)
2025.02.07 00:01:00.100 1:     main::AnalyzeCommandChain           called by fhem.pl (4028)
2025.02.07 00:01:00.100 1:     main::fhem                          called by ./FHEM/99_myUtils.pm (492)
2025.02.07 00:01:00.101 1:     main::addLog                        called by (eval 14167952) (1)
2025.02.07 00:01:00.101 1:     (eval)                              called by fhem.pl (1180)
2025.02.07 00:01:00.101 1:     main::AnalyzePerlCommand            called by ./FHEM/98_DOIF.pm (2631)
2025.02.07 00:01:00.101 1:     main::ParseCommandsDoIf             called by ./FHEM/98_DOIF.pm (3056)
2025.02.07 00:01:00.101 1:     main::DOIF_cmd                      called by ./FHEM/98_DOIF.pm (3312)
2025.02.07 00:01:00.102 1:     main::DOIF_Trigger                  called by ./FHEM/98_DOIF.pm (3667)
2025.02.07 00:01:00.102 1:     main::DOIF_TimerTrigger             called by fhem.pl (3511)
2025.02.07 00:01:00.102 1:     main::HandleTimeout                 called by fhem.pl (710)

Die beiden Geräte hinzufügen sprengt die Zeichenanzahl. Setze ich dazu, falls benötigt :)

passibe

Zitat von: flummy1978 am 07 Februar 2025, 15:15:08In dieser Zeit werden Verbräuche resettet und ich schreibe zusätzliche Logwerte um Plotabrisse zu vermeiden....
Füg mal den Code hinzu, der das macht bzw. ein list der Devices, die hier beteiligt sind (vermutlich ein ElectricityCalculator und ein DOIF?).

DS_Starter

Diese Meldung kommt vermutlich aus DbLog, allerdings nur indirekt.
Du hast wahrscheinlich im ElectricityCalculator Device das Attr DbLogValueFn gesetzt. Diese Funktion wird im DbLog ausgewertet und wirft einen log. Fehler "Argument "" isn't numeric in numeric lt (<)" weil ein leeres Argument übergeben wurde.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

flummy1978

Moin,

ihr seid halt einfach gut - anders kann man das nicht sagen  :o

Zitat von: DS_Starter am 07 Februar 2025, 23:41:04Du hast wahrscheinlich im ElectricityCalculator Device das Attr DbLogValueFn gesetzt. Diese Funktion wird im DbLog ausgewertet und wirft einen log. Fehler "Argument "" isn't numeric in numeric lt (<)" weil ein leeres Argument übergeben wurde.

Absolut korrekt, genau das habe ich - aber eben eigentlich um 0 (oder unplausibles auszugrenzen, weil zwischen 0:00 Uhr und dem ersten Verbrauch natürlich Blödsinn rauskommt)

OnTopic für die Zukunft, ich will ja lernen, mit den Fehlern selbst umzugehen, die ich einbaue  :-X  .. @DS_Starter: Wie hast Du das gesehen, dass das (wahrscheinlich) vom Db_Log kommt? Weil Db_Log das erste Device in der Fehlerauflistung ist? Wie gehts dann weiter ? Zeile 1390 ?Ich meine der Code vom Modul ist ja ein paar Zeilen lang. Was mich halt zusätzlich verwirrt, sind die MyUtils, DOIF Aufrufe, die im gleichen Zuge genannt werden: Kommt das daher, dass das DOIF die Funktion Plot Abriss aufrufft und die Funktion dazu in einer MyUtils Datei sind?

Exemplarisch, eines der beiden Devices. Das andere sieht im DbLogValueFn genauso aus.

Vielen Dank Euch beiden :)

define Hauptzaehler ElectricityCalculator Hauptzaehler3PM:zaehlerstand:..*
attr Hauptzaehler BasicPricePerAnnum 120
attr Hauptzaehler Currency €
attr Hauptzaehler DbLogExclude .*
attr Hauptzaehler DbLogInclude wemos_.*
attr Hauptzaehler DbLogValueFn {\
if (($READING =~ /aver/) && ($VALUE < 0.1)){ $IGNORE=1;; }\
if (!$VALUE){ $IGNORE=1;; }\
}
attr Hauptzaehler DecimalPlace 3
attr Hauptzaehler ElectricityCounterOffset 0
attr Hauptzaehler ElectricityKwhPerCounts 1
attr Hauptzaehler ElectricityPricePerKWh 0.2832
attr Hauptzaehler MonthOfAnnualReading 12
attr Hauptzaehler MonthlyPayment 150
attr Hauptzaehler ReadingDestination CalculatorDevice
attr Hauptzaehler SiPrefixPower W
attr Hauptzaehler devStateStyle style="text-align:left;;;;"
attr Hauptzaehler event-aggregator .*_lang:120:none:median:1800, .*_test:180:none:median:600, .*_aver:180:none:median:600
attr Hauptzaehler event-min-interval .*test:600,.*lang:1800
attr Hauptzaehler event-on-change-reading .*
attr Hauptzaehler group Zähler
attr Hauptzaehler icon measure_power
attr Hauptzaehler room Keller
attr Hauptzaehler sortby 10
attr Hauptzaehler stateFormat <pre>\
WEMOS-Aktuell:         wemos_kwh_current kwh\
<br>\
Schnitt:              wemos_kwh_aver kwh\
<br>\
Zählerstand: Hauptzaehler3PM_zaehlerstand_CounterCurrent\
</pre>
attr Hauptzaehler userReadings wemos_kwh_current { sprintf("%.1f", (ReadingsNum($name,"Hauptzaehler3PM_zaehlerstand_PowerCurrent",0)*24/1000 ))},\
wemos_kwh_aver {\
                my $time_since_0 = time() -time_str2num(ReadingsTimestamp($name, "Hauptzaehler3PM_zaehlerstand_CounterDayLast", "1000"));;;;\
                if ($time_since_0 > 1) { my $var = sprintf("%.1f", (ReadingsNum($name,"Hauptzaehler3PM_zaehlerstand_EnergyDay",0))/$time_since_0*100000)}\
                else { return 0;; };;;;},\
wemos_kwh_max { sprintf("%.1f", (ReadingsNum($name,"Hauptzaehler3PM_zaehlerstand_PowerDayMax",0)*24/1000 ))},\
wemos_current_lang { sprintf("%.1f", (ReadingsNum($name,"Hauptzaehler3PM_zaehlerstand_PowerCurrent",0)*24/10000 ))}\

#   DEF        Hauptzaehler3PM:zaehlerstand:..*
#   FUUID      5ea4a486-f33f-8d79-1f8e-0a1fe5ce8217ac0c
#   NAME       Hauptzaehler
#   NR         160
#   NTFY_ORDER 10-Hauptzaehler
#   REGEXP     Hauptzaehler3PM:zaehlerstand:..*
#   STATE      <pre>
#WEMOS-Aktuell:         14.4 kwh
#<br>
#Schnitt:              15.2 kwh
#<br>
#Zählerstand: 74561.970
#</pre>
#   TYPE       ElectricityCalculator
#   eventCount 10428
#   Helper:
#     DBLOG:
#       wemos_current_lang:
#         DBLogging:
#           TIME       1739004241.55678
#           VALUE      1.1
#       wemos_kwh_aver:
#         DBLogging:
#           TIME       1739004241.55678
#           VALUE      15.2
#       wemos_kwh_current:
#         DBLogging:
#           TIME       1739004241.55678
#           VALUE      14.4
#       wemos_kwh_max:
#         DBLogging:
#           TIME       1738970525.04166
#           VALUE      864.0
#   READINGS:
#     2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_CounterCurrent 74561.970
#     2025-02-08 00:00:02   Hauptzaehler3PM_zaehlerstand_CounterDay1st 74556.650
#     2025-02-08 00:00:02   Hauptzaehler3PM_zaehlerstand_CounterDayLast 74556.640
#     2024-12-01 00:00:16   Hauptzaehler3PM_zaehlerstand_CounterMeter1st 73466.150
#     2024-12-01 00:00:17   Hauptzaehler3PM_zaehlerstand_CounterMeterLast 73466.140
#     2025-02-01 00:00:01   Hauptzaehler3PM_zaehlerstand_CounterMonth1st 74449.920
#     2025-02-01 00:00:01   Hauptzaehler3PM_zaehlerstand_CounterMonthLast 74449.910
#     2025-01-01 00:00:01   Hauptzaehler3PM_zaehlerstand_CounterYear1st 73952.430
#     2025-01-01 00:00:01   Hauptzaehler3PM_zaehlerstand_CounterYearLast 73952.420
#     2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyCostDay 1.507
#     2025-02-08 00:00:02   Hauptzaehler3PM_zaehlerstand_EnergyCostDayLast 3.784
#     2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyCostMeter 310.336
#     2024-12-01 00:00:16   Hauptzaehler3PM_zaehlerstand_EnergyCostMeterLast 1111.243
#     2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyCostMonth 31.733
#     2025-02-01 00:00:01   Hauptzaehler3PM_zaehlerstand_EnergyCostMonthLast 140.886
#     2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyCostYear 172.622
#     2025-01-01 00:00:01   Hauptzaehler3PM_zaehlerstand_EnergyCostYearLast 1248.957
#     2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyDay 5.320
#     2025-02-08 00:00:02   Hauptzaehler3PM_zaehlerstand_EnergyDayLast 13.360
#     2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyMeter 1095.820
#     2024-12-01 00:00:16   Hauptzaehler3PM_zaehlerstand_EnergyMeterLast 3923.880
#     2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyMonth 112.050
#     2025-02-01 00:00:01   Hauptzaehler3PM_zaehlerstand_EnergyMonthLast 497.480
#     2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyYear 609.540
#     2025-01-01 00:00:01   Hauptzaehler3PM_zaehlerstand_EnergyYearLast 4410.160
#     2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_FinanceReserve 109.664
#     2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_MonthMeterReading 3
#     2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_PowerCurrent 600.000
#     2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_PowerDayAver 2463.125
#     2025-02-08 09:37:11   Hauptzaehler3PM_zaehlerstand_PowerDayMax 36000.000
#     2025-02-08 05:21:13   Hauptzaehler3PM_zaehlerstand_PowerDayMin 188
#     2025-02-08 09:44:01   wemos_current_lang 1.1
#     2025-02-08 09:44:01   wemos_kwh_aver  15.2
#     2025-02-08 09:44:01   wemos_kwh_current 14.4
#     2025-02-08 09:44:01   wemos_kwh_max   864.0
#   helper:
#     gets:
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_CounterCurrent 74561.970
#       2025-02-08 00:00:02   Hauptzaehler3PM_zaehlerstand_CounterDay1st 74556.650
#       2025-02-08 00:00:02   Hauptzaehler3PM_zaehlerstand_CounterDayLast 74556.640
#       2024-12-01 00:00:16   Hauptzaehler3PM_zaehlerstand_CounterMeter1st 73466.150
#       2024-12-01 00:00:17   Hauptzaehler3PM_zaehlerstand_CounterMeterLast 73466.140
#       2025-02-01 00:00:01   Hauptzaehler3PM_zaehlerstand_CounterMonth1st 74449.920
#       2025-02-01 00:00:01   Hauptzaehler3PM_zaehlerstand_CounterMonthLast 74449.910
#       2025-01-01 00:00:01   Hauptzaehler3PM_zaehlerstand_CounterYear1st 73952.430
#       2025-01-01 00:00:01   Hauptzaehler3PM_zaehlerstand_CounterYearLast 73952.420
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyCostDay 1.507
#       2025-02-08 00:00:02   Hauptzaehler3PM_zaehlerstand_EnergyCostDayLast 3.784
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyCostMeter 310.336
#       2024-12-01 00:00:16   Hauptzaehler3PM_zaehlerstand_EnergyCostMeterLast 1111.243
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyCostMonth 31.733
#       2025-02-01 00:00:01   Hauptzaehler3PM_zaehlerstand_EnergyCostMonthLast 140.886
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyCostYear 172.622
#       2025-01-01 00:00:01   Hauptzaehler3PM_zaehlerstand_EnergyCostYearLast 1248.957
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyDay 5.320
#       2025-02-08 00:00:02   Hauptzaehler3PM_zaehlerstand_EnergyDayLast 13.360
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyMeter 1095.820
#       2024-12-01 00:00:16   Hauptzaehler3PM_zaehlerstand_EnergyMeterLast 3923.880
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyMonth 112.050
#       2025-02-01 00:00:01   Hauptzaehler3PM_zaehlerstand_EnergyMonthLast 497.480
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyYear 609.540
#       2025-01-01 00:00:01   Hauptzaehler3PM_zaehlerstand_EnergyYearLast 4410.160
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_FinanceReserve 109.664
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_MonthMeterReading 3
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_PowerCurrent 600.000
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_PowerDayAver 2463.125
#       2025-02-08 09:37:11   Hauptzaehler3PM_zaehlerstand_PowerDayMax 36000.000
#       2025-02-08 05:21:13   Hauptzaehler3PM_zaehlerstand_PowerDayMin 188
#       2025-02-08 09:44:01   wemos_current_lang 1.1
#       2025-02-08 09:44:01   wemos_kwh_aver  15.2
#       2025-02-08 09:44:01   wemos_kwh_current 14.4
#       2025-02-08 09:44:01   wemos_kwh_max   864.0
#     sets:
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_CounterCurrent 74561.970
#       2025-02-08 00:00:02   Hauptzaehler3PM_zaehlerstand_CounterDay1st 74556.650
#       2025-02-08 00:00:02   Hauptzaehler3PM_zaehlerstand_CounterDayLast 74556.640
#       2024-12-01 00:00:16   Hauptzaehler3PM_zaehlerstand_CounterMeter1st 73466.150
#       2024-12-01 00:00:17   Hauptzaehler3PM_zaehlerstand_CounterMeterLast 73466.140
#       2025-02-01 00:00:01   Hauptzaehler3PM_zaehlerstand_CounterMonth1st 74449.920
#       2025-02-01 00:00:01   Hauptzaehler3PM_zaehlerstand_CounterMonthLast 74449.910
#       2025-01-01 00:00:01   Hauptzaehler3PM_zaehlerstand_CounterYear1st 73952.430
#       2025-01-01 00:00:01   Hauptzaehler3PM_zaehlerstand_CounterYearLast 73952.420
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyCostDay 1.507
#       2025-02-08 00:00:02   Hauptzaehler3PM_zaehlerstand_EnergyCostDayLast 3.784
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyCostMeter 310.336
#       2024-12-01 00:00:16   Hauptzaehler3PM_zaehlerstand_EnergyCostMeterLast 1111.243
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyCostMonth 31.733
#       2025-02-01 00:00:01   Hauptzaehler3PM_zaehlerstand_EnergyCostMonthLast 140.886
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyCostYear 172.622
#       2025-01-01 00:00:01   Hauptzaehler3PM_zaehlerstand_EnergyCostYearLast 1248.957
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyDay 5.320
#       2025-02-08 00:00:02   Hauptzaehler3PM_zaehlerstand_EnergyDayLast 13.360
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyMeter 1095.820
#       2024-12-01 00:00:16   Hauptzaehler3PM_zaehlerstand_EnergyMeterLast 3923.880
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyMonth 112.050
#       2025-02-01 00:00:01   Hauptzaehler3PM_zaehlerstand_EnergyMonthLast 497.480
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_EnergyYear 609.540
#       2025-01-01 00:00:01   Hauptzaehler3PM_zaehlerstand_EnergyYearLast 4410.160
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_FinanceReserve 109.664
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_MonthMeterReading 3
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_PowerCurrent 600.000
#       2025-02-08 09:44:01   Hauptzaehler3PM_zaehlerstand_PowerDayAver 2463.125
#       2025-02-08 09:37:11   Hauptzaehler3PM_zaehlerstand_PowerDayMax 36000.000
#       2025-02-08 05:21:13   Hauptzaehler3PM_zaehlerstand_PowerDayMin 188
#       2025-02-08 09:44:01   wemos_current_lang 1.1
#       2025-02-08 09:44:01   wemos_kwh_aver  15.2
#       2025-02-08 09:44:01   wemos_kwh_current 14.4
#       2025-02-08 09:44:01   wemos_kwh_max   864.0
#   system:
#     DecimalPlace %.3f
#     SecondsToday 86400
#     SiPrefixPowerFactor 1
#
setstate Hauptzaehler <pre>\
WEMOS-Aktuell:         14.4 kwh\
<br>\
Schnitt:              15.2 kwh\
<br>\
Zählerstand: 74561.970\
</pre>
setstate Hauptzaehler 2025-02-08 09:44:01 .Hauptzaehler3PM_zaehlerstand_LastDV 0.010
setstate Hauptzaehler 2025-02-08 09:44:01 .Hauptzaehler3PM_zaehlerstand_LastDt 60
setstate Hauptzaehler 2025-02-08 09:44:01 .Hauptzaehler3PM_zaehlerstand_LastUpdateTimestampUnix 1739004241
setstate Hauptzaehler 2025-02-08 09:44:01 .Hauptzaehler3PM_zaehlerstand_PowerDayCount 438
setstate Hauptzaehler 2025-02-08 09:44:01 .Hauptzaehler3PM_zaehlerstand_PowerDaySum 1078848.902
setstate Hauptzaehler 2025-02-08 09:44:01 .Hauptzaehler3PM_zaehlerstand_PrevRead 74561.970
setstate Hauptzaehler 2025-02-08 09:44:01 .ReadingDestinationDeviceName Hauptzaehler
setstate Hauptzaehler 2025-02-08 09:44:01 Hauptzaehler3PM_zaehlerstand_CounterCurrent 74561.970
setstate Hauptzaehler 2025-02-08 00:00:02 Hauptzaehler3PM_zaehlerstand_CounterDay1st 74556.650
setstate Hauptzaehler 2025-02-08 00:00:02 Hauptzaehler3PM_zaehlerstand_CounterDayLast 74556.640
setstate Hauptzaehler 2024-12-01 00:00:16 Hauptzaehler3PM_zaehlerstand_CounterMeter1st 73466.150
setstate Hauptzaehler 2024-12-01 00:00:17 Hauptzaehler3PM_zaehlerstand_CounterMeterLast 73466.140
setstate Hauptzaehler 2025-02-01 00:00:01 Hauptzaehler3PM_zaehlerstand_CounterMonth1st 74449.920
setstate Hauptzaehler 2025-02-01 00:00:01 Hauptzaehler3PM_zaehlerstand_CounterMonthLast 74449.910
setstate Hauptzaehler 2025-01-01 00:00:01 Hauptzaehler3PM_zaehlerstand_CounterYear1st 73952.430
setstate Hauptzaehler 2025-01-01 00:00:01 Hauptzaehler3PM_zaehlerstand_CounterYearLast 73952.420
setstate Hauptzaehler 2025-02-08 09:44:01 Hauptzaehler3PM_zaehlerstand_EnergyCostDay 1.507
setstate Hauptzaehler 2025-02-08 00:00:02 Hauptzaehler3PM_zaehlerstand_EnergyCostDayLast 3.784
setstate Hauptzaehler 2025-02-08 09:44:01 Hauptzaehler3PM_zaehlerstand_EnergyCostMeter 310.336
setstate Hauptzaehler 2024-12-01 00:00:16 Hauptzaehler3PM_zaehlerstand_EnergyCostMeterLast 1111.243
setstate Hauptzaehler 2025-02-08 09:44:01 Hauptzaehler3PM_zaehlerstand_EnergyCostMonth 31.733
setstate Hauptzaehler 2025-02-01 00:00:01 Hauptzaehler3PM_zaehlerstand_EnergyCostMonthLast 140.886
setstate Hauptzaehler 2025-02-08 09:44:01 Hauptzaehler3PM_zaehlerstand_EnergyCostYear 172.622
setstate Hauptzaehler 2025-01-01 00:00:01 Hauptzaehler3PM_zaehlerstand_EnergyCostYearLast 1248.957
setstate Hauptzaehler 2025-02-08 09:44:01 Hauptzaehler3PM_zaehlerstand_EnergyDay 5.320
setstate Hauptzaehler 2025-02-08 00:00:02 Hauptzaehler3PM_zaehlerstand_EnergyDayLast 13.360
setstate Hauptzaehler 2025-02-08 09:44:01 Hauptzaehler3PM_zaehlerstand_EnergyMeter 1095.820
setstate Hauptzaehler 2024-12-01 00:00:16 Hauptzaehler3PM_zaehlerstand_EnergyMeterLast 3923.880
setstate Hauptzaehler 2025-02-08 09:44:01 Hauptzaehler3PM_zaehlerstand_EnergyMonth 112.050
setstate Hauptzaehler 2025-02-01 00:00:01 Hauptzaehler3PM_zaehlerstand_EnergyMonthLast 497.480
setstate Hauptzaehler 2025-02-08 09:44:01 Hauptzaehler3PM_zaehlerstand_EnergyYear 609.540
setstate Hauptzaehler 2025-01-01 00:00:01 Hauptzaehler3PM_zaehlerstand_EnergyYearLast 4410.160
setstate Hauptzaehler 2025-02-08 09:44:01 Hauptzaehler3PM_zaehlerstand_FinanceReserve 109.664
setstate Hauptzaehler 2025-02-08 09:44:01 Hauptzaehler3PM_zaehlerstand_MonthMeterReading 3
setstate Hauptzaehler 2025-02-08 09:44:01 Hauptzaehler3PM_zaehlerstand_PowerCurrent 600.000
setstate Hauptzaehler 2025-02-08 09:44:01 Hauptzaehler3PM_zaehlerstand_PowerDayAver 2463.125
setstate Hauptzaehler 2025-02-08 09:37:11 Hauptzaehler3PM_zaehlerstand_PowerDayMax 36000.000
setstate Hauptzaehler 2025-02-08 05:21:13 Hauptzaehler3PM_zaehlerstand_PowerDayMin 188
setstate Hauptzaehler 2025-02-08 09:44:01 wemos_current_lang 1.1
setstate Hauptzaehler 2025-02-08 09:44:01 wemos_kwh_aver 15.2
setstate Hauptzaehler 2025-02-08 09:44:01 wemos_kwh_current 14.4
setstate Hauptzaehler 2025-02-08 09:44:01 wemos_kwh_max 864.0


DS_Starter

#4
ZitatWie hast Du das gesehen, dass das (wahrscheinlich) vom Db_Log kommt? Weil Db_Log das erste Device in der Fehlerauflistung ist?
Man liest den Trace von unten nach oben. Das kann man sich wie eine Kette vorstellen, wo die relevanten Daten schrittweise verarbeitet wurden. Zuletzt taucht DbLog auf, wo durch die Auswertung des Codes der Fehler offensichtlich wurde.

ZitatWie gehts dann weiter ? Zeile 1390 ?
Jetzt könnte man meinen, DbLog sei der Verursacher. Ob es wirklich so ist erschließt sich erst wenn man sich den Code an der entsprechenden Stelle anschaut.
Es werden zwei Stellen angemerkt:

2025.02.07 00:00:01.056 1:    (eval)                              called by ./FHEM/93_DbLog.pm (1390)
2025.02.07 00:00:01.056 1:    (eval)                              called by ./FHEM/93_DbLog.pm (1241)

Die Zeile 1241 ist der Eingang zum "eval {...}" und hat für die Analyse keine weitere Bedeutung, es folgt ja eine weitere Stelle.
Die Zeile 1390 ist sehr verdächtig. Auch hier ist es ein eval welches die Auswertung der DbLogValueFn schützt. Und das führt automatisch auf eine User-Funktion im Attr DbLogValueFn. Es geht nur nicht hervor in welchem Ursprungsdevice es gesetzt ist, aber aus dem beschriebenen Kontext (73_ElectricityCalculator) war es sehr wahrscheinlich.

Wie lässt sich das nun vermeiden?
Die jetztige Funktion müsstest du so umschreiben, dass die Vergleichoperation nicht ausgeführt wird wenn $VALUE leer oder nicht definiert ist. Es könnte so aussehen:

attr Hauptzaehler DbLogValueFn {
    if ($READING =~ /aver/ && (!$VALUE || $VALUE < 0.1)) {
        $IGNORE=1;   
    }
}

LG
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

flummy1978

Zitat von: DS_Starter am 08 Februar 2025, 14:53:10Man liest den Trace von unten nach oben. Das kann man sich wie eine Kette vorstellen, wo die relevanten Daten schrittweise verarbeitet wurden. Zuletzt taucht DbLog auf, wo durch die Auswertung des Codes der Fehler offensichtlich wurde.

Vielen herzlichen Dank für die Erklärung und auch Deine mögliche Lösung. Ich war ja eigentlich gar nicht so schlecht mit der Vermutung und es wird mir sicher auch für die Zukunft helfen, wenn ich wieder versuche den stacktrace besser zu lesen ;)

Was mich jetzt noch stört:
Zitat von: DS_Starter am 08 Februar 2025, 14:53:10Die jetztige Funktion müsstest du so umschreiben, dass die Vergleichoperation nicht ausgeführt wird wenn $VALUE leer oder nicht definiert ist
Genau da war ich der Meinung, dass ich mit
if (($READING =~ /aver/) && ($VALUE < 0.1)){ $IGNORE=1; }
if (!$VALUE){ $IGNORE=1; }
}
hätte auch erreicht haben müssen oder was übersehe ich, warum es nicht funktioniert hat?

VG
Andreas

DS_Starter

ZitatGenau da war ich der Meinung, dass ich mit
Code Auswählen
if (($READING =~ /aver/) && ($VALUE < 0.1)){ $IGNORE=1; }
if (!$VALUE){ $IGNORE=1; }
}
hätte auch erreicht haben müssen oder was übersehe ich, warum es nicht funktioniert hat?
Das funktioniert schon, sofern $VALUE definiert ist UND einen numerischen Wert hat weil zunächst die erste Zeile abgearbeitet wird. Erfüllt $VALUE diese Bedingung nicht, kommt die Warnung im Log.
Du könntest deinen Code schon behalten, müsstest aber "if (!$VALUE){ $IGNORE=1; }" als erste Zeile einfügen damit ein nicht definiertes oder leeres $VALUE zuerst gecheckt wird. Mein Vorschlag fasst beides nur zusammen.

Grüße,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

flummy1978

Hallo Heiko,

Zitat von: DS_Starter am 09 Februar 2025, 23:34:13Das funktioniert schon, sofern $VALUE definiert ist UND einen numerischen Wert hat weil zunächst die erste Zeile abgearbeitet wird. Erfüllt $VALUE diese Bedingung nicht, kommt die Warnung im Log
Nochmal herzlichen Dank für deine Erklärung. Dummerweise habe ich natürlich die Reihenfolge dezent ignoriert -.-
in einem Fall wie diesem, ist das Testen auch schwieriger für mich.... Danke nochmal  :)

VG
Andreas