NEWS
Gelöst: Script zur Abfrage der CPU Temp
-
Das ist ein Paket, mit dem man diverse Sensoren auslesen kann.
sudo apt install lm-sensorsAusgabe 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?
-
@thomas-braun Klingt interessant und wie bringe ich die dann in Iobroker?
Mit einem Skriptchen oder Blockly.
-
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. -
Ich auch nicht.
Mit dem EXEC-Baustein-Blockly vielleicht.@thomas-braun okay dann forsche ich mal.Danke erst mal
-
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@michihorn sagte: Abfrage der CPU Temperatur
Welche CPU? Raspberry Pi?
-
@thomas-braun okay dann forsche ich mal.Danke erst mal
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); -
@michihorn sagte: Abfrage der CPU Temperatur
Welche CPU? Raspberry Pi?
@paul53 sagte in Script zur Abfrage der CPU Temp:
Welche CPU? Raspberry Pi?
Beim Pi könnte man es auch per
vcgencmd measure_tempauslesen.
-
@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?
-
@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
-
@paul53 sagte in Script zur Abfrage der CPU Temp:
Welche CPU? Raspberry Pi?
Beim Pi könnte man es auch per
vcgencmd measure_tempauslesen.
@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_tempauslesen.
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

-
@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_tempauslesen.
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
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden