Hallo,
ich möchte mir die Coretemperatur in fhem anzeigen lassen.
In der Konsole bekomme ich die Temperatur mit "sensors" angezeigt.
root@fhem:~# sensors
soc_dts1-virtual-0
Adapter: Virtual device
temp1: +61.0°C
acpitz-virtual-0
Adapter: Virtual device
temp1: +0.0°C (crit = +100.0°C)
coretemp-isa-0000
Adapter: ISA adapter
Core 0: +65.0°C (high = +90.0°C, crit = +90.0°C)
Core 1: +65.0°C (high = +90.0°C, crit = +90.0°C)
Core 2: +63.0°C (high = +90.0°C, crit = +90.0°C)
Core 3: +63.0°C (high = +90.0°C, crit = +90.0°C)
soc_dts0-virtual-0
Adapter: Virtual device
temp1: +63.0°C
Wie kann ich mir "temp1" anzeigen lassen? Kann man die Werte aus der Konsole in fhem übernehmen? Wie macht man so etwas?
Hallo,
ich nutze dazu das Modul sysmon.
Viele Grüße
Jürgen
Hi,
also sysmon kann das sicher. Aber generell sowas wie hier als Grundidee:
https://forum.fhem.de/index.php/topic,97725.msg909942.html#msg909942
Kannst Du noch etwas greppen, regexen und in ein Reading oder dummy schreiben.
Gruß Otto
Sysmon zeigt mir leider keine Temperaturen, sonst alles mögliche.
Die Temperatur Core0 liegt in einer Datei unter:
/sys/devices/platform/coretemp.0/subsystem/devices/coretemp.0/hwmon/hwmon3/temp2_input
Wie bekomme ich den Wert nach Fhem?
Bei mir zeigt sysmon die cputemp - komisch.
Aber wie schon gesagt, mit dem Befehl in der FHEM Kommandozeile
{qx(cat /sys/devices/platform/coretemp.0/subsystem/devices/coretemp.0/hwmon/hwmon3/temp2_input)}
hast Du den Text im Browserfenster.
mit {my $tempinput = qx {(...)}}
hast Du den Text in einer perl Variable.
mit {fhem("set DummyTemp $tempinput")}
hast Du den Text in einem FHEM Dummy. Dazwischen musst Du "bloß" noch etwas filtern :)
Du kannst auch Perlfunktionen wie fileread zum Einlesen der Datei nehmen: https://wiki.fhem.de/wiki/DevelopmentModuleAPI
Gruß Otto
Danke, ich habe es so gelöst.
defmod CoreTemp CustomReadings
attr CoreTemp interval 30
attr CoreTemp readingDefinitions temperature:qx (cat /sys/devices/platform/coretemp.0/subsystem/devices/coretemp.0/hwmon/hwmon3/temp2_input)
attr CoreTemp stateFormat state °C
attr CoreTemp userReadings state { int (ReadingsNum("$NAME","temperature",0)) / 1000 }