@lucky_esa Super, besten Dank! Das hat mich auf jeden Fall inspiriert — auch wenn meine Lösung nun etwas anders aussieht, aber die Idee, einfach direkt Werte zu setzen statt über einen anderen Adapter wie SNMP zu gehen, fand ich dann in der Tat erstmal einfacher.
Was ich jetzt mache, ist Folgendes:
const sistm = require("systeminformation");
const prefix = "0_userdata.0.temperatures";
{
const data = await sistm.cpuTemperature();
createState(prefix + ".main", undefined, {name: "CPU Temp Main", unit: "°C"});
createState(prefix + ".socket", undefined, {name: "CPU Temp Socket", unit: "°C"});
for (let i = 0; i < data.cores.length; i++) {
createState(prefix + ".cores-" + i, undefined, {name: "CPU Temp Core "+i, unit: "°C"});
}
}
schedule({second: [0, 30]}, async function () {
const data = await sistm.cpuTemperature();
setState(prefix + ".main", {val: data.main !== null ? data.main : null, ack: true});
setState(prefix + ".socket", {val: data.socket[0] !== null ? data.socket[0] : null, ack: true});
for (let i = 0; i < data.cores.length; i++) {
setState(prefix + ".cores-" + i, {val: data.cores[i] !== null ? data.cores[i] : null, ack: true});
}
// console.log("cpu Temp res = " + JSON.stringify(data));
});
Das nutzt systeminformation
, was noch gut gepflegt wird und auch vom Info-Adapter verwendet wurde. Damit legt es dann Datenpunkte, die ähnlich benannt sind wie beim Info-Adapter, für die CPU-Temperaturen an. Aktuell Auslese alle 30 Sekunden, das werde ich vermutlich noch reduzieren.
Dazu muss das NPM-Modul systeminformation
natürlich installiert sein.
Vielleicht hilft das ja Jemandem, der auch so eine Lösung sucht .