Ein Modul zur Erfassen von diversen RPi/Linux-Statistiken (SYSMON)

Begonnen von hexenmeister, 06 Dezember 2013, 17:44:38

Vorheriges Thema - Nächstes Thema

mkriegl

Hab eben noch etwas gefunden. Ich habe mal einen SYSSTAT vorgelagert. In den Events gibt er jetzt für SYSSTAT 700 und für SYSMON  900 aus. Dahinter gehängt zeigt SYSSTAT auch 900.
Mir scheint es so das der Threshold so empfindlich ist, das er beim lesen hochtaktet Und dies auch so fix passiert, das SYSMON nur noch den höheren Wert auslesen kann.
Ich schreibe momentan mal beide Werte mit, allgemein ist es aber denke mal nicht so optimal wenn er alle 60 Sek nur zum Auslesen hochtaktet. Allgemein würde ich schon gerne nur bei SYSMON bleiben.

PNinBB

#826
Angeregt durch "http://www.fhemwiki.de/wiki/SYSMON" habe ich die Beispielskonfiguration genutzt und diese in die fhem.cfg eingebaut.
Es werden auch die Internals und Readings sowie alle Diagramme angezeigt, allerdings bleiben letztere leer.
Im FHEM-Logfile steht seit der Installation:
2015.03.07 17:44:00 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at FHEM/Blocking.pm line 121.
2015.03.07 17:44:00 1: CallBlockingFn: Can't connect to localhost:: IO::Socket::INET: Bad hostname 'localhost:'

Die Einträge im SYSMON-Logfile stimmen mit den aktuellen Werten überein.
Mir kommt momentan nur in den Sinn, dass ich als Hostname meiner Raspberry nicht 'localhost' nutze. Könnte es daran liegen ?
Danke für Hinweise im Voraus !
Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;

Icinger

Was steht denn in deiner /etc/hosts drinnen?

Sollte sowas sein:
127.0.0.1       localhost
127.0.0.1       lappi
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

PNinBB

In der /etc/hosts steht:
127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
fe00::0         ip6-localnet
ff00::0         ip6-mcastprefix
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;

hexenmeister

#829
Warum bei dir blockingcall nicht funktioniert, kann ich leider nicht sagen. Für sysmon kannst Du es probeweise deaktivieren. S. Attribut nonblocking.

ulli

Hallo,

ich habe seit dem heutigen Update auf die neueste Version aus dem SVN folgende Fehlermeldung auf der Konsole
cat: /sys/class/net/ethernet/statistics/tx_bytes: No such file or directory

Ich habe einen BBB.

hexenmeister

Kommen die Ehernet-Daten trotzdem oder bleiben entsprechende Readings leer/alt?

nesges

Da war mein Patch doch zu simpel. Das hier sollte Abhilfe schaffen.

Zeile 2386ff:
my $rxRaw = -1;
my $txRaw = -1;
if(-e "/sys/class/net/$nName/statistics/rx_bytes" && -e "/sys/class/net/$nName/statistics/tx_bytes") {
    $rxRaw = SYSMON_execute($hash, "cat /sys/class/net/$nName/statistics/rx_bytes");
    $txRaw = SYSMON_execute($hash, "cat /sys/class/net/$nName/statistics/tx_bytes");
}

hexenmeister

Cool, danke! ;)
Habe gerade eingecheckt.

Bei mir funktioniert (Cubietruck), bitte auf BBB testen!

FHEMAN

Hallo, das Modul ist sehr cool. Ich habe anhand der Beispiele für meinen Cubietruck nachgebaut. Allerdings dauert das Laden der Übersicht + 7 Plots ewig. Alle anderen Plots sind rasend schnell. Ich nutze eine SSD, der Sysmon Log ist inzw. auch 20MB voll. RAM und CPU sind eigentlich nie ausgelastet.
Kommt der Cubie da zum ersten Mal an seine Grenze oder habe ich evtl. etwas falsch konfiguriert?
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

hexenmeister

20MB ist schon eine ganze Menge, aber auch nicht ungewöhnlich. Es empfiehlt sich nur das zu loggen, was man auch braucht.
Ich benutze Monatslogs, pro Monat kommen um die 25MB zusammen.
K.A. was Du mit Ewigkeit meinst und welche Plots Du nutzt. Meine Seite mit 10 Plots (davon die meisten von SYSMON)  braucht schon 20-30 Sekunden, bis alle Plots fertig sind.

FHEMAN

#836
Wenn es normal ist, ist es für mich auch okay.

Eine Frage zu dem Reading
power_battery_stat 0 1 3.836 327 49
Wo ist der Unterschied zwischen dem 1. und 2. Parameter? Ich habe vermutet, dass der 1. anzeigt, ob ein Akku angeschlossen ist und der 2. ob Strom vom Akku gezogen wird (also Batteriebetrieb). Der 1. Parameter zeigt bei mir aber grundsätzlich 0 an?
Hintergrund ist, dass ich mitbekommen möchte, wenn der Cubie auf Akkubetrieb umschaltet (quasi Stromausfall). Denn die 100% Ladung wird vermutlich noch ein Weilchen andauern und ist daher kein zuverlässiger Wert.

//edit: Ich habe jetzt mein Notify um power_ac_stat erweitert:
+*00:00:30 {
my @batteryInfo = split(" ", ReadingsVal("sysmon","power_battery_stat",100));
    my @acInfo = split(" ", ReadingsVal("sysmon","power_ac_stat",100));
    my $newValue = -1;
    if (($acInfo[0] eq 1) && ($batteryInfo[1] eq 1)) {
        $newValue = 1000;
    } elsif (($acInfo[0] eq 0) && ($batteryInfo[1] eq 1)) {
    $newValue = $batteryInfo[4];
    }
    if (Value("Cubie_Battery") ne $newValue) {
    fhem("set Cubie_Battery ".$newValue);
    }
}
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

hexenmeister

Die Werte sind:  "online(0|1), present (0|1), voltage, current", in Commandref leider falsch beschrieben (erste beiden verwechselt). Das korrigiere ich gleich.
Also, Paremeter 2 heißt, dass die Quelle vorhanden ist, und der 1. - dass diese gerade genutzt wird.

FHEMAN

#838
Ah OK, danke!
Ich habe noch eine Frage. Und zwar möchte ich ein userReading Battery mit den Status "AC" (Strom oder ladend) oder "0..100" (beim Entladen, also Akkumodus).

Ich arbeite mich gerade in userReadings ein.. und scheitere. Kannst Du mir sagen, warum folgendes nicht funktioniert?
attr sysmon userReadings battery:(power_battery_stat) { (split(/\s+/, ReadingsVal("sysmon","power_ac_stat",1))[0] eq 0) ? (split(/\s+/, ReadingsVal("sysmon","power_battery_stat",100))[4]) : "AC" }

Ich bekomme ein
Error evaluating sysmon userReading battery: syntax error at (eval 2649) line 1, near ")["
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

hexenmeister

Warum zerlegst Du Dein Ausdruck nicht in sein Einzelteile und testest sie Stück nach Stück?
Dann kommt man schnell zu einem (zumindest syntaktisch) korrekten Code.
{((split(/\s+/, ReadingsVal("sysmon","power_ac_stat",1)))[0] eq 0) ? ((split(/\s+/, ReadingsVal("sysmon","power_battery_stat",100)))[4]) : "AC" }