SYSMON seltsamer Eintrag im Log

Begonnen von eddy242, 10 März 2020, 19:43:32

Vorheriges Thema - Nächstes Thema

eddy242

Hallöle,

ich finde das im Log. Ist bei mir nicht dramatisch. Fällt halt nur auf bei der Routinekontrolle. Soll ich noch was drumrum posten?


BusyBox v1.24.1 (2020-02-14 03:15:41 CST) multi-call binary.

Usage: free [-b/k/m/g]

Display the amount of free and used system memory
2020.03.10 01:30:11 1: PERL WARNING: Use of uninitialized value $free_version in substitution (s///) at ./FHEM/42_SYSMON.pm line 2268.
2020.03.10 01:30:11 1: PERL WARNING: Use of uninitialized value $free_version in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.10 01:30:11 1: PERL WARNING: Use of uninitialized value $free_version in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2320.
2020.03.10 01:30:14 1: PERL WARNING: Argument "13.43 0.00 5.50 79.69 1.13 0.00 0.25" isn't numeric in sprintf at (eval 2967805) line 1.
2020.03.10 01:30:14 1: PERL WARNING: Argument "5412.70 8578.39 6881.82" isn't numeric in sprintf at (eval 2967807) line 1.
BusyBox v1.01 (2020.01.08-18:26+0000) multi-call binary

Usage: free

Displays the amount of free and used system memory

2020.03.10 01:30:14 1: PERL WARNING: Use of uninitialized value $free_version in substitution (s///) at ./FHEM/42_SYSMON.pm line 2268.
2020.03.10 01:30:14 1: PERL WARNING: Use of uninitialized value $free_version in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.10 01:30:15 1: PERL WARNING: Use of uninitialized value $free_version in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2320.

Benjamin50

Hallo,
Seit ich ein Update auf Fhem version 6.0 bekommen ich diese Warnung ins Log geschrieben,
dadurch wird die Log Datei sehr groß.

vielen Dank
Wolfgang

Zitat2020.03.21 12:53:07.912 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 12:54:07.848 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 12:55:07.857 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 12:56:07.856 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 12:57:07.859 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 12:58:07.859 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 12:59:07.868 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:00:07.860 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:01:07.862 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:02:07.862 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:03:07.861 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:04:07.869 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:05:07.867 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:06:07.866 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:07:07.870 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:08:07.876 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:09:07.873 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:10:07.871 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:11:07.871 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:12:07.881 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:13:07.872 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:14:07.872 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:15:07.882 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:16:07.891 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:17:07.877 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:18:07.918 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:19:07.880 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:20:07.877 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:21:07.883 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:22:07.923 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:23:07.898 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:24:07.898 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:25:07.916 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:26:07.894 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:27:07.902 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:28:07.903 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:29:07.919 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:30:07.931 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:31:07.927 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:32:07.907 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:33:07.910 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:34:07.908 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:35:07.908 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:36:07.912 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:37:07.912 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:38:07.912 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:39:07.916 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:40:07.916 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:41:07.915 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:42:07.916 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:43:07.921 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:44:07.919 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:45:07.923 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:46:07.925 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:47:07.927 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:48:07.929 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.21 13:49:07.932 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.

frank

Zitatdadurch wird die Log Datei sehr groß.
57x die selbe fehler msg zu posten, finde ich wesentlich schlimmer.  ;)
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Benjamin50

Hallo,
Wenn ich nur einen Eintrag gemacht hätte wehre die Antwort gewesen ist ja nur eine Warnung oder auch keine.

@eddy242
hat 8 Warnungen geschrieben und bis jetzt noch keine Antwort bekommen was der Fehler ist.

Ich habe 57x die Warnung geschrieben ( Danke fürs Zählen) und ich habe eine Antwort bekommen,
ist zwar nicht das was ich erwartet habe aber ich habe eine Antwort bekommen.  ;)

Jetzt wissen wir das 8 Warnungen nicht reichen das man eine Antwort bekommt 57 aber sehr wohl.

@frank
wenn du mich Kritisierst das 57 Warnungen  zu viel ist warum hast du für eddy242 keine passende Antwort für sein Problem weil der hat ja alles richtig gemacht ?

Ich habe noch eine Rechenaufgabe.

die Warnungen kommen jede Minute einmal.
Wie viele Warnungen werden am Tag ins Log geschrieben ?
Wie viele Warnungen werden im Monat ins Log geschrieben ?
Um wie viel vergrößert sich die im Monat die Log Datei ?

und das sollte man auch nicht außer acht lassen, das ist jetzt nur ein Modul bei 4 oder5 Modulen kommt einiges zusammen.

vielen Dank

mfg
Wolfgang

Otto123

Hallo Wolfgang,

offenbar kein typischer Fehler, sonst würdest Du Antworten bekommen. Ich habe auch Update auf 6.0 gemacht und sysmon laufen und habe keine Einträge.
Du könntest:
featurelevel in global wieder runter setzen und testen
die Ausgabe von Version und fheminfo posten, vielleicht fällt jemandem was auf.
im Log nach Meldungen schauen ob System Module fehlen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Benjamin50

Hallo, Otto
Vielen Danke für die Antwort.

Ich habe es mit verschiedenen Featurelevel Probiert doch leider ohne erfolg.

Latest Revision: 21477

File                                        Rev         Last Change

fhem.pl                               21337       2020-03-02 16:42:53Z rudolfkoenig
42_SYSMON.pm                 17227       2018-08-29 19:58:18Z hexenmeister


System Info
ConfigType:   configFile
SVN rev:   21477
OS:   Linux debian 5.4.0-4-amd64 #1 SMP Debian 5.4.19-1 (2020-02-13) x86_64
Perl:   5.30.0
uniqueId:   d09...

2020.03.22 12:26:29.259 1: PERL WARNING: Use of uninitialized value in localtime at fhem.pl line 3465.
2020.03.22 12:26:29.532 0: Featurelevel: 6.0
2020.03.22 12:26:29.532 0: Server started with 387 defined entities (fhem.pl:21337/2020-03-02 perl:5.030000 os:linux user:fhem pid:33235)
2020.03.22 12:26:55.113 3: BOSEST: BOSE_7C3866EC7918, WebSocket connection succeed.
2020.03.22 12:26:59.814 3: DbRep myDb - Connectiontest to database SQLite:dbname=/opt/fhem/fhem.db with user
2020.03.22 12:26:59.846 3: DbRep myDb - Index Report_Idx exists. Check ok
2020.03.22 12:26:59.848 3: DbRep myDb - Initial data information retrieved successfully - total time used: 0.0027 seconds
2020.03.22 12:26:59.857 3: DbRep myDb - Connectiontest to db SQLite:dbname=/opt/fhem/fhem.db successful
2020.03.22 12:27:17.231 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.


2020.03.22 12:10:38.893 1: PERL WARNING: Use of uninitialized value in localtime at fhem.pl line 3465.
2020.03.22 12:10:39.159 0: Featurelevel: 5.9
2020.03.22 12:10:39.160 0: Server started with 387 defined entities (fhem.pl:21337/2020-03-02 perl:5.030000 os:linux user:fhem pid:32728)
2020.03.22 12:10:50.678 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.22 12:10:57.371 3: DbRep myDb - Connectiontest to database SQLite:dbname=/opt/fhem/fhem.db with user
2020.03.22 12:10:57.398 3: DbRep myDb - Index Report_Idx exists. Check ok
2020.03.22 12:10:57.398 3: DbRep myDb - Initial data information retrieved successfully - total time used: 0.0035 seconds
2020.03.22 12:10:57.408 3: DbRep myDb - Connectiontest to db SQLite:dbname=/opt/fhem/fhem.db successful
2020.03.22 12:11:04.712 3: BOSEST: BOSE_7C3866EC7918, WebSocket connection succeed.

2020.03.22 12:18:21.395 1: PERL WARNING: Use of uninitialized value in localtime at fhem.pl line 3465.
2020.03.22 12:18:21.662 0: Featurelevel: 5.8
2020.03.22 12:18:21.663 0: Server started with 387 defined entities (fhem.pl:21337/2020-03-02 perl:5.030000 os:linux user:fhem pid:32981)
2020.03.22 12:18:21.942 3: DbRep myDb - Connectiontest to database SQLite:dbname=/opt/fhem/fhem.db with user
2020.03.22 12:18:22.800 3: DbRep myDb - Index Report_Idx exists. Check ok
2020.03.22 12:18:22.800 3: DbRep myDb - Initial data information retrieved successfully - total time used: 0.0057 seconds
2020.03.22 12:18:22.826 3: DbRep myDb - Connectiontest to db SQLite:dbname=/opt/fhem/fhem.db successful
2020.03.22 12:18:47.788 3: BOSEST: BOSE_7C3866EC7918, WebSocket connection succeed.
2020.03.22 12:19:09.274 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.22 12:20:09.224 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.22 12:21:09.215 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.
2020.03.22 12:22:09.230 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at ./FHEM/42_SYSMON.pm line 2269.

Danke
mfg Wolfgang

Otto123

Hallo Wolfgang,

es wäre für Dich noch wichtig das hier zu lesen und die Hinweise vor allem für Codetags zu beachten :) https://forum.fhem.de/index.php/topic,71806.0.html

Ich denke, das Modul bekommt etwas vom System nicht, damit ist ein String "" leer und der numerische Vergleich wirft Fehler. Du kannst Deine Definition abspecken und testen, du kannst letztlich sysmon nur erstmal rausnehmen.
Am Update von FHEM selbst wird es nicht liegen, das Verhalten hatte ja offenbar sonst keiner.
Du kannst temporär und Versuchsweise eine Neuinstallation von Null testen.
Du kannst die fragliche Zeile im Modul anschauen ob Du da eine Idee ableiten kannst.

Klingt alles aufwendig, aber ich kann Dir hier nicht weiterhelfen. Wenn Du neue Erkenntnisse hast kann man Strategien entwickeln.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Benjamin50

Hallo,

Danke für die Info, werde das weiter Beobachten.
In Zeile 2269 steht dieser Code, aber soweit reichen meine Programmierkenntnisse nicht aus um das zu verstehen.

my @speicher = SYSMON_execute($hash, 'LANG=en ' . ($free_version > 339 ? 'free -w' : 'free'));

mfg
wolfgang

Otto123

Ok interessant.  8) Meine Interpretation:
Konsolenbefehl free - kannst Du im Terminal testen.
free -w gibt mir einen Hilfetext zurück. Funktioniert also bei mir nicht.

Das Folgende ist ein typisches Perl Konstrukt: Bedingung ? Rückgabe wahr : Rückgabe falsch
$free_version > 339 ? 'free -w' : 'free'
Also ab Version (welche?) 339 nimm free -w sonst nimm free

Probier das mal aus bei Dir. Mal sehen was da so passiert.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Benjamin50

Hallo,
Ich bekomme diese Antwort.
Ist es das was du meinst

pi@debianfhem:~$ free -w
              total        used        free      shared     buffers       cache   available
Mem:        7856604      385304     6615088        2576      122332      733880     7214900
Swap:       8082428           0     8082428

Otto123

Ja genau. Also den Befehl gibt es, der gibt auch was zurück.
Versuch das Gleiche unter FHEM, in der FHEM Kommandozeile!:
{qx(free -w)}

Falls im Browser nichts zurückkommt schau ins Log.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Benjamin50

Im Browser kommt das

              total        used        free      shared     buffers       cache   available
Mem:        7856604      549424     6447804        2560      123352      736024     7050804
Swap:       8082428           0     8082428

frank

das problem muss schon vorher existieren, da ja scheinbar die variable $free_version kein wert bekommen hat:
Argument "" isn't numeric in numeric gt (>)

also nach der initialisierung suchen.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Benjamin50

Hallo,
ist das Hilfreich ?

#------------------------------------------------------------------------------
2258 # Liefert Werte fuer RAM und SWAP (Gesamt, Verwendet, Frei).
2259 #------------------------------------------------------------------------------
2260 sub SYSMON_getRamAndSwap($$) {
2261   my ($hash, $map) = @_;
2262
2263   if($hash->{helper}->{excludes}{'ramswap'}) {return $map;}
2264
2265   #my @speicher = qx(free -m);
2266   #my @speicher = SYSMON_execute($hash, "LANG=en free");
2267   my $free_version = SYSMON_execute($hash, 'free -V');
2268   $free_version =~ s/\D//g;
2269   my @speicher = SYSMON_execute($hash, 'LANG=en ' . ($free_version > 339 ? 'free -w' : 'free'));

frank

was bekommst du auf der console mit:
free -V
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Benjamin50

#15
Hallo

pi@debianfhem:~$ free -V
free from procps-ng UNKNOWN


In der Fhem Kommandozeile kommt

free from procps-ng UNKNOWN


frank

free from procps-ng 3.3.12
so sieht das bei mir aus.

ist dein os up to date?

als "würgaround" könntest du zb vor zeile 2269 eine zeile einfügen:

$free_version = 340 if($free_version eq "");

dann natürlich "attr global exclude_from_update" entsprechend setzten, damit sysmon nicht überschrieben wird.

anschliessend save und neustarten.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

frank

welches os hast du eigentlich, dass dort version "unknown" angezeigt wird?
debian buster, oder etwas exotisches?
auf welcher hardware?
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Benjamin50

Hallo,
Habe ein wenig im Netz gesucht aber auch nichts gefunden, warum das so ist weiß ich nicht.
Das System läuft sonst ganz rund.

Ich werde dein Workaround eintragen und Beobachten.
Vielen Dank für die Unterstützung

mfg
wolfgang


Motherboard ASRock Q1900M
Processor      Intel(R) Celeron(R) CPU  J1900  @ 1.99GHz
Memory         8GiB System Memory
Linux Buster 5.4.0-4-amd64 x86_64

eddy242

Hallo zusammen,

ich würde gerne die lebhafte Diskussion nutzen, um nochmals kurz auf Post #1 einzugehen. Die Situation ist so, dass SYSMON per ssh eine Remoteabfrage auf 2 verschiedene QNAP NAS Systeme macht. Im Terminal macht free dort folgende Ausgaben. Beide free-Versionen von busybox unterstützen weder -v noch -w.
QNAP älteres Modell

[~] # free
              total         used         free       shared      buffers
  Mem:       255596       233140        22456            0         3468
Swap:       530124       233440       296684
Total:       785720       466580       319140
[~] # free -w
BusyBox v1.01 (2020.01.08-18:26+0000) multi-call binary

Usage: free

Displays the amount of free and used system memory

[~] #   


QNAP moderneres Modell

[~] # free -w
BusyBox v1.24.1 (2020-02-14 03:15:41 CST) multi-call binary.

Usage: free [-b/k/m/g]

Display the amount of free and used system memory
[~] # free
             total       used       free     shared    buffers     cached
Mem:      15371348   14295156    1076192      73732     340192    6607648
-/+ buffers/cache:    7347316    8024032
Swap:     24542452    2732312   21810140
[~] # free -v
BusyBox v1.24.1 (2020-02-14 03:15:41 CST) multi-call binary.

Usage: free [-b/k/m/g]

Display the amount of free and used system memory
[~] #                       


Otto123

#20
Ich hätte da vielleicht einen "bösen" Hack:
Idee: Man packt ein alternatives free in einen Pfad aus dem Suchpfad:
echo $PATH
/usr/sbin:/usr/bin:/sbin:/bin

free liegt in /usr/bin (which free)

Den folgenden Script Code kann man einfach in die Kommandozeile fallen lassen, der erzeugt mit "hereDoc" das Script und macht es ausführbar.
free="/usr/sbin/free"
cat <<EOF > $free
#!/bin/sh

if [ "\$1" = "-V" ]
then
   echo "free from procps-ng 3.3.9"
else
   /usr/bin/free
fi
EOF
chmod +x $free


Danach muss man sich neu anmelden um die Hash Table der Shell neu zu erstellen.
Test mit which free
free -V liefert ab sofort einen Rückgabe Wert und ansonsten die normalen Werte.

Das ganze bleibt bei busybox nicht dauerhaft - ich weiß  :-X

Besser wäre der Hexenmeister ruft seine Besen :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

frank

etwas einfacher sollte folgendes funktionieren:

folgende zeile für eddy hinter zeile 2267 einfügen:
  $free_version = 339 if($free_version !~ m/^free\sfrom\sprocps-ng/);


wenn der command "free -V" existiert und am anfang immer "free from procps-ng" zurückliefert, könnte für alle der code so aussehen (mit den 2 ausnahmen für benjamin und eddy):

  my $free_version = SYSMON_execute($hash, 'free -V');
  $free_version = 339 if($free_version !~ m/^free\sfrom\sprocps-ng/);
  $free_version =~ s/\D//g;
  $free_version = 340 if($free_version eq "");
  my @speicher = SYSMON_execute($hash, 'LANG=en ' . ($free_version > 339 ? 'free -w' : 'free'));


unter der voraussetzung, dass alle versionen die "UNKNOWN" als versionsnummer liefern auch den command "free -w" beherschen.


bei mir kommt die "echte" version (3312) jedenfalls noch durch.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

eddy242

Hallo Frank,

vielen Dank - hab's ausprobiert und die angegebene Zeile ins Modul aufgenommen, FHEM neu gestartet:


BusyBox v1.24.1 (2020-02-14 03:15:41 CST) multi-call binary.

Usage: free [-b/k/m/g]

Display the amount of free and used system memory
2020.03.25 00:15:32 1: PERL WARNING: Use of uninitialized value $free_version in pattern match (m//) at ./FHEM/42_SYSMON.pm line 2268.
BusyBox v1.01 (2020.01.08-18:26+0000) multi-call binary

Usage: free

Displays the amount of free and used system memory

2020.03.25 00:15:35 1: PERL WARNING: Use of uninitialized value $free_version in pattern match (m//) at ./FHEM/42_SYSMON.pm line 2268.

eddy242

Und noch ein Nachtrag, ich glaube da gab's ein paar Nebenwirkungen:

2020.03.25 08:30:40 1: PERL WARNING: Argument "|#|2|#|1|#|4|#|1|#|.|#|0|#|0|#|" isn't numeric in numeric lt (<) at ./FHEM/42_SYSMON.pm line 1476.
2020.03.25 08:30:40 1: PERL WARNING: Argument "|#|5|#|3|#|5|#|.|#|2|#|5|#|" isn't numeric in multiplication (*) at ./FHEM/42_SYSMON.pm line 1477.
2020.03.25 08:30:40 1: PERL WARNING: Argument "|#|2|#|1|#|6|#|3|#|.|#|0|#|0|#|" isn't numeric in numeric lt (<) at ./FHEM/42_SYSMON.pm line 1476.
2020.03.25 08:30:40 1: PERL WARNING: Argument "|#|5|#|4|#|0|#|.|#|7|#|5|#|" isn't numeric in multiplication (*) at ./FHEM/42_SYSMON.pm line 1477.
2020.03.25 08:30:40 1: PERL WARNING: Argument "|#|2|#|1|#|7|#|9|#|.|#|0|#|0|#|" isn't numeric in numeric lt (<) at ./FHEM/42_SYSMON.pm line 1476.
2020.03.25 08:30:40 1: PERL WARNING: Argument "|#|5|#|4|#|4|#|.|#|7|#|5|#|" isn't numeric in multiplication (*) at ./FHEM/42_SYSMON.pm line 1477.
2020.03.25 08:30:40 1: PERL WARNING: Argument "|#|2|#|0|#|5|#|2|#|.|#|0|#|0|#|" isn't numeric in numeric lt (<) at ./FHEM/42_SYSMON.pm line 1476.
2020.03.25 08:30:40 1: PERL WARNING: Argument "|#|5|#|1|#|3|#|.|#|0|#|0|#|" isn't numeric in multiplication (*) at ./FHEM/42_SYSMON.pm line 1477.

Otto123

@Eddy242 hast Du meinen Trick mal probiert? Würde mich interessieren ob das so einfach auch woanders geht. ;)
Auch wenn es eine schräge Lösung ist :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wernieman

Warum ist es schräg .. habe es beruflich schon mit anderen Kommandos machen (müssen)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

eddy242

Hallo Otto123,

habe es mit Deinem Workaround gefixt, allerdings mit ein paar Änderungen.
1) Script ohne den \ im Parameter
[~] # cat /sbin/free
#!/bin/sh

if [ "$1" = "-V" ]
then
   echo "free from procps-ng 3.3.9"
else
   /opt/free
fi

2) habe ich das "script" free in einen folder gesteckt, der im Pfad eigentlich vor /usr/bin/ aufgerufen werden sollte. Das funktionierte aber nicht obwohl "which free" das richtige ausgegeben hat. daher habe ich das busybox-free nach /opt verschoben. Ich nehme an dass das beim nächsten system-update oder schlimmer noch beim nächsten reboot wieder durch den update- bzw- QNAP Reparaturmechanismus gefixt wird. Da ich beides (Update und Reboot) aber eher im 2-3 Monatsrhythmus mache, ist es als Workaround verschmerzbar.

Generell wäre es natürlich Klasse, wenn SYSMON auf das busybox-free reagieren könnte, was den -V Parameter nicht kennt.

frank

ich hatte vermutet, dass die "busybox"-meldung in der variable $free_version steckt. leider nicht.

ich habe jetzt bei mir mit einer nicht vorhandenen free-option getestet. die warnung konnte ich zwar verhindern, aber die "busybox"-meldung bleibt.

dann wäre das sinnvollste für eddy, den "free -V" befehl zu verhindern.
zb zeile 2267 verändern/ersetzen mit

my $free_version = 339;
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

eddy242

#28
Hallo Frank,

das ist vielleicht keine ideale Lösung, denn auf meinen RaspPis ist ja eine gescheite Shell, wo free -V eine Version ausgibt. die buysbox ist nur auf den QNAP NAS Geräten.

Wenn ich in meinem lokalen fhem den offziellen Modulcode ändere, hätte ich natürlich das gleiche Problem beim nächsten SYSMON-Update - müsste die Änderung wieder manuell nachziehen.

Eine dauerhafte Lösung wäre vielleicht ein Attribut (isBusyBox =1), was der Modulcode abfragen könnte um dann zu entscheiden?

frank

genau, ein attribut wäre wohl am besten.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Otto123

Zitat von: eddy242 am 25 März 2020, 11:17:42
habe es mit Deinem Workaround gefixt, allerdings mit ein paar Änderungen.
1) Script ohne den \ im Parameter
Zur Erklärung:
Mein Script war ein Komplettes - also Copy und Paste in die Kommandozeile und nicht nur teilweise Copy&Paste in eine Scripttextdatei. Dabei muss man den Variablen Namen $1 schützen (\$1) sonst wird er durch das hereDoc Konstrukt aufgelöst:
cat <<EOF > Dateiname
....
EOF

In der Scriptdatei wird dadurch richtig der Variablename $1 angelegt. Schützt man innerhalb EOF ...EOF die Variable nicht, wäre im Script dann an der Stelle nichts, oder der Inhalt von $1 im aufrufenden Kontext.

Ich bin der Meinung, man könnte mit einem solchen kurzen Script auch per FHEM / SSH das "Fake" Script in der QNAP platzieren und damit das Problem Update/Restart umgehen.
Ich habe das primär nicht für diesen Fall durchdacht, den sollte man im SYSMON Modul fixen. Aber vielleicht braucht man ja mal kleineren Script Code den man quasi "pseudo dauerhaft" in den busyboxen verankern will.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

frank

Zitat von: eddy242 am 25 März 2020, 11:54:20
Hallo Frank,

das ist vielleicht keine ideale Lösung, denn auf meinen RaspPis ist ja eine gescheite Shell, wo free -V eine Version ausgibt. die buysbox ist nur auf den QNAP NAS Geräten.

Wenn ich in meinem lokalen fhem den offziellen Modulcode ändere, hätte ich natürlich das gleiche Problem beim nächsten SYSMON-Update - müsste die Änderung wieder manuell nachziehen.

Eine dauerhafte Lösung wäre vielleicht ein Attribut (isBusyBox =1), was der Modulcode abfragen könnte um dann zu entscheiden?

du könntest aber bis zu einem fix zb ein userattribut "isBusyBox=1" für deine nas anlegen und den code entsprechend unterschiedlich ausführen lassen.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

xenos1984

Das gleiche Problem gibt es auch unter Ubuntu 20.04:
free from procps-ng UNKNOWN
Unter 18.04 geht es noch. Das hat dann den Effekt, dass (unter 20.04) fälschlicherweise der Cache vom belegten Speicher abgezogen wird, weshalb mir nun eine negative RAM-Auslastung angezeigt wird :D

TNT0068

Das kann ich bestätigen mit 20.04
Homematic HMLAN HMUSB Heizung, Strom und Licht , Vuduo2, Kodi, Hue, Logitech Harmony Hub, Alexa

jemu75

Hallo in die Runde, bin beruhigt, dass ich nicht der einzige bin, bei dem das auftritt. Vielleicht kann man ja das entsprechende Modul in FHEM generell anpassen?  :)

dieterguenter

Hallo bei mir tritt ein vergleichbarer Fehler:

2020.10.16 19:29:56 1: PERL WARNING: Use of uninitialized value $uInterval in concatenation (.) or string at ./FHEM/42_SYSMON.pm line 1350.
2020.10.16 19:29:56 1: PERL WARNING: Use of uninitialized value $uComment in concatenation (.) or string at ./FHEM/42_SYSMON.pm line 1350.
2020.10.16 19:29:56 1: PERL WARNING: Use of uninitialized value $uCmd in concatenation (.) or string at ./FHEM/42_SYSMON.pm line 1350.

auf.

Gruß Dieter

koeberl2

#36
Auch bei mir unter Ubuntu 20.04.1 LTS dasselbe Problem mit free -V und den negativen RAM Werten

free from procps-ng UNKNOWN


Update:
Habe einen Thread gefunden, das free -V Problem sollte ab procps 3.3.16-5 fixed sein:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=960810

Werde mal versuchen irgendwo die neue procps Version herzubekommen und dann berichten.

Wäre interessant, welche Versionen von procps bei Euch installiert sind, ich habe derzeit noch diese hier:

dpkg -l procps
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version           Architecture Description
+++-==============-=================-============-=================================
ii  procps         2:3.3.16-1ubuntu2 arm64        /proc file system utilities



UPDATE:
Ok, habe mir die neue procps hier runtergeladen und installiert.
https://debian.pkgs.org/sid/debian-main-arm64/procps_3.3.16-5_arm64.deb.html

Jetzt läuft's bei mir wieder ohne Fehlermeldung im FHEM und in der Shell kommt bei free -V auch wieder eine Versionsnummer und nicht UNKNOWN.
RAM-Used ist allerdings noch immer negativ.

Hier noch eine Schritt für Schritt Anleitung wer's brauchen sollte. Bitte aber beachten, wer ein anderes System außer einen Raspberry Pi 4 und Ubuntu 20.04.1 64bit hat muss sich evtl. das passende procps Paket für seine Umgebung erst suchen.

wget http://ftp.br.debian.org/debian/pool/main/p/procps/procps_3.3.16-5_arm64.deb
dpkg -i ./procps_3.3.16-5_arm64.deb

dpkg -l procps
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-=================================
ii  procps         2:3.3.16-5   arm64        /proc file system utilities

maci

Ich hatte das gleiche Problem unter Ubuntu 20.04

Analog zum vorherigen Post habe ich folgendes gemacht:
wget http://ftp.br.debian.org/debian/pool/main/p/procps/procps_3.3.15-2_amd64.deb
sudo dpkg -i ./procps_3.3.15-2_amd64.deb

Fehlend Abhängigkeiten behoben mit:
sudo apt -f install


Nun ergibt ein:
free -V
free from procps-ng 3.3.16


Somit ist diese Meldung im Log Geschichte
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

Wernieman

Hinweis:

Mann sollte aber Wissen, was man tut, bei solche einer Aktion.

Nur für Experten und nicht für Anfänger geeignet, da danach keine Updates mehr hierfür erfolgen ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html