Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Gelöst: Script zur Abfrage der CPU Temp

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Gelöst: Script zur Abfrage der CPU Temp

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      michihorn @Thomas Braun last edited by

      @thomas-braun Klingt interessant und wie bringe ich die dann in Iobroker?

      Thomas Braun 1 Reply Last reply Reply Quote 0
      • Thomas Braun
        Thomas Braun Most Active @michihorn last edited by

        @michihorn

        Mit einem Skriptchen oder Blockly.

        M 1 Reply Last reply Reply Quote 0
        • M
          michihorn @Thomas Braun last edited by michihorn

          @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.

          1 Reply Last reply Reply Quote 0
          • Thomas Braun
            Thomas Braun Most Active last edited by

            @michihorn

            Ich auch nicht.
            Mit dem EXEC-Baustein-Blockly vielleicht.

            M 1 Reply Last reply Reply Quote 0
            • M
              michihorn @Thomas Braun last edited by

              @thomas-braun okay dann forsche ich mal.Danke erst mal

              T 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @michihorn last edited by paul53

                @michihorn sagte: Abfrage der CPU Temperatur

                Welche CPU? Raspberry Pi?

                Thomas Braun 1 Reply Last reply Reply Quote 0
                • T
                  ticaki Developer @michihorn last edited by

                  @michihorn

                  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);
                  
                  1 Reply Last reply Reply Quote 0
                  • Thomas Braun
                    Thomas Braun Most Active @paul53 last edited by

                    @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.

                    M 1 Reply Last reply Reply Quote 1
                    • M
                      michihorn last edited by

                      @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/A

                      Also kann ich mit Substr, das sicher einkürzen, oder gibt es einen einfacheren Weg?

                      T 1 Reply Last reply Reply Quote 0
                      • T
                        ticaki Developer @michihorn last edited by

                        @michihorn

                        Ja das sollte mit regex gehen... muß das aber mal gerade selbst versuchen

                        1 Reply Last reply Reply Quote 0
                        • M
                          michihorn @Thomas Braun last edited by michihorn

                          @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
                          hürde.png

                          Edit: War der falsche Datentyp im DP

                          Danke für die Hilfe 👍

                          T 1 Reply Last reply Reply Quote 0
                          • T
                            ticaki Developer @michihorn last edited by

                            @michihorn

                            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
                            
                            1 Reply Last reply Reply Quote 1
                            • First post
                              Last post

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            683
                            Online

                            31.7k
                            Users

                            79.8k
                            Topics

                            1.3m
                            Posts

                            javascript
                            4
                            16
                            586
                            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