überarbeitet SYSSTAT modul: non-blocking, remote kommandos, beliebige readings

Begonnen von justme1968, 23 Oktober 2015, 00:09:34

Vorheriges Thema - Nächstes Thema

mischu860

hallo zusammen.


kann mir das noch jemand erklären wie das funktioniert wenn mann mehrere readings auf einem device hat?


ich habe 5 readings.

es wird jedoch immer nur das letzt hinzugefügte reading automatisch aktualisiert.


ich würde gerne ein svgplot davon erstellen. ist es möglich das von einem systat device ein log file erstellt werden kann das die readings beinhaltet?


gruss mischu

justme1968

zeig doch mal was du genau konfiguriert hast.

das loggen und plotten funktioniert wie bei jedem anderen device.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

mischu860

hi andre.

Vielleicht bin ich ja auch zu dumm dafür:

Im Printscreen siehst du meine readings.

Das letzt hinzugefügte ist jeweils das oberste.
Dann siehst du genau wie das immer wieder aktualisiert wird. Bei den anderen ist das nicht der Fall.
Das sind alles reine SNMP Abfragen die ich auf einem Geräte mache.
Das resultat muss schlussendlich noch /10 geteilt und geplottet werden.
Wie ich jedoch bemerkt habe wird von readings nicht automatisch ein FileLog erstellt sowie das bei normalen devices der Fall ist.

Ich muss jedoch auch zugeben das mit meinem aktuellen Wissensstand noch sehr viele Probleme bzw. Unwissenheit auf dem Stuhl vor dem Bildschirm sitzt...

Gruss Mischa

justme1968

in deinem mibs attribut hat du doch nur ein reading konfiguriert. wenn du mehrere readings haben möchtest musst du sie alle in das attribut stecken.

kann es sein das du das config file direkt editierst? das ist keine gute idee und nicht nötig.

du musst alle mibs/readings in einem einzigen attr aufruf setzen. wenn du mehrere attr aufrufe hat überschreibst du jedes mal den aktuellen wert. am besten geht das im frontend in der detail ansicht. pro zeile ein mib/reading.


ich habe die version im ersten plot aktualisiert so das man readingsFormat auch für mibs verwenden kann.
ansonsten kannst du auch im plot durch 10 teilen.

readings erstellen niemals automatisch ein filelog. manche devices die über autocreate angelegt werden tun das. wobei noch nicht mal das eine gute idee ist. es gibt anwender die verwenden kein filelog sondern dblog.

wie du ein filelog anlegst findest du in der commandref und im wiki.

einen plot kannst du dir recht einfach im ploteditor zusammen klicken.

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

im ersten beitrag gibt es eine neue version bei der man readingsFormat auch für mibs verwenden kann.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

mischu860

Kann es sein das das Falsche File verlinkt ist?

Mein aktuelles FIle hat folgende überschrift:


# $Id: 32_SYSSTAT.pm 10567 2016-01-18 21:34:09Z justme1968 $

Das auf der ersten seite ist jedoch von 2015:

# $Id: 32_SYSSTAT.pm 9504 2015-10-17 20:55:25Z justme1968 $


Gruss mischu

justme1968

das ist ok. bei nicht eingecheckten files wird die id zeile nicht aktualisiert. diese beta version wurde schon vor einer weile begonnen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Kaufe

Hallo zusammen,

versuche mit seit einiger Zeit über das sysstat modul auf einem anderen Server eine Datei auszulesen.
Doch wie ich feststellen musste kann das offizielle sysstats Modul keine Selbstdefinierten Readings mehr?

Würde als Beispiel gerne die datei /var/tmp/temp (mit dem inhalt "T: 10.34") und die Datei /var/tmp/air ("Air: 1071") einbinden.

Diese Version hier ist die, mit der es funktioniert:
# $Id: 32_SYSSTAT.pm 9504 2015-10-17 20:55:25Z justme1968 $

Die aktuellste kann es leider nicht mehr:
# $Id: 32_SYSSTAT.pm 10567 2016-01-18 21:34:09Z justme1968 $

Internals:
   CFGFN
   DEF        120 600
   HAS_Net::SNMP 1
   HAS_Sys::Statistics 0
   INTERVAL   120
   INTERVAL_FS 600
   NAME       BBxM
   NR         920
   STATE      Initialized
   TYPE       SYSSTAT
   interval_fs 600
   Readings:
     2016-09-01 12:12:05   cpufreq         600
     2016-09-01 12:12:05   temperature     49.388
   filesystems:
     /dev/mmcblk0p2
Attributes:
   filesystems /dev/mmcblk0p2
   raspberrycpufreq 1
   raspberrytemperature 1
   room       test
   showpercent 1
FHEM 6.0 Raspberry PI-3B-Bullseye| HauptFHEM Server (Graphana,MariaDB)
FHEM 6.0 Raspberry PI-3B-Bullseye| FHEM2FHEM, 1-Wire (Ds9490R  + 50 DS18B20)
FHEM 6.0 Raspberry PI-3B-Bullseye| FHEM2FHEM, 1-Wire (Ds9490R  + 5 DS18B20)
RaspberrMatic 3.61.7.20211218 (ca 65 HM Devices)

justme1968

die 'offiziell' eingecheckte version konnte das noch nie. das ist neu in der im ersten post angehängten beta version.

du musst also erst mal noch diese version verwenden.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Kaufe

Hallo zusammen,

ah ok, heisst aber das ihr diese Funktion noch irgendwann hinzufügt? Oder wollt ihr das gar nicht mergen?
Bzw nur so aus interesse, wie geht das denn mit "offiziellen Mitteln", ohne gleich mit Fhem2Fhem arbeiten zu müssen?
Wie schon geschrieben, eigentlich wollte ich nur "via SSH eine Remote Datei auslesen und diese lokal im FHEM dann loggen um mit den Werten arbeiten zu können".

PS: Danke für den genialen kleinen "brunch", hatte mehrere Stunden reserchiert und "nur" deine möglichkeit gefunden die mir auf anhieb gefallen hat.

Grüße Kaufe
FHEM 6.0 Raspberry PI-3B-Bullseye| HauptFHEM Server (Graphana,MariaDB)
FHEM 6.0 Raspberry PI-3B-Bullseye| FHEM2FHEM, 1-Wire (Ds9490R  + 50 DS18B20)
FHEM 6.0 Raspberry PI-3B-Bullseye| FHEM2FHEM, 1-Wire (Ds9490R  + 5 DS18B20)
RaspberrMatic 3.61.7.20211218 (ca 65 HM Devices)

justme1968

ja. sobald ich dazu komme wird es eingecheckt. nimm so lange die version aus dem ersten post.

du kannst es auch genau so nach bauen :)

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

gloob

#41
Gibt es schon eine Idee, wann das neue Modul eingechecked wird?

Ich könnte die neue Version aus dem 1. Post jetzt nutzen und ein Update des FHEM Moduls unterbinden, allerdings würde ich dann nie über ein Update mitbekommen, wenn es Änderungen am neuen Modul gibt.

Der Hintergrund, warum ich das neue Modul nutzen möchte ist, dass ich damit ein NAS überwache und wenn das NAS nicht erreichbar ist, das Modul FHEM komplett blockiert.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

justme1968

ja kommt. ich bin noch nicht dazu gekommen noch zwei drei dinge zu testen. aber danach wird es ganz sicher eingecheckt.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

JohnDenver0815

Ich bin hier gerade in mehrere Probleme/Fehlermeldungen gerannt, die mich dazu bewegt haben sämtliche Devices zu entfernen, sodass meine FHEM-Installation quasi frisch ist.
Nach einem shutdown restart und dem darauffolgenden define WHG_AZ_PowSW_State SYSSTAT 60 600 IP-ADDR sind folgende Logeinträge aufgetaucht:
2016.10.18 20:47:07 1: PERL WARNING: push on reference is experimental at ./FHEM/32_SYSSTAT.pm line 248.
2016.10.18 20:47:07 1: PERL WARNING: shift on reference is experimental at ./FHEM/32_SYSSTAT.pm line 328.
2016.10.18 20:47:08 1: PERL WARNING: Use of uninitialized value $ret in numeric le (<=) at ./FHEM/32_SYSSTAT.pm line 297.


Was mich beim Blick auf die Internals des SYSSTAT verwundert, es tauchen folgende Werte auf:
INTERVAL_FS   600
interval_fs   600


In den Readings steht lediglich connection und wird auch alle 60sec abgefragt.
Setze ich nun das Attribut noSSH   1 (da mir schleierhaft ist, wo ich das PW hinterlegen sollte, mir das Log vollgespammed wird und es bisher auch alles per Telnet ging), stoppt die minütige Abfrage aus mir nicht erkenntlichen Gründen. Updates sind ab hier nur noch manuell möglich.

Setze ich danach die SNMP-Attribute snmp, snmpCommunity und snmpVersion, so werden diverse Internals angelegt/befüllt (z.B. SystemDescription und SystemName).

Wird jetzt noch das Attribut mibs (.1.3.6.1.4.1.318.1.1.4.4.2.1.3.1:Port01_state) hinzugefügt, so tauchen unter Readings neben dem neuen Port01_state auch noch die Readings load (mit dem Wert 0) und state (ohne Wert) auf.
Ein Blick auf die Internals offenbart folgendes:
DEF   60 600 IP-ADDR
INTERVAL_FS   600
interval_fs   540


Um dem Ganzen noch einen drauf zu setzen: bei dem Versuch, das Attribut mibs zu löschen, verschwindet es zwar, allerdings bleiben die Readings unverändert. Lediglich die Internals haben jetzt wieder Normalwerte (nach shutdown restart):
DEF   60 600 IP-ADDR
INTERVAL_FS   600
interval_fs   600


Und auch im Log hat sich ein neuer Eintrag angefunden:
2016.10.18 21:35:30 1: ./log/fhem.save: Usage: setstate <name> <state>
where <name> is a single device name, a list separated by komma (,) or a regexp. See the devspec section in the commandref.html for details.


Es wäre schön, wenn sich dem Problem jemand annehmen könnte. Alternativ (als workaround) würde mir auch die Info reichen, wo ich das SSH-PW hinterlegen kann. Den User kann ich ja als Attribut mit übergeben.

LG
John


justme1968

die fehler schaue ich mir an sobald ich dazu komme.

was stört dich an den beiden internals? das hat schon seine richtigkeit. eines ist ein start wert, das andere ein zähler.

wenn du die abfrage per mibs abschaltest werden die readings nicht gelöscht. das ist allgemein so in fhem. wende alte readings entfernen möchtest geht das über das deletereading kommando.

der ssh zugang ist auf public key ohne password ausgelegt. du kannst über das ssh_user attribut einstellen welcher user auf dem ziel system verwendet werden soll.

was meinst du es ging per telnet? das sysstat modul hat noch nie telnet verwendet.

wenn snmp verwendet wird, werden auch ein paar standard mibs abgefragt. das mache ich konfigurierbar.
die meldung zu state ist ein folgefehler wegen des leeren state readings. ich vermute mal deine pdu liefert keine cpu auslastung :)

gruss
  andre

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968