Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. CPU-Temperatur ohne extra Adapter auslesen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    CPU-Temperatur ohne extra Adapter auslesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      loverz last edited by loverz

      Hallo zusammen,

      hab mir vom Copilot ein Script basteln lassen, welches die CPU Temperatur zyklisch ausliest und in einen Datenpunkt schreibt.

      Dazu ist außer dem Javascript-Adapter kein weiterer nötig.

      Zuvor muss den entsprechende Datenpunkt in den Objekten angelegt werden.

      Viel Spaß damit:

      const schedule = require('node-schedule');
      
      // Funktion zum Auslesen der CPU-Temperatur
      function readCPUTemperature() {
          const fs = require('fs');
          try {
              const temp = fs.readFileSync('/sys/class/thermal/thermal_zone0/temp', 'utf8');
              return parseFloat(temp) / 1000; // Temperatur in Grad Celsius umrechnen
          } catch (err) {
              console.error('Fehler beim Auslesen der CPU-Temperatur:', err);
              return null;
          }
      }
      
      // Funktion zur Speicherung der Temperatur in ioBroker
      function updateTemperature() {
          const temperature = readCPUTemperature();
          if (temperature !== null) {
              setState('javascript.0.Variablen.Homeserver.CPU_Temperatur', temperature);
          }
      }
      
      // Zeitplan erstellen: alle 1 Minute
      const job = schedule.scheduleJob('*/1 * * * *', function() {
          updateTemperature();
      });
      
      
      haus-automatisierung 1 Reply Last reply Reply Quote 0
      • haus-automatisierung
        haus-automatisierung Developer Most Active @loverz last edited by

        @loverz Auch hier: Unnötig komplex.

        • node-schedule ist nicht nötig. Es gibt ja die internen Funktionen der Sandbox dafür
        • Man schreibt eigene Datenpunkte immer bestätigt (sonst bleiben die ja rot und viele andere Adapter können damit nicht arbeiten / ignorieren die Werte).

        Vorschlag:

        const fs = require('node:fs');
        
        // Zeitplan erstellen: jede Minute
        schedule('* * * * *', () => {
            try {
                const temp = fs.readFileSync('/sys/class/thermal/thermal_zone0/temp', 'utf8');
                if (temp) {
                    const temperatureC = parseFloat(temp) / 1000; // Temperatur in Grad Celsius umrechnen;
                    setState('javascript.0.Variablen.Homeserver.CPU_Temperatur', temperatureC, true);
                }
            } catch (err) {
                console.error(`Fehler beim Auslesen der CPU-Temperatur: ${err}`);
            }
        });
        
        1 Reply Last reply Reply Quote 1
        • First post
          Last post

        Support us

        ioBroker
        Community Adapters
        Donate
        FAQ Cloud / IOT
        HowTo: Node.js-Update
        HowTo: Backup/Restore
        Downloads
        BLOG

        615
        Online

        31.9k
        Users

        80.3k
        Topics

        1.3m
        Posts

        2
        2
        176
        Loading More Posts
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes
        Reply
        • Reply as topic
        Log in to reply
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
        The ioBroker Community 2014-2023
        logo