Autor Thema: SYSMON auf Intel NUC DN2820FYKH0  (Gelesen 11933 mal)

Offline Ma_Bo

  • Hero Member
  • *****
  • Beiträge: 1282
SYSMON auf Intel NUC DN2820FYKH0
« am: 15 Januar 2015, 17:45:54 »
Hallo an alle,

ich habe ja seit kurzem meine Fhem Installation vom RPi auf den NUC umgestellt und soweit läuft schon mal alles ganz gut.
Jetzt möchte ich aber eine paar Dinge, die ich vorher auf dem RPi auch hatte wieder beim NUC haben, das funktioniert aber noch nicht so wirklich.
Im Detail geht es sich um den SYSMON, hat da schon einer diesen auf dem NUC laufen, ich möchte möglichst viel auslesen, alles was über die CPU auszulesen ist, TEMPERATUR der CPU usw. Festplattenspeicher, Netzwerktraffic usw.

Ich habe den SYSMON von meinem RPi übernommen, doch leider hängt sich Fhem dann auf.
Vielleicht hat ja jemand den SYSMON oder etwas anderes bei sich laufen und kann mir ein paar Tips geben.

Die Installation auf dem NUC habe ich genau wie hier beschrieben durchgeführt und es hat alles super geklappt

http://www.meintechblog.de/2014/05/intel-nuc-als-smart-home-server-fhem-on-steroids/
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Offline Henno

  • Full Member
  • ***
  • Beiträge: 155
Antw:SYSMON auf Intel NUC DN2820FYKH0
« Antwort #1 am: 15 Januar 2015, 19:07:27 »
Hi

Das Problem hatte ich auch.

Werf mal die Netzwerkschnittstelle aus deiner config raus dann sollte es klappen.

btw.

Die NUC´s sind nicht so toll.

Ich betreibe ein ASROCK H87 board mit einem i3 4160
16GB RAM
2 SSD´s
1 WD RED 3TB
diverse FHEM Komponenten

bei ca. 13W IDLE
max. 55W bei Vollast

Der i3 hat deutlich mehr power für Plex und andere Spielereien und war alles in allem nicht viel teurer.

Server NAS+FHEM @ Intel i3 4160 16GB RAM 2x Crucial M4 256GB SSD 1x WD RED 3TB
HM-USB, 6X HM-CC-RT-DN, 3x HM-Sec-RHS, 4X HM-LC-Dim1TPBU-FM, 2x HM-PB-2-WM55-2, 1x HM-LC-Sw1PBU-FM für Heizung über HCS, 1x HM-Sec-Key
2x Arduino UNO Firmata
2x Jeelink für
9xEC3K 6XLa Crosse

Offline domii666

  • Full Member
  • ***
  • Beiträge: 173
Antw:SYSMON auf Intel NUC DN2820FYKH0
« Antwort #2 am: 17 Januar 2015, 12:57:25 »
@henno läuft es auf Windows? Oder hast es in vm

Gesendet von meinem HTC One mit Tapatalk


Offline Henno

  • Full Member
  • ***
  • Beiträge: 155
Antw:SYSMON auf Intel NUC DN2820FYKH0
« Antwort #3 am: 17 Januar 2015, 13:16:47 »
nur Ubuntu 14.04 x64
ohne VM und Windows
Server NAS+FHEM @ Intel i3 4160 16GB RAM 2x Crucial M4 256GB SSD 1x WD RED 3TB
HM-USB, 6X HM-CC-RT-DN, 3x HM-Sec-RHS, 4X HM-LC-Dim1TPBU-FM, 2x HM-PB-2-WM55-2, 1x HM-LC-Sw1PBU-FM für Heizung über HCS, 1x HM-Sec-Key
2x Arduino UNO Firmata
2x Jeelink für
9xEC3K 6XLa Crosse

Offline Newbee

  • Full Member
  • ***
  • Beiträge: 164
Antw:SYSMON auf Intel NUC DN2820FYKH0
« Antwort #4 am: 25 Januar 2015, 15:07:00 »
Hallo an alle,

ich habe ja seit kurzem meine Fhem Installation vom RPi auf den NUC umgestellt und soweit läuft schon mal alles ganz gut.
Jetzt möchte ich aber eine paar Dinge, die ich vorher auf dem RPi auch hatte wieder beim NUC haben, das funktioniert aber noch nicht so wirklich.
Im Detail geht es sich um den SYSMON, hat da schon einer diesen auf dem NUC laufen, ich möchte möglichst viel auslesen, alles was über die CPU auszulesen ist, TEMPERATUR der CPU usw. Festplattenspeicher, Netzwerktraffic usw.

Ich habe den SYSMON von meinem RPi übernommen, doch leider hängt sich Fhem dann auf.
Vielleicht hat ja jemand den SYSMON oder etwas anderes bei sich laufen und kann mir ein paar Tips geben.

Die Installation auf dem NUC habe ich genau wie hier beschrieben durchgeführt und es hat alles super geklappt

http://www.meintechblog.de/2014/05/intel-nuc-als-smart-home-server-fhem-on-steroids/

Hallo Ma_Bo,

habe den SYSMON heute unter FHEM auf meinem NUC konfiguriert.
Habe dazu die aus der FHEM Wiki beschriebene Bsp.-Konfig übernommen und ein paar kleine Änderungen gemacht.
http://www.fhemwiki.de/wiki/SYSMON

Was nicht auf anhieb lief war Netzwerk Monitoring, da der device nicht eth0 sondern em1 bei mir ist.
Was ich bis jetzt noch nicht zum laufen gebracht habe ist AC_Power Monitoring.

Eventuell hilft Dir das ja weiter.

Gruß Newbee
 
Intel-NUC mit ubuntu server 20.04; FHEM 6.0
HM, Dect, Netatmo, Hue

Offline domii666

  • Full Member
  • ***
  • Beiträge: 173
Antw:SYSMON auf Intel NUC DN2820FYKH0
« Antwort #5 am: 26 Januar 2015, 06:14:33 »
Netzwerkschnittstelle kannst aber easy umbenennen, dann sollte es auch klappen

Gesendet von meinem HTC One mit Tapatalk


Offline Ma_Bo

  • Hero Member
  • *****
  • Beiträge: 1282
Antw:SYSMON auf Intel NUC DN2820FYKH0
« Antwort #6 am: 26 Januar 2015, 16:34:44 »
Hey Newbee,

kannst du deinen Code hier mal veröffentlichen oder mir per PN schicken, im Moment habe ich leider ein paar andere Baustellen, somit muss der NUC noch ein wenig warten.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Offline Newbee

  • Full Member
  • ***
  • Beiträge: 164
Antw:SYSMON auf Intel NUC DN2820FYKH0
« Antwort #7 am: 27 Januar 2015, 20:52:18 »
Hey Newbee,

kannst du deinen Code hier mal veröffentlichen oder mir per PN schicken, im Moment habe ich leider ein paar andere Baustellen, somit muss der NUC noch ein wenig warten.

Hi Ma_Bo,

hiermit der Code!

# Modul-Definition
define sysmon SYSMON 1 1 1 10
attr sysmon event-on-update-reading cpu_temp,cpu_temp_avg,cpu_freq,eth0_diff,loadavg,ram,fs_.*,stat_cpu_percent
attr sysmon filesystems fs_boot:/boot,fs_root:/:Root,fs_usb1:/media/usb1:USB-Stick
attr sysmon group Sys
attr sysmon network-interfaces eth0:em1:Ethernet,wlan0:wlan0:WiFi
attr sysmon room NUC
#attr sysmon event-on-update-reading cpu_temp,cpu_temp_avg,cpu_freq,eth0_diff,loadavg,ram,^~ /.*usb.*,~ /$

# Log
define FileLog_sysmon FileLog ./log/sysmon-%Y-%m.log sysmon
attr FileLog_sysmon group Sys
attr FileLog_sysmon logtype SM_CPUTemp:Plot,text
attr FileLog_sysmon room NUC
   
# Visualisierung: CPU-Temperatur
define wl_sysmon_temp SVG FileLog_sysmon:SM_CPUTemp:CURRENT
attr wl_sysmon_temp group Sys
attr wl_sysmon_temp label "CPU Temperatur: Min $data{min2}, Max $data{max2}, Last $data{currval2}"
attr wl_sysmon_temp room NUC
   
# Visualisierung: Netzwerk-Datenübertragung für eth0
define wl_sysmon_eth0 SVG FileLog_sysmon:SM_Network_eth0:CURRENT
attr wl_sysmon_eth0 group Sys
attr wl_sysmon_eth0 label "Netzwerk-Traffic eth0: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
attr wl_sysmon_eth0 room NUC
   
# Visualisierung: Netzwerk-Datenübertragung für wlan0
# define wl_sysmon_wlan0 SVG FileLog_sysmon:SM_Network_wlan0:CURRENT
# attr wl_sysmon_wlan0 group Sys
# attr wl_sysmon_wlan0 label "Netzwerk-Traffic wlan0: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
# attr wl_sysmon_wlan0 room NUC

# Visualisierung: CPU-Auslastung (load average)
define wl_sysmon_load SVG FileLog_sysmon:SM_Load:CURRENT
attr wl_sysmon_load group Sys
attr wl_sysmon_load label "Load Min: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
attr wl_sysmon_load room NUC
   
# Visualisierung: RAM-Nutzung
define wl_sysmon_ram SVG FileLog_sysmon:SM_RAM:CURRENT
attr wl_sysmon_ram group Sys
attr wl_sysmon_ram label "RAM-Nutzung Total: $data{max1}, Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}"
attr wl_sysmon_ram room NUC
   
# Visualisierung: Dateisystem: Root-Partition
define wl_sysmon_fs_root SVG FileLog_sysmon:SM_FS_root:CURRENT
attr wl_sysmon_fs_root group Sys
attr wl_sysmon_fs_root label "Root Partition Total: $data{max1}, Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}"
attr wl_sysmon_fs_root room NUC
   
# Visualisierung: Dateisystem: USB-Stick
# define wl_sysmon_fs_usb1 SVG FileLog_sysmon:SM_FS_usb1:CURRENT
# attr wl_sysmon_fs_usb1 group Sys
# attr wl_sysmon_fs_usb1 label "USB1 Total: $data{max1}, Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}"
# attr wl_sysmon_fs_usb1 room NUC
   
# Anzeige der Readings zum Einbinden in ein 'Raum'.
define SysValues weblink htmlCode {SYSMON_ShowValuesHTML('sysmon')}
attr SysValues group Sys
attr SysValues room NUC
   
# Anzeige CPU Auslasung
define wl_sysmon_cpustat SVG FileLog_sysmon:SM_CPUStat:CURRENT
attr wl_sysmon_cpustat group Sys
attr wl_sysmon_cpustat label "CPU(min/max): user:$data{min1}/$data{max1} nice:$data{min2}/$data{max2} sys:$data{min3}/$data{max3} idle:$data{min4}/$data{max4} io:$data{min5}/$data{max5} irq:$data{min6}/$data{max6} sirq:$data{min7}/$data{max7}"
attr wl_sysmon_cpustat room NUC
#attr wl_sysmon_cpustat plotsize 840,420

define wl_sysmon_cpustat_s SVG FileLog_sysmon:SM_CPUStatSum:CURRENT
attr wl_sysmon_cpustat_s group Sys
attr wl_sysmon_cpustat_s label "CPU(min/max): user:$data{min1}/$data{max1} nice:$data{min2}/$data{max2} sys:$data{min3}/$data{max3} idle:$data{min4}/$data{max4} io:$data{min5}/$data{max5} irq:$data{min6}/$data{max6} sirq:$data{min7}/$data{max7}"
attr wl_sysmon_cpustat_s room NUC
#attr wl_sysmon_cpustat_s plotsize 840,420

define wl_sysmon_cpustatT SVG FileLog_sysmon:SM_CPUStatTotal:CURRENT
attr wl_sysmon_cpustatT group Sys
attr wl_sysmon_cpustatT label "CPU-Auslastung"
attr wl_sysmon_cpustatT room NUC
#attr wl_sysmon_cpustatT plotsize 840,420

# Anzeige Stromversorgung AC
#define wl_sysmon_power_ac SVG FileLog_sysmon:SM_power_ac:CURRENT
#attr wl_sysmon_power_ac label "Stromversorgung (ac) Spannung: $data{min1} - $data{max1} V,  Strom: $data{min2} - $data{max2} mA"
#attr wl_sysmon_power_ac room NUC
#attr wl_sysmon_power_ac group Sys

Die mit # auskommentierten habe bei mir aktuell noch keine Funktion.

Gruß Newbee
Intel-NUC mit ubuntu server 20.04; FHEM 6.0
HM, Dect, Netatmo, Hue

Offline Ma_Bo

  • Hero Member
  • *****
  • Beiträge: 1282
Antw:SYSMON auf Intel NUC DN2820FYKH0
« Antwort #8 am: 29 Januar 2015, 17:51:04 »
DANKE !
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Offline Newbee

  • Full Member
  • ***
  • Beiträge: 164
Antw:SYSMON auf Intel NUC DN2820FYKH0
« Antwort #9 am: 29 Januar 2015, 18:32:01 »
DANKE !

Gerne! Hoffe es funktioniert damit genau so reibungslos wie bei mir?

Gruß Newbee
Intel-NUC mit ubuntu server 20.04; FHEM 6.0
HM, Dect, Netatmo, Hue

Offline Ma_Bo

  • Hero Member
  • *****
  • Beiträge: 1282
Antw:SYSMON auf Intel NUC DN2820FYKH0
« Antwort #10 am: 31 Januar 2015, 15:08:17 »
Habe es gerade mal eingebaut, jetzt noch bissl warten und schauen ob alles läuft
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Offline Ma_Bo

  • Hero Member
  • *****
  • Beiträge: 1282
Antw:SYSMON auf Intel NUC DN2820FYKH0
« Antwort #11 am: 31 Januar 2015, 15:27:32 »
Scheint ohne erkennbare Probleme zu laufen, nur mein Plot funktioniert nicht, hast du da schon was geändert ?

Bekommst du die CPU Temperatur angezeigt, bei mir geht die noch nicht.
« Letzte Änderung: 31 Januar 2015, 16:22:22 von Ma_Bo »
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Offline Newbee

  • Full Member
  • ***
  • Beiträge: 164
Antw:SYSMON auf Intel NUC DN2820FYKH0
« Antwort #12 am: 31 Januar 2015, 17:52:09 »
Scheint ohne erkennbare Probleme zu laufen, nur mein Plot funktioniert nicht, hast du da schon was geändert ?

Bekommst du die CPU Temperatur angezeigt, bei mir geht die noch nicht.

Plots funktionieren! Habe nur den Raum angepasst und die Bezeichnung. Sonst ist alles wie im Wiki.
Bekomme die CPU Temp auch angezeigt.


Intel-NUC mit ubuntu server 20.04; FHEM 6.0
HM, Dect, Netatmo, Hue

Offline StefanD

  • Full Member
  • ***
  • Beiträge: 170
Antw:SYSMON auf Intel NUC DN2820FYKH0
« Antwort #13 am: 03 Februar 2015, 18:38:44 »
Ich hänge mich mit meinem Problem mal hier an, da der Titel ein Volltreffer ist und ich noch keine Lösung gefunden habe.  ::)

Auf meinem NUC, der aktuell mit ohne aktivierten Lüfter klaglos seinen Dienst tut, läuft ein Ubuntu 14.04 LTS:
stefan@fhem:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"
stefan@fhem:~$ uname -a
#Linux fhem 3.13.0-44-generic #73-Ubuntu SMP Tue Dec 16 00:22:43 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Sysmon liefert mir für die CPU Temperatur immer 26.8 was mir von Beginn an schon irgendwie komisch vorkam. Nach etwas googlen und herumprobieren bin ich dem Ganzen dann auf die Schliche gekommen:
stefan@fhem:~$ sensors
acpitz-virtual-0
Adapter: Virtual device
temp1:        +26.8°C  (crit = +90.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +58.0°C  (high = +105.0°C, crit = +105.0°C)
Core 1:       +58.0°C  (high = +105.0°C, crit = +105.0°C)

Es wird das virtuelle device ausgelesen, dessen Wert immer gleich ist. Ich habe testweise mal mit openssl speed einen Kern was arbeiten lassen, dabei bleib der Wert des virtuellen Device gleich, während die Temperaturen für Core0 und 1 plausibel angestiegen und nach beenden des OpenSSL Laufs auch ebenso plausibel wieder zurückgegangen.
Da es in ein paar Monaten wieder wärmer wird und ich mich nicht nur auf das handwarme Gehäuse verlassen möchte, würde ich schon gerne die echte CPU Temperatur auslesen und natürlich ins Logfile für die grafische Auswertung schreiben können. So kann ich dann recht gut verfolgen, ob ich mit deaktivierten Lüfter auskomme oder ihn bei etwas höheren Raumtemperaturen doch aktivieren muss/sollte.

sensors liefert dann auch die korrekten Devices:
stefan@fhem:~$ sensors -u
acpitz-virtual-0
Adapter: Virtual device
temp1:
  temp1_input: 26.800
  temp1_crit: 90.000

coretemp-isa-0000
Adapter: ISA adapter
Core 0:
  temp2_input: 59.000
  temp2_max: 105.000
  temp2_crit: 105.000
  temp2_crit_alarm: 0.000
Core 1:
  temp3_input: 60.000
  temp3_max: 105.000
  temp3_crit: 105.000
  temp3_crit_alarm: 0.000

Über den Thread http://forum.fhem.de/index.php/topic,27050.0.html bin ich auf folgendes Kommando gekommen, dass mir die Temperatur des ersten Core auch entsprechend korrekt ausgibt:
cat /sys/devices/platform/coretemp.0/temp2_input | awk '{ printf ("CPU Temperature = %0.1f°C\n",$1/1000); }'
Wie kriege ich diesen Wert und den des zweiten Core mit SYSMON raus?

Viele Grüße
Stefan
HW: Intel NUC8i5 mit ESXi7 mit Ubuntu Server 18.04 LTS und FHEM als DockerContainer

Offline StefanD

  • Full Member
  • ***
  • Beiträge: 170
Antw:SYSMON auf Intel NUC DN2820FYKH0
« Antwort #14 am: 09 Februar 2015, 16:56:42 »
Ich habe mir mit einer eigenen Funktion in der 99_myUtils.pm selbst beholfen. Folgende Parameter waren Basis für meine Umsetzung:
  • keine Manipulation der 42_SYSMON.pm um bei Updates des fhem nicht nachbessern zu müssen, sofern sich hier etwas ändert
  • keinen separates Dummy Device, somit auch kein seperates LogFile
  • Readings des Sysmon Device ergänzen und bestehende nicht verändern/überschreiben
  • Temperatur der Cores und jeweilige Frequenz sollen zeitgleich protokolliert werden

Funktion in der 99_myUtils.pm
my $CpuInfo;
sub CpuInfo ()
{
 my $mDevice = "sysmon";
 my $Cpu0Freq = sprintf("%d",(qx "cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq 2>&1")/1000);
 my $Cpu1Freq = sprintf("%d",(qx "cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq 2>&1")/1000);
 my $Cpu0Temp = sprintf("%0.1f",(qx "cat /sys/devices/platform/coretemp.0/temp2_input")/1000);
 my $Cpu1Temp = sprintf("%0.1f",(qx "cat /sys/devices/platform/coretemp.0/temp3_input")/1000);
 my $CpuMaxTemp = $Cpu0Temp;
 if($Cpu0Temp < $Cpu1Temp) { $CpuMaxTemp = $Cpu1Temp };
 fhem ("setreading $mDevice xCPU0_Freq $Cpu0Freq; setreading $mDevice xCPU1_Freq $Cpu1Freq; setreading $mDevice xCPU_Max_Temp $CpuMaxTemp; ");
}
Die Temperatur der beiden Cores wich in meinen Tests (mittels openssl speed) in nahezu allen Fällen 2°C ab, deshalb setze ich nur die höchste Temperatur beider Kerne.

Periodisches, kurzgetaktetes Auslesen via at
define at_CpuInfo at +*00:00:10 { CpuInfo();; }
attr at_CpuInfo room _System

Auch das sysmon Device habe ich etwas beschränkt, damit nur dann geloggt wird, wenn sich ein für mich interessanter Wert sich ändert:
attr sysmon event-on-change-reading xCPU0_Freq, xCPU1_Freq, xCPU_Max_Temp
Sysmon holt sich alle 15min die Systemdaten. Die 10s Taktung lasse ich vorerst für ca. 2 Wochen laufen und plane diese dann schrittweise verlängern, bis ich einen brauchbaren Kompromiss zwischen Abfragezyklus und CPU Frequenz/Temeratur gefunden habe. Denn ich möchte durchaus wissen, ob eine höhere Temperatur auch auf eine höhere Taktferquenz zurückzuführen ist. Die CPU Temperatur wäre träge genug, um auch für Zyklen bis zu 1min ausreichend Informationen zu liefern, da die CPU/Core Frequenz der Istwert des Auslesemoments ist, ist die Wahrscheinlichkeit hoch, dass diese schon wieder auf einem deutlich niedrigerem Takt läuft.

Beim Schreiben dieser Zeilen fällt mir noch ein anderer Ansatz ein: Mit zunehmender CPU Temperatur könnte man den Auslesezyklus verkürzen, dann hätte man im Falle eines Anstiegs, wenn auch verzögert, eine länger anhaltende höhere Core Frequenz im Log/Plot.  ::)

Viele Grüße
Stefan
HW: Intel NUC8i5 mit ESXi7 mit Ubuntu Server 18.04 LTS und FHEM als DockerContainer

Offline StefanD

  • Full Member
  • ***
  • Beiträge: 170
Antw:SYSMON auf Intel NUC DN2820FYKH0
« Antwort #15 am: 09 Februar 2015, 17:00:02 »
Hier noch ein Screenshot des daraus resultierenden Plots
HW: Intel NUC8i5 mit ESXi7 mit Ubuntu Server 18.04 LTS und FHEM als DockerContainer

Offline hexenmeister

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4699
    • tech_LogBuch
Antw:SYSMON auf Intel NUC DN2820FYKH0
« Antwort #16 am: 09 Februar 2015, 18:17:29 »
Ich habe mir mit einer eigenen Funktion in der 99_myUtils.pm selbst beholfen. Folgende Parameter waren Basis für meine Umsetzung:
  • keine Manipulation der 42_SYSMON.pm um bei Updates des fhem nicht nachbessern zu müssen, sofern sich hier etwas ändert
  • keinen separates Dummy Device, somit auch kein seperates LogFile
  • Readings des Sysmon Device ergänzen und bestehende nicht verändern/überschreiben
  • Temperatur der Cores und jeweilige Frequenz sollen zeitgleich protokolliert werden
[...]

Ab morgen kannst Du das eleganter lösen. SYSMON unterstützt jetzt das EInbinden von benutzerdefinierten Perl-Funktionen.

Zitat
user-fn <fn_name>:<Interval_Minutes>:<reading_name1>:<reading_name2>...[:<reading_nameX>],...
Liste der benutzerdefinierten Perlfunktionen.
Als <fn_name> können entweder Name einer Perlfunktion oder ein Perlausdruck verwendet werden. Die Perlfunktion bekommt den Device-Hash als Übergabeparameter und muss ein Array mit Werte liefern. Diese Werte werden entsprechend den Parameter <reading_nameX> in Readings übernommen.
Ein Perlausdruck muss in geschweifte Klammer eingeschlossen werden und kann folgende Paramter verwenden: $HASH (Device-Hash) und $NAME (Device-Name). Rückgabe wird analog einer Perlfunktion erwartet.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Offline Ma_Bo

  • Hero Member
  • *****
  • Beiträge: 1282
Antw:SYSMON auf Intel NUC DN2820FYKH0
« Antwort #17 am: 23 Februar 2015, 12:41:37 »
Hallo Hexenmeister, da ich jetzt die Funktion von StefanD zu laufen bekommen habe, könntest du mir kurz erklären oder ein Beispiel nennen, wie ich das jetzt mit der neuen Funktion bzw. mit dem einbinden für Sysmon hinbekomme.

Grüße Marcel
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Offline hexenmeister

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4699
    • tech_LogBuch
Antw:SYSMON auf Intel NUC DN2820FYKH0
« Antwort #18 am: 23 Februar 2015, 18:12:16 »
Zitat
user-fn <fn_name>:<Interval_Minutes>:<reading_name1>:<reading_name2>...[:<reading_nameX>],...
Liste der benutzerdefinierten Perlfunktionen.
Als <fn_name> können entweder Name einer Perlfunktion oder ein Perlausdruck verwendet werden. Die Perlfunktion bekommt den Device-Hash als Übergabeparameter und muss ein Array mit Werte liefern. Diese Werte werden entsprechend den Parameter <reading_nameX> in Readings übernommen.
Ein Perlausdruck muss in geschweifte Klammer eingeschlossen werden und kann folgende Paramter verwenden: $HASH (Device-Hash) und $NAME (Device-Name). Rückgabe wird analog einer Perlfunktion erwartet.

attr <sysmon> user-fn myPrettyFunction:1:myValue1:myValue2:myValueN
sub myPrettyFunction() {
 my value1="some";
 my value2="values";
 my valueN="here";

 return (value1,value2,valueN);
}
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Offline Ma_Bo

  • Hero Member
  • *****
  • Beiträge: 1282
Antw:SYSMON auf Intel NUC DN2820FYKH0
« Antwort #19 am: 25 Februar 2015, 16:34:44 »
Danke
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Offline uwete

  • Newbie
  • Beiträge: 1
Antw:SYSMON auf Intel NUC DN2820FYKH0
« Antwort #20 am: 26 November 2021, 18:21:01 »
Danke StefanD!

Habe dein myutils übernommen.
Nur sehen bei mir mit Debian 11 auf Brix N3000 (Celeron Zweikern) die Pfade so aus:
my $CpuInfo;
sub CpuInfo ()
{
 my $mDevice = "sysmon";
 my $Cpu0Freq = sprintf("%d",(qx "cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq 2>&1")/1000);
 my $Cpu1Freq = sprintf("%d",(qx "cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq 2>&1")/1000);
 my $Cpu0Temp = sprintf("%0.1f",(qx "cat /sys/devices/platform/coretemp.0/hwmon/hwmon1/temp2_input")/1000);
 my $Cpu1Temp = sprintf("%0.1f",(qx "cat /sys/devices/platform/coretemp.0/hwmon/hwmon1/temp3_input")/1000);
 my $CpuMaxTemp = $Cpu0Temp;
 if($Cpu0Temp < $Cpu1Temp) { $CpuMaxTemp = $Cpu1Temp };
 fhem ("setreading $mDevice xCPU0_Freq $Cpu0Freq; setreading $mDevice xCPU1_Freq $Cpu1Freq; setreading $mDevice xCPU_0_Temp $Cpu0Temp; setreading $mDevice xCPU_1_Temp $Cpu1Temp; setreading $mDevice xCPU_Max_Temp $CpuMaxTemp; ");
}

Ich lasse mir auch beide Kerntemperaturen anzeigen.

 

decade-submarginal