Hauptmenü

DOIF mit eval fehler

Begonnen von Tobias, 12 Juni 2026, 15:58:06

Vorheriges Thema - Nächstes Thema

Tobias

Hi,

könnte mir jemand einmal einen hinweis geben wo der fehler ist? Ich seh es einfach nicht :(
Das Doif arbeitet, im webui seht alles fein aus, aber das log wird mir zugemüllt

Der Fehler:
2026.06.12 15:53:25 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 40147) line 1.
2026.06.12 15:53:25 3: eval: {   my $sum_DC = (ReadingsNum('PlenticorePlus8','Power_DC_Sum',0) + (ReadingsNum('PlenticorePlus10','_Leistung_gesamt',0)*1000));   
my $sum_AC = ReadingsNum('PlenticorePlus8','Total_AC_active_power',0) + ReadingsNum('PlenticorePlus10','Total_AC_Active_P',0);
   my $sum_Daily = ReadingsNum('PlenticorePlus8','Daily_Yield',0) + ReadingsNum('PlenticorePlus10','Daily_Yield',0);
   my $sum_Verbrauch_aktuell_gesamt = round(0.001 * (ReadingsNum ('PlenticorePlus8','Total_AC_active_power', 0) + ReadingsNum ('PlenticorePlus10','Total_AC_Active_P', 0) + ReadingsNum ('PlenticorePlus8','Total_active_power_(powermeter)', 0)), 3);
    fhem("setreading DOIF_PV_Summe TotalDCpower $sum_DC");
   fhem("setreading DOIF_PV_Summe Total_AC_Active_P $sum_AC");
   fhem("setreading DOIF_PV_Summe Daily_Yield $sum_Daily");
   fhem("setreading DOIF_PV_Summe Verbrauch_aktuell $sum_Verbrauch_aktuell_gesamt"); }

Hier die Definition:
defmod DOIF_PV_Summe DOIF ([PlenticorePlus8:Power_DC_Sum] or\
 [PlenticorePlus10:_Leistung_gesamt] or\
 [PlenticorePlus8:Total_AC_active_power] or\
 [PlenticorePlus10:Total_AC_Active_P] or\
 [PlenticorePlus8:Total_active_power_(powermeter)] or\
 [PlenticorePlus8:Daily_Yield] or\
 [PlenticorePlus10:Daily_Yield])\
( {\
  my $sum_DC = (ReadingsNum('PlenticorePlus8','Power_DC_Sum',0) + (ReadingsNum('PlenticorePlus10','_Leistung_gesamt',0)*1000));;\
  my $sum_AC = ReadingsNum('PlenticorePlus8','Total_AC_active_power',0) + ReadingsNum('PlenticorePlus10','Total_AC_Active_P',0);;\
  my $sum_Daily = ReadingsNum('PlenticorePlus8','Daily_Yield',0) + ReadingsNum('PlenticorePlus10','Daily_Yield',0);;\
  my $sum_Verbrauch_aktuell_gesamt = round(0.001 * (ReadingsNum ('PlenticorePlus8','Total_AC_active_power', 0) + ReadingsNum ('PlenticorePlus10','Total_AC_Active_P', 0) + ReadingsNum ('PlenticorePlus8','Total_active_power_(powermeter)', 0)), 3);;\
\
  fhem("setreading DOIF_PV_Summe TotalDCpower $sum_DC");;\
  fhem("setreading DOIF_PV_Summe Total_AC_Active_P $sum_AC");;\
  fhem("setreading DOIF_PV_Summe Daily_Yield $sum_Daily");;\
  fhem("setreading DOIF_PV_Summe Verbrauch_aktuell $sum_Verbrauch_aktuell_gesamt");;\
} )
attr DOIF_PV_Summe DbLogExclude .*
attr DOIF_PV_Summe do always
attr DOIF_PV_Summe room Photovoltaik
attr DOIF_PV_Summe stateFormat DC:TotalDCpower W | Usage: Verbrauch_aktuell W

setstate DOIF_PV_Summe DC:1703.62 W | Usage: 1.818 W
setstate DOIF_PV_Summe 2026-06-12 15:55:46 Daily_Yield 28218.58
setstate DOIF_PV_Summe 2026-06-12 15:55:46 Device PlenticorePlus8
setstate DOIF_PV_Summe 2026-06-12 15:55:46 TotalDCpower 1703.62
setstate DOIF_PV_Summe 2026-06-12 15:55:46 Total_AC_Active_P 1811
setstate DOIF_PV_Summe 2026-06-12 15:55:46 Verbrauch_aktuell 1.818
setstate DOIF_PV_Summe 2026-06-12 15:55:46 cmd 1
setstate DOIF_PV_Summe 2026-06-12 15:55:46 cmd_event PlenticorePlus8
setstate DOIF_PV_Summe 2026-06-12 15:55:46 cmd_nr 1
setstate DOIF_PV_Summe 2026-06-12 15:55:42 e_PlenticorePlus10_Daily_Yield 15702.68
setstate DOIF_PV_Summe 2026-06-12 15:55:42 e_PlenticorePlus10_Total_AC_Active_P 922.00
setstate DOIF_PV_Summe 2026-06-12 15:55:43 e_PlenticorePlus10__Leistung_gesamt 1.00354
setstate DOIF_PV_Summe 2026-06-12 15:55:44 e_PlenticorePlus8_Daily_Yield 12515.90
setstate DOIF_PV_Summe 2026-06-12 15:55:46 e_PlenticorePlus8_Power_DC_Sum 700.08
setstate DOIF_PV_Summe 2026-06-12 15:55:38 e_PlenticorePlus8_Total_AC_active_power 889.00
setstate DOIF_PV_Summe 2026-06-12 15:46:07 mode enabled
setstate DOIF_PV_Summe 2026-06-12 15:55:46 state cmd_1
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Damian

Offenbar wird beim Vergleich mit > ein leeres Reading übergeben, was nicht numerisch ist. Da ich keinen Vergleich in deiner Definition sehe, gehe ich davon aus, dass es aus einer Funktion kommt, evtl. round
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF