FHEM Forum

FHEM => Sonstiges => Thema gestartet von: kptkip am 11 November 2020, 10:29:42

Titel: Perl-Fehlermeldungen im Logfile
Beitrag von: kptkip am 11 November 2020, 10:29:42
Hallo,

ich habe in meinem Logfile haufenweise diese Meldung:
PERL WARNING: Use of uninitialized value in division (/) at (eval 49815) line 1.
2020.11.11 10:23:42 3: eval: {((split ' ',ReadingsVal($NAME,"root",0))[4])/1024}


Nach ausgiebiger Suche im Forum bin ich nicht über etwas gestolpert, was mich näher an die Ursache führt.
Bei ähnlichen Meldungen, die im Forum besprochen werden, ist immer eine *.pm Datei erwähnt, in der es Probleme gibt - die sehe ich hier aber nicht.

Hat jemand ne Idee, wo ich tiefer "buddeln" kann?

Gruß
Alex
Titel: Antw:Perl-Fehlermeldungen im Logfile
Beitrag von: MadMax-FHEM am 11 November 2020, 10:35:05
1. KEIN Fehler, eine Warnung ;)

2. aktiviere StackTrace, dann wird auch die "gesuchte" .pm "gemeldet" ;)

attr global stacktrace 1

Gruß, Joachim
Titel: Antw:Perl-Fehlermeldungen im Logfile
Beitrag von: frank am 11 November 2020, 10:36:07
eventuell ein userreading.
durchsuche mal deine fhem.cfg nach der angegebenen "split" funktion.
Titel: Antw:Perl-Fehlermeldungen im Logfile
Beitrag von: xenos1984 am 11 November 2020, 10:47:32
Klingt nach einem SYSMON (http://fhem.de/commandref.html#SYSMON) Device - da würde so eine Funktion gerade den benutzten Speicher auf dem Medium in GB umrechnen.
Titel: Antw:Perl-Fehlermeldungen im Logfile
Beitrag von: Christoph Morrison am 11 November 2020, 11:17:33

fhem/trunk $ grep -l -iR '[4])/1024' *


Keine Datei gefunden. Ist wohl entweder Code aus einem anderen Modul oder von dir selbst.
Titel: Antw:Perl-Fehlermeldungen im Logfile
Beitrag von: kptkip am 11 November 2020, 11:42:20
Wow - Jungs, ihr seid ja rasend schnell! Danke!

Ich schmöker' mal im System rum und meld mich nochmal.
Titel: Antw:Perl-Fehlermeldungen im Logfile
Beitrag von: kptkip am 11 November 2020, 12:05:41
Sodele:

Jetzt ist wieder Ruhe im Karton. Es war tatsächlich ein UserReading in einem Sysmon-Device.

Hier ein exemplarischer Auszug aus der fhem.cfg:
root_giga {((split ' ',ReadingsVal($NAME,"root",0))[4])/1024}
define FhemSchaltschrankSysMon dummy
setuuid FhemSchaltschrankSysMon 5df23732-f33f-57e4-8bb6-f44bc4d95e39479b
attr FhemSchaltschrankSysMon DbLogExclude .*
attr FhemSchaltschrankSysMon alias Fhem Schaltschrank
attr FhemSchaltschrankSysMon event-on-change-reading state
attr FhemSchaltschrankSysMon group Geräte
attr FhemSchaltschrankSysMon icon system_fhem
attr FhemSchaltschrankSysMon room Infrastruktur->System-Status
attr FhemSchaltschrankSysMon stateFormat Temperatur: cpu_temp_avg°C <br />CPU: CPULast <br />RAM: ram <br />Festplatte: root <br />Letzter Systemstart: starttime_text
attr FhemSchaltschrankSysMon userReadings CPULast {  \
my @wort = split / /, ReadingsVal($NAME,"loadavg",0);;\
return $wort[0]/4*100;;\
}, \


Wenn ich mich noch richtig erinner, wollte ich anno dazumal die Ausgabe der ermittelten Werte formatieren. Das rannte so also schon ne Weile so.

Ich nehme an, dass das hier:
attr FhemSchaltschrankSysMon userReadings CPULast {  \
my @wort = split / /, ReadingsVal($NAME,"loadavg",0);;\
return $wort[0]/4*100;;\
}

den Ärger verursacht, oder?

Wo hab ich denn da Eurer Meinung nach den Bock geschossen?

Gruß
Alex
Titel: Antw:Perl-Fehlermeldungen im Logfile
Beitrag von: Christoph Morrison am 11 November 2020, 12:32:09
Zitatdefine FhemSchaltschrankSysMon dummy

dummy? Ich dachte das ist ein SYSMON-Device?

ZitatIch nehme an, dass das hier:
Code: [Auswählen]
attr FhemSchaltschrankSysMon userReadings CPULast {  \
my @wort = split / /, ReadingsVal($NAME,"loadavg",0);;\
return $wort[0]/4*100;;\
}
den Ärger verursacht, oder?

Nein, das passt nicht zur Fehlermeldung.
Titel: Antw:Perl-Fehlermeldungen im Logfile
Beitrag von: kptkip am 11 November 2020, 15:12:52
Ja und nein ;-)

Ich habe drei dieser Devices - ein SysMon direkt auf dieser Instanz und zwei davon als Dummy von zwei weiteren FHEM-Instanzen (per FHEM2FHEM eingebunden).

Der Auszug war tatsächlich von nem Dummy rauskopiert.

Auf allen dreien (sowohl SysMon als auch Dummy) hatte ich das unserreading gesetzt. Hab das nun bei allen erstmal entfernt.
Titel: Antw:Perl-Fehlermeldungen im Logfile
Beitrag von: Otto123 am 11 November 2020, 15:44:58
Die erste Zeile passt doch zu der fraglichen Meldung?
Zitatroot_giga {((split ' ',ReadingsVal($NAME,"root",0))[4])/1024}

falsch ist die nicht, aber bei dem Ausspruch ein exemplarischer Auszug aus der fhem.cfg: ahne ich noch was  ::)
Titel: Antw:Perl-Fehlermeldungen im Logfile
Beitrag von: Christoph Morrison am 11 November 2020, 16:03:44
Zitat von: Otto123 am 11 November 2020, 15:44:58
Die erste Zeile passt doch zu der fraglichen Meldung?
falsch ist die nicht, aber bei dem Ausspruch ein exemplarischer Auszug aus der fhem.cfg: ahne ich noch was  ::)

Aber nicht zum gelisteten Device. Da fehlt das "Fleisch", nämlich das Device, in dem root_giga spezifiziert ist. Das gehört ja zu dem Device "davor", wo auch immer die Konfiguration angelegt ist.
Titel: Antw:Perl-Fehlermeldungen im Logfile
Beitrag von: Otto123 am 11 November 2020, 16:23:44
aber hierzu passt es
Zitat2020.11.11 10:23:42 3: eval: {((split ' ',ReadingsVal($NAME,"root",0))[4])/1024}

Es ist ja auch kein list, das ist einfach ein Stück fhem.cfg  ;) zufällig mit der ersten fraglichen Zeile ;)
Also ein list root_giga wäre besser :)
Titel: Antw:Perl-Fehlermeldungen im Logfile
Beitrag von: Christoph Morrison am 11 November 2020, 16:36:20
Zitat von: Otto123 am 11 November 2020, 16:23:44
Es ist ja auch kein list, das ist einfach ein Stück fhem.cfg  ;) zufällig mit der ersten fraglichen Zeile ;)

Um genau zu sein habe ich auf seine Frage geantwortet, ob der von ihm explizit zitierte Konfigurationsteil das Problem verursacht - und nein, das tut er nicht. Da wir aber nicht wissen, zu welchem Device root_giga gehört, tappen wir weiterhin im Dunklen.
Titel: Antw:Perl-Fehlermeldungen im Logfile
Beitrag von: kptkip am 12 November 2020, 09:52:34
Der o.g. Auschnitt war tatsächlich nur aus der fhem.cgf rauskopiert und damit natürlich nicht das "ganze Bild". Mir ging es ja auch zunächst nur um den Code, den ich im UserReading hatte.

Ich hatte das UserReading zwischenzeitlich komplett entfernt und das Logfile dann war auch tatsächlich nicht mehr voll mit Warnings. Jetzt habe ich es zu Analysezwecken wieder so rekonstruiert, wie es ursprünglich war:

Hier das list:
Internals:
   DEF        1 1 1 10
   FUUID      5e394868-f33f-57e4-0ead-d263fe1b05443d36
   INTERVAL_BASE 60
   INTERVAL_MULTIPLIERS 1 1 1 10
   MODE       local
   NAME       FHEMServer_Sysmon
   NR         261
   STATE      Temperatur: 57.1°C <br />CPU: 28.5 <br />RAM: Total: 926.08 MB, Used: 492.71 MB, 53.20 %, Free: 64.56 MB <br />Festplatte: Total: 29134 MB, Used: 5756 MB, 21 %, Available: 22163 MB at / <br />Letzter Systemstart: 11.11.2020 13:13:51
   TYPE       SYSMON
   READINGS:
     2020-11-12 09:43:04   CPULast         28.5
     2020-11-12 09:43:02   cpu0_freq       1400
     2020-11-12 09:43:02   cpu0_freq_stat  600.00 1400.00 1373.29
     2020-11-12 09:43:04   cpu0_idle_stat  18.98 93.89 83.75
     2020-11-12 09:43:02   cpu1_freq       1400
     2020-11-12 09:43:02   cpu1_freq_stat  600.00 1400.00 1373.29
     2020-11-12 09:43:04   cpu1_idle_stat  0.08 94.60 62.26
     2020-11-12 09:43:02   cpu2_freq       1400
     2020-11-12 09:43:02   cpu2_freq_stat  600.00 1400.00 1373.29
     2020-11-12 09:43:04   cpu2_idle_stat  4.29 94.75 62.97
     2020-11-12 09:43:02   cpu3_freq       1400
     2020-11-12 09:43:02   cpu3_freq_stat  600.00 1400.00 1373.29
     2020-11-12 09:43:04   cpu3_idle_stat  23.01 91.67 85.16
     2020-11-11 20:15:01   cpu_bogomips    89.60
     2020-11-12 09:43:04   cpu_core_count  4
     2020-11-12 09:43:02   cpu_freq        1400
     2020-11-12 09:43:02   cpu_freq_stat   600.00 1400.00 1373.29
     2020-11-12 09:43:04   cpu_idle_stat   24.75 85.73 73.29
     2020-11-11 20:15:01   cpu_model_name  ARMv7 Processor rev 4 (v7l)
     2020-11-12 09:43:04   cpu_temp        56.92
     2020-11-12 09:43:04   cpu_temp_avg    57.1
     2020-11-12 09:43:04   cpu_temp_stat   52.08 66.60 57.11
     2020-11-12 09:43:04   eth0            RX: 2542.74 MB, TX: 1409.45 MB, Total: 3952.19 MB
     2020-11-12 09:43:04   eth0_diff       RX: 1.34 MB, TX: 0.74 MB, Total: 2.08 MB
     2020-11-12 09:43:04   eth0_ip         192.168.33.48
     2020-11-12 09:43:04   eth0_rx         2666252697
     2020-11-12 09:43:04   eth0_speed      1000
     2020-11-12 09:43:04   eth0_tx         1477918126
     2020-11-12 09:43:04   fhemstarttime   1605122043
     2020-11-12 09:43:04   fhemstarttime_text 11.11.2020 20:14:03
     2020-11-12 09:43:04   fhemuptime      48539
     2020-11-12 09:43:04   fhemuptime_text 0 days, 13 hours, 28 minutes
     2020-11-12 09:40:02   fs_root         Total: 29134 MB, Used: 5756 MB, 21 %, Available: 22163 MB at /
     2020-11-12 09:43:04   idletime        51993 70.50 %
     2020-11-12 09:43:04   idletime_text   0 days, 14 hours, 26 minutes (70.50 %)
     2020-11-12 09:43:04   loadavg         1.14 1.25 1.21
     2020-11-11 20:15:01   perl_version    v5.28.1
     2020-11-12 09:43:04   ram             Total: 926.08 MB, Used: 492.71 MB, 53.20 %, Free: 64.56 MB
     2020-11-12 09:43:04   ram_used_stat   405.09 797.39 494.07
     2020-11-12 09:43:04   starttime       1605096831
     2020-11-12 09:43:04   starttime_text  11.11.2020 13:13:51
     2020-11-12 09:43:04   stat_cpu        5927497 2391 1193933 20797590 495128 0 273878
     2020-11-12 09:43:04   stat_cpu0       1251958 786 172546 5349229 75925 0 248838
     2020-11-12 09:43:04   stat_cpu0_diff  464 1 78 5094 128 0 45
     2020-11-12 09:43:04   stat_cpu0_percent 7.99 0.02 1.34 87.68 2.20 0.00 0.77
     2020-11-12 09:43:04   stat_cpu0_text  user: 7.99 %, nice: 0.02 %, sys: 1.34 %, idle: 87.68 %, io: 2.20 %, irq: 0.00 %, sirq: 0.77 %
     2020-11-12 09:43:04   stat_cpu1       2016059 451 254368 4916937 131889 0 9519
     2020-11-12 09:43:04   stat_cpu1_diff  2383 0 195 3393 3 0 3
     2020-11-12 09:43:04   stat_cpu1_percent 39.87 0.00 3.26 56.77 0.05 0.00 0.05
     2020-11-12 09:43:04   stat_cpu1_text  user: 39.87 %, nice: 0.00 %, sys: 3.26 %, idle: 56.77 %, io: 0.05 %, irq: 0.00 %, sirq: 0.05 %
     2020-11-12 09:43:04   stat_cpu2       2059214 679 260985 4831742 163553 0 9851
     2020-11-12 09:43:04   stat_cpu2_diff  1454 0 115 4370 27 0 5
     2020-11-12 09:43:04   stat_cpu2_percent 24.35 0.00 1.93 73.19 0.45 0.00 0.08
     2020-11-12 09:43:04   stat_cpu2_text  user: 24.35 %, nice: 0.00 %, sys: 1.93 %, idle: 73.19 %, io: 0.45 %, irq: 0.00 %, sirq: 0.08 %
     2020-11-12 09:43:04   stat_cpu3       600266 475 506034 5699681 123760 0 5670
     2020-11-12 09:43:04   stat_cpu3_diff  600 0 389 4615 41 0 4
     2020-11-12 09:43:04   stat_cpu3_percent 10.62 0.00 6.89 81.70 0.73 0.00 0.07
     2020-11-12 09:43:04   stat_cpu3_text  user: 10.62 %, nice: 0.00 %, sys: 6.89 %, idle: 81.70 %, io: 0.73 %, irq: 0.00 %, sirq: 0.07 %
     2020-11-12 09:43:04   stat_cpu_diff   4901 1 777 17472 198 0 57
     2020-11-12 09:43:04   stat_cpu_percent 20.94 0.00 3.32 74.65 0.85 0.00 0.24
     2020-11-12 09:43:04   stat_cpu_text   user: 20.94 %, nice: 0.00 %, sys: 3.32 %, idle: 74.65 %, io: 0.85 %, irq: 0.00 %, sirq: 0.24 %
     2020-11-12 09:43:04   swap            Total: 100.00 MB, Used: 97.23 MB,  97.23 %, Free: 2.77 MB
     2020-11-12 09:43:04   swap_used_stat  0.00 100.00 97.22
     2020-11-12 09:43:04   uptime          73750
     2020-11-12 09:43:04   uptime_text     0 days, 20 hours, 29 minutes
     2020-11-12 09:43:04   wlan0           RX: 0.00 MB, TX: 0.00 MB, Total: 0 MB
     2020-11-12 09:43:04   wlan0_diff      RX: 0.00 MB, TX: 0.00 MB, Total: 0.00 MB
     2020-11-12 09:43:04   wlan0_rx        0
     2020-11-12 09:43:04   wlan0_tx        0
   helper:
     sys_cpu0_freq 1
     sys_cpu0_temp 0
     sys_cpu1_freq 1
     sys_cpu1_temp 0
     sys_cpu2_freq 1
     sys_cpu2_temp 0
     sys_cpu3_freq 1
     sys_cpu3_temp 0
     sys_cpu4_freq 0
     sys_cpu4_temp 0
     sys_cpu5_freq 0
     sys_cpu5_temp 0
     sys_cpu6_freq 0
     sys_cpu6_temp 0
     sys_cpu7_freq 0
     sys_cpu7_temp 0
     sys_cpu_freq_rpi_bbb 1
     sys_cpu_temp_rpi 1
     sys_fb     0
     sys_power_ac 0
     sys_power_bat 0
     sys_power_usb 0
     u_first_mark 1
     cur_readings_map:
       cpu0_freq  CPU frequency (core 0)
       cpu0_freq_stat CPU frequency (core 0) stat
       cpu0_idle_stat CPU0 min/max/avg (idle)
       cpu1_freq  CPU frequency (core 1)
       cpu1_freq_stat CPU frequency (core 1) stat
       cpu1_idle_stat CPU1 min/max/avg (idle)
       cpu2_freq  CPU frequency (core 2)
       cpu2_freq_stat CPU frequency (core 2) stat
       cpu2_idle_stat CPU2 min/max/avg (idle)
       cpu3_freq  CPU frequency (core 3)
       cpu3_freq_stat CPU frequency (core 3) stat
       cpu3_idle_stat CPU3 min/max/avg (idle)
       cpu4_idle_stat CPU4 min/max/avg (idle)
       cpu5_idle_stat CPU5 min/max/avg (idle)
       cpu6_idle_stat CPU6 min/max/avg (idle)
       cpu7_idle_stat CPU7 min/max/avg (idle)
       cpu_bogomips BogoMIPS
       cpu_core_count Number of CPU cores
       cpu_freq   CPU frequency
       cpu_freq_stat CPU frequency stat
       cpu_idle_stat CPU min/max/avg (idle)
       cpu_model_name CPU model name
       cpu_temp   CPU temperature
       cpu_temp_avg Average CPU temperature
       cpu_temp_stat CPU temperature stat
       date       Date
       eth0       Network adapter eth0
       eth0_diff  Network adapter eth0 (diff)
       eth0_ip    Network adapter eth0 (IP)
       eth0_ip6   Network adapter eth0 (IP6)
       eth0_rx    Network adapter eth0 (RX)
       eth0_speed Network adapter eth0 (speed)
       eth0_tx    Network adapter eth0 (TX)
       fhemstarttime Fhem start time
       fhemstarttime_text Fhem start time
       fhemuptime System up time
       fhemuptime_text FHEM up time
       fs_root    Root
       fs_root_free Root (free)
       fs_root_used Root (used)
       fs_root_used_percent Root (used %)
       idletime   Idle time
       idletime_text Idle time
       io_sda     TEST
       io_sda_diff TEST
       io_sda_raw TEST
       loadavg    Load average
       loadavg_1  Load average 1
       loadavg_15 Load average 15
       loadavg_5  Load average 5
       perl_version Perl Version
       ram        RAM
       ram_free   RAM free
       ram_free_percent RAM free %
       ram_total  RAM total
       ram_used   RAM used
       ram_used_stat RAM used stat
       starttime  System start time
       starttime_text System start time
       stat_cpu   CPU statistics
       stat_cpu0  CPU0 statistics
       stat_cpu0_diff CPU0 statistics (diff)
       stat_cpu0_percent CPU0 statistics (diff, percent)
       stat_cpu0_text CPU0 statistics (text)
       stat_cpu1  CPU1 statistics
       stat_cpu1_diff CPU1 statistics (diff)
       stat_cpu1_percent CPU1 statistics (diff, percent)
       stat_cpu1_text CPU1 statistics (text)
       stat_cpu2  CPU2 statistics
       stat_cpu2_diff CPU2 statistics (diff)
       stat_cpu2_percent CPU2 statistics (diff, percent)
       stat_cpu2_text CPU2 statistics (text)
       stat_cpu3  CPU3 statistics
       stat_cpu3_diff CPU3 statistics (diff)
       stat_cpu3_percent CPU3 statistics (diff, percent)
       stat_cpu3_text CPU3 statistics (text)
       stat_cpu4  CPU4 statistics
       stat_cpu4_diff CPU4 statistics (diff)
       stat_cpu4_percent CPU4 statistics (diff, percent)
       stat_cpu4_text CPU4 statistics (text)
       stat_cpu5  CPU5 statistics
       stat_cpu5_diff CPU5 statistics (diff)
       stat_cpu5_percent CPU5 statistics (diff, percent)
       stat_cpu5_text CPU5 statistics (text)
       stat_cpu6  CPU6 statistics
       stat_cpu6_diff CPU6 statistics (diff)
       stat_cpu6_percent CPU6 statistics (diff, percent)
       stat_cpu6_text CPU6 statistics (text)
       stat_cpu7  CPU7 statistics
       stat_cpu7_diff CPU7 statistics (diff)
       stat_cpu7_percent CPU7 statistics (diff, percent)
       stat_cpu7_text CPU7 statistics (text)
       stat_cpu_diff CPU statistics (diff)
       stat_cpu_idle_percent CPU statistics idle %
       stat_cpu_io_percent CPU statistics io %
       stat_cpu_irq_percent CPU statistics irq %
       stat_cpu_nice_percent CPU statistics nice %
       stat_cpu_percent CPU statistics (diff, percent)
       stat_cpu_sirq_percent CPU statistics sirq %
       stat_cpu_sys_percent CPU statistics sys %
       stat_cpu_text CPU statistics (text)
       stat_cpu_user_percent CPU statistics user %
       swap       swap
       swap_free  swap free
       swap_total swap total
       swap_used  swap used
       swap_used_percent swap used %
       swap_used_stat swap used stat
       uptime     System up time
       uptime_text System up time
       wlan0      Network adapter wlan0
       wlan0_diff Network adapter wlan0 (diff)
       wlan0_ip   Network adapter wlan0 (IP)
       wlan0_ip6  Network adapter wlan0 (IP6)
       wlan0_rx   Network adapter wlan0 (RX)
       wlan0_speed Network adapter wlan0 (speed)
       wlan0_tx   Network adapter wlan0 (TX)
     excludes:
Attributes:
   DbLogExclude .*
   alias      FHEM Serverschrank
   event-on-change-reading state
   filesystems fs_root:/:Root
   group      Geräte
   icon       system_fhem
   room       Infrastruktur->System-Status
   stateFormat Temperatur: cpu_temp_avg°C <br />CPU: CPULast <br />RAM: ram <br />Festplatte: fs_root <br />Letzter Systemstart: starttime_text
   userReadings CPULast {
my @wort = split / /, ReadingsVal($NAME,"loadavg",0);
return $wort[0]/4*100;
}


Was mich allerdings beim Analysieren mittlerweile auch beschäftigt, ist der eigentliche Inhalt, den ich da zusammen geschustert habe. Wobei das glaube ich, in einem gesonderten Diskussionsstrang behandelt werden sollte, ums nicht unnötig kompliziert zu machen.  :-)

Titel: Antw:Perl-Fehlermeldungen im Logfile
Beitrag von: Otto123 am 12 November 2020, 10:05:34
Aber es ist nach wie vor nicht ansatzweise der Code, der in der Fehlermeldung war (und im Post #9 extrahiert)  ::)
Titel: Antw:Perl-Fehlermeldungen im Logfile
Beitrag von: kptkip am 12 November 2020, 10:09:02
 Das stimmt, das ist aber der Relevante.
Titel: Antw:Perl-Fehlermeldungen im Logfile
Beitrag von: Otto123 am 12 November 2020, 10:15:26
Mit dieser unterschiedlichen Einstellung zu Relevanz wird sich das Warnsystem von Perl und Du aber wohl nie in Übereinstimmung finden.  ;D
Egal - dann machen wir hier einfach einen Haken dran ;)
Titel: Antw:Perl-Fehlermeldungen im Logfile
Beitrag von: Christoph Morrison am 12 November 2020, 10:17:12
Das kann auch nicht das richtige Device sein, denn da fehlt wieder der Teil, der in deiner Fehlermeldung bemängelt wird. Ich zitiere dich noch mal:

ZitatPERL WARNING: Use of uninitialized value in division (/) at (eval 49815) line 1.
2020.11.11 10:23:42 3: eval: {((split ' ',ReadingsVal($NAME,"root",0))[4])/1024}

In deinem Listing fehlt split auf root komplett, also hast du entweder das falsche Device gelistet oder aber nicht wieder so rekonstruiert, wie es den Fehler geworfen hat.

Davon ab:

CPULast {
    my @wort = split / /, ReadingsVal($NAME,"loadavg",0);
    return $wort[0]/4*100;
}


Man sollte niemals ein userReading ohne Einschränkungen machen - CPULast wird nun für jedes aktualisierte Reading im Device aufgerufen, anstatt nur für loadavg. Du kannst das so einschränken:


CPULast:loadavg:.+ {
    my @wort = split / /, ReadingsVal($NAME,"loadavg",0);
    return $wort[0]/4*100;
}


Du kannst das auch einfacher schreiben:

CPULast:loadavg:.+ {
    return ( ReadingsNum($NAME, q(loadavg), 0) / 4 * 100)
}

Titel: Antw:Perl-Fehlermeldungen im Logfile
Beitrag von: Otto123 am 12 November 2020, 10:39:29
Man kann in dem Fall sogar das return einsparen (@Christoph oder ist das nicht zu empfehlen?):
CPULast:loadavg:.+ { ReadingsNum($NAME, q(loadavg), 0) / 4 * 100 },
root_giga:root:.+ {(split ' ',ReadingsVal($NAME,q(root),q(0 1 2 3 4)))[4] / 1024}

Das zweite Beispiel ist für den Fall, dass es nicht die erste Zahl im Reading sein soll :) (wie im von Perl bemängeltem Code Teil - wo offenbar der Inhalt von root nicht aus mehren Elementen bestand)

Edit: Wobei ich jetzt feststellen muss: Der Code an sich ist richtig, aber das Reading root (in meinem Stino uralt sysmon Device) wird irgendwie speziell behandelt. Das userReading wird so nicht geschrieben. Liegt eventuell an einem speziellen event-on-update-reading?  :-[
Titel: Antw:Perl-Fehlermeldungen im Logfile
Beitrag von: frank am 12 November 2020, 11:00:18
1. falls es das "relevante" device ist, macht doch eine abfrage auf ein reading "root" überhaupt keinen sinn, da es gar nicht existiert.
wenn schon, dann auf "fs_root".

2. "attr event-on-change-reading state"
in einem "normalen" modul, das kein reading state hat, würde dieses attribut NULL events erzeugen.
also auch keine userreadings.