condition c01: Use of uninitialized value $minInt in numeric lt (<)...

Begonnen von Rewe2000, 15 April 2020, 10:39:42

Vorheriges Thema - Nächstes Thema

Rewe2000

Hallo,

wer kann mir den Fehler zeigen, weshalb mein Doif problemlos das macht was es soll, aber dennoch bei jeder Ausführung folgende Warnung anzeigt:

condition c01: Use of uninitialized value $minInt in numeric lt (<) at fhem.pl line 4864.

Im Fhem Log taucht diese Warnung, selbst mit Verbose 5 nicht auf.

Anbei das List meines Doif:
Eigentlich nichts dramatisches, es soll alle 2 Minuten bestimmte Readings schreiben, welche ich dann in meine SQL Datenbank übernehme.
Internals:
   DEF        {[+:02];
my $Energie_NUeP_Einspeisung = ReadingsNum("Netzuebergabepunkt_Leistung","Netzeinspeisung",0);
my $Energie_NUeP_Bezug = ReadingsNum("Netzuebergabepunkt_Leistung","Netzbezug",0);
my $Energie_Hausverbrauch = ReadingsNum("Hausverbrauch","Energie",0);
my $Energie_PV_Leistung = ReadingsNum("PV_Leistung","Energie",0);
my $Energie_Batt_Ladung = ReadingsNum("Batt_Leistung","Batterieladung",0);
my $Energie_Batt_Abgabe = ReadingsNum("Batt_Leistung","Batterieabgabe",0);
my $Energie_Batt_Leistung = ReadingsNum("Batt_Leistung","state",0);
fhem("setreading Netzuebergabepunkt_Leistung Netzeinspeisung_kWh $Energie_NUeP_Einspeisung");
fhem("setreading Netzuebergabepunkt_Leistung Netzbezug_kWh $Energie_NUeP_Bezug");
fhem("setreading Hausverbrauch Energie_kWh $Energie_Hausverbrauch");
fhem("setreading PV_Leistung Energie_kWh $Energie_PV_Leistung");
fhem("setreading Batt_Leistung Batterieladung_kWh $Energie_Batt_Ladung");
fhem("setreading Batt_Leistung Batterieabgabe_kWh $Energie_Batt_Abgabe");
fhem("setreading Batt_Leistung Batterieleistung_W $Energie_Batt_Leistung")
}
   FUUID      5e92118c-f33f-7df9-c207-316a62792914ca87
   MODEL      Perl
   NAME       di_Energie_schreiben
   NOTIFYDEV  global
   NR         409
   NTFY_ORDER 50-di_Energie_schreiben
   STATE      cmd_1
   TYPE       DOIF
   VERSION    21224 2020-02-18 18:45:49
   READINGS:
     2020-04-15 10:32:00   block_01        executed
     2020-04-15 10:18:03   mode            enabled
     2020-04-12 10:58:00   state           cmd_1
     2020-04-15 10:32:00   timer_01_c01    15.04.2020 10:34:00
     2020-04-15 10:32:00   warning         condition c01: Use of uninitialized value $minInt in numeric lt (<) at fhem.pl line 4864.

   Regex:
     accu:
   condition:
     0          ::DOIF_time_once($hash,0,$wday);
my $Energie_NUeP_Einspeisung = ReadingsNum("Netzuebergabepunkt_Leistung","Netzeinspeisung",0);
my $Energie_NUeP_Bezug = ReadingsNum("Netzuebergabepunkt_Leistung","Netzbezug",0);
my $Energie_Hausverbrauch = ReadingsNum("Hausverbrauch","Energie",0);
my $Energie_PV_Leistung = ReadingsNum("PV_Leistung","Energie",0);
my $Energie_Batt_Ladung = ReadingsNum("Batt_Leistung","Batterieladung",0);
my $Energie_Batt_Abgabe = ReadingsNum("Batt_Leistung","Batterieabgabe",0);
my $Energie_Batt_Leistung = ReadingsNum("Batt_Leistung","state",0);
fhem("setreading Netzuebergabepunkt_Leistung Netzeinspeisung_kWh $Energie_NUeP_Einspeisung");
fhem("setreading Netzuebergabepunkt_Leistung Netzbezug_kWh $Energie_NUeP_Bezug");
fhem("setreading Hausverbrauch Energie_kWh $Energie_Hausverbrauch");
fhem("setreading PV_Leistung Energie_kWh $Energie_PV_Leistung");
fhem("setreading Batt_Leistung Batterieladung_kWh $Energie_Batt_Ladung");
fhem("setreading Batt_Leistung Batterieabgabe_kWh $Energie_Batt_Abgabe");
fhem("setreading Batt_Leistung Batterieleistung_W $Energie_Batt_Leistung")

   days:
   helper:
     DEVFILTER  ^global$
     NOTIFYDEV  global
     event      timer_1
     globalinit 1
     last_timer 1
     sleeptimer -1
     triggerDev
     triggerEvents:
       timer_1
     triggerEventsState:
       timer_1
   interval:
   intervalfunc:
   localtime:
     0          1586939640
   perlblock:
     0         
   realtime:
     0          10:34:00
   time:
     0          +:02
   timeCond:
     0          0
   timer:
     0          0
   timers:
     0           0
   triggertime:
     1586939640:
       localtime  1586939640
       hash:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   icon       helper_doif
   room       Hauskraftwerk
   verbose    5


Irgendwie habe ich schon so ziemlich alles umgestellt, was ich vermutet habe, aber die entscheidende Problemlösung war noch nicht dabei.

Hinweis:
Irgendwie seltsam, die Warnung kommt erst dann, wenn ich das folgende Reading schreibe:
fhem("setreading Batt_Leistung Batterieleistung_W $Energie_Batt_Leistung")

Entferne ich diese Zeile (die Variabenzuweisung bleibt im Doif), kommt keine Warnung.

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky


Rewe2000

Hallo Shadow3561,

danke für den Link.

Ich kann mir aber die Fehlermeldung auch hiermit nicht erklären, ich lege ja eigentlich nur das "state" Reading (Numerisch mit Vorzeichen -) in einer Perl Variable mit ReadingsNum() ab und schreibe diesen Numerischen Wert mit setstate in ein Userreading, wie mit den vielen anderen Variablen/Readings im gleichen Doif auch. Auch die Umstellung auf ReadingsVal() löst dieses Problem nicht.

Ich hätte nur gerne gewusst wo da genau das Problem liegt.

Ein Auszug des "state" Readings, welches bei mir Probleme bereitet:

-108
-81
0
-30
-42
-3
3
-81
120
126
114


Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

Shadow3561

Das Problem liegt im Vorzeichen.
ReadingsNum erwartet eine Zahl (ohne Vorzeichen)

Hast du es mal nach diesem Schema probiert?

my $Energie_Batt_Leistung = ([Batt_Leistung:state:d]);

Mit freundlichen Grüßen