NEWS
Gelöst: Script zur Abfrage der CPU Temp
-
Hallo
ich suche ein Script zur Abfrage der CPU Temperatur. Ich habe ein Master/Slave System.
Der "Info" Adapter gibt nur die Temp, des Hostes auf dem "Info" installiert wurde.
Ich möchte keine weiteren Adapter nutzen.
Michael -
-
@thomas-braun Moin Thomas, dass ist mir etwas pauschal, kannst du konkreter werden, wie ich das anstelle?
Was ist lm-sensors und wo installiere ich das? -
Das ist ein Paket, mit dem man diverse Sensoren auslesen kann.
sudo apt install lm-sensors
Ausgabe sieht dann ungefähr so aus:
echad@chet:~ $ sensors cpu_thermal-virtual-0 Adapter: Virtual device temp1: +47.7°C (crit = +110.0°C) rpi_volt-isa-0000 Adapter: ISA adapter in0: N/A echad@chet:~ $
-
@thomas-braun Klingt interessant und wie bringe ich die dann in Iobroker?
-
Mit einem Skriptchen oder Blockly.
-
@thomas-braun also die Werte habe ich nun im Terminal, aber wie ich nun die Werte mit einem Script abrufen kann, weiß ich leider nicht.
-
Ich auch nicht.
Mit dem EXEC-Baustein-Blockly vielleicht. -
@thomas-braun okay dann forsche ich mal.Danke erst mal
-
@michihorn sagte: Abfrage der CPU Temperatur
Welche CPU? Raspberry Pi?
-
Ich hab sowas um zu checken ob ich online bin:
var con_active = false; setInterval(function(){ con_active = false; exec('ping -qc 2 www.google.com', callback) exec('ping -qc 2 www.bing.com', callback) exec('ping -qc 2 www.heise.de', callback) },60000) exec('ping -qc 2 www.google.com', callback) exec('ping -qc 2 www.bing.com', callback) exec('ping -qc 2 www.heise.de', callback) function callback(err, res) { let should = res.substring(res.indexOf('statistics ---') + ('statistics ---').length, res.indexOf(' packets transmitted')); should = Number(should) let current = res.substring(res.indexOf('transmitted, ') + ('transmitted, ').length, res.indexOf('received')); current = Number(current) con_active = con_active || should && should == current //log("test " + res) setState('0_userdata.0.internet_connected', !!con_active, true);
-
@paul53 sagte in Script zur Abfrage der CPU Temp:
Welche CPU? Raspberry Pi?
Beim Pi könnte man es auch per
vcgencmd measure_temp
auslesen.
-
@paul53 Raspberry 4
Ich habe es mal so versucht:
schedule("* * * * *", function () { exec('sensors', function (error, stdout, stderr) { setState('0_userdata.0.System.pitemp',stdout); }); });
Dann wird der DP auch beschrieben mit:
cpu_thermal-virtual-0
Adapter: Virtual device
temp1: +44.3°C (crit = +110.0°C)rpi_volt-isa-0000
Adapter: ISA adapter
in0: N/AAlso kann ich mit Substr, das sicher einkürzen, oder gibt es einen einfacheren Weg?
-
Ja das sollte mit regex gehen... muß das aber mal gerade selbst versuchen
-
@thomas-braun sagte in Script zur Abfrage der CPU Temp:
@paul53 sagte in Script zur Abfrage der CPU Temp:
Welche CPU? Raspberry Pi?
Beim Pi könnte man es auch per
vcgencmd measure_temp
auslesen.
schedule("* * * * *", function () { //exec('sensors', function (error, stdout, stderr) { setState('0_userdata.0.System.pitemp',stdout); }); exec('vcgencmd measure_temp', function (error, stdout, stderr) { setState('0_userdata.0.System.pitemp',stdout); }); });
Das Ergebnis ist:
temp=44.8'C
Klappt...mit einer kleinen Hürde, denn ich habe eine Warnmeldung
Edit: War der falsche Datentyp im DP
Danke für die Hilfe
-
Auch wenns schon geht:
const test = `cpu_thermal-virtual-0 Adapter: Virtual device temp1: +44.3°C (crit = +110.0°C) rpi_volt-isa-0000 Adapter: ISA adapter in0: N/A` const reg = /[0-9\.]+°C/; const result = test.match(reg); if (result) log(result[0])
javascript.0 (619) script.js.Test.Skript_2: 44.3°C