FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: stefan-dd am 01 April 2019, 21:32:25

Titel: core temperatur
Beitrag von: stefan-dd am 01 April 2019, 21:32:25
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?
Titel: Antw:core temperatur
Beitrag von: juemuc am 01 April 2019, 21:40:02
Hallo,

ich nutze dazu das Modul sysmon.

Viele Grüße
Jürgen
Titel: Antw:core temperatur
Beitrag von: Otto123 am 01 April 2019, 21:51:14
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
Titel: Antw:core temperatur
Beitrag von: stefan-dd am 03 April 2019, 22:51:28
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?
Titel: Antw:core temperatur
Beitrag von: Otto123 am 03 April 2019, 23:02:38
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
Titel: Antw:core temperatur
Beitrag von: stefan-dd am 04 April 2019, 20:19:26
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 &degC
attr CoreTemp userReadings state { int (ReadingsNum("$NAME","temperature",0)) / 1000 }