Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Gelöst] CPU Temperatur von Proxmox VM

    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

    [Gelöst] CPU Temperatur von Proxmox VM

    This topic has been deleted. Only users with topic management privileges can see it.
    • Dr. Bakterius
      Dr. Bakterius Most Active @marcuskl last edited by

      @marcuskl Probier doch bitte mal folgendes Skript:

      #!/bin/bash
      
      #ioBroker-Datenpunkt
      DP=info.0.sysinfo.cpu.temperature.main
      
      #ioBroker-IP:Port
      IPP=192.168.0.195:8081
      
      #Systemtemperatur abfragen
      SQL=$(sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3)
      
      #an ioBroker senden
      curl http://${IPP}/set/${DP}?value={$SQL}
      

      Das ist jetzt kürzer und sollte nur einmal den Wert übermitteln. Ich habe ein paar Anmerkungen hinter den Befehlen entfernt - vielleicht liegt es daran? Wenn das klappt, kannst du ja die Wiederholungen hinzufügen.

      marcuskl 1 Reply Last reply Reply Quote 0
      • Dr. Bakterius
        Dr. Bakterius Most Active @lobomau last edited by

        @lobomau Vorher mal

        apt-get update
        

        gemacht? Ich habe unter 'root' dann mit

        apt-get install lm-sensors
        

        das Paket installiert bekommen.

        1 Reply Last reply Reply Quote 1
        • marcuskl
          marcuskl @Dr. Bakterius last edited by

          @Dr-Bakterius sagte in CPU Temperatur von Proxmox VM:

          @marcuskl Probier doch bitte mal folgendes Skript:

          #!/bin/bash
          
          #ioBroker-Datenpunkt
          DP=info.0.sysinfo.cpu.temperature.main
          
          #ioBroker-IP:Port
          IPP=192.168.0.195:8081
          
          #Systemtemperatur abfragen
          SQL=$(sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3)
          
          #an ioBroker senden
          curl http://${IPP}/set/${DP}?value={$SQL}
          

          Das ist jetzt kürzer und sollte nur einmal den Wert übermitteln. Ich habe ein paar Anmerkungen hinter den Befehlen entfernt - vielleicht liegt es daran? Wenn das klappt, kannst du ja die Wiederholungen hinzufügen.

          Immernoch

          
          Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
          permitted by applicable law.
          Last login: Thu Jul  4 21:47:43 2019 from 192.168.0.28
          root@pve:~# cd /usr/local/bin
          root@pve:/usr/local/bin# bash cpu_temp_send_iobroker.sh
          curl: (3) [globbing] unmatched brace in column 73curl: (3) [globbing] unmatched close brace/bracket in column 3
          root@pve:/usr/local/bin#
          

          Stimmt vllt der Pfad nicht ? Oder muss ich was noch Installieren ?
          Was heißt der Fehler überhaupt?

          Dr. Bakterius 1 Reply Last reply Reply Quote 0
          • Dr. Bakterius
            Dr. Bakterius Most Active @marcuskl last edited by Dr. Bakterius

            @marcuskl Ich glaube, dass bei dir der Temperaturwert nicht richtig beschnitten wird. Wenn du

            sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3
            

            eingibst, bekommst du

            49
            /A
            

            oder?

            Da sollte aber nur

            49
            

            stehen (bzw. die gerade aktuelle Temperatur.

            Poste doch mal bitte was bei dir

            sensors
            

            auswirft. Dann kann man sich herantasten. 😉

            Bei mir steht dann:

            acpitz-virtual-0
            Adapter: Virtual device
            temp1:        +54.0°C  (crit = +100.0°C)
            
            coretemp-isa-0000
            Adapter: ISA adapter
            Package id 0:  +54.0°C  (high = +105.0°C, crit = +105.0°C)
            Core 0:        +54.0°C  (high = +105.0°C, crit = +105.0°C)
            Core 1:        +54.0°C  (high = +105.0°C, crit = +105.0°C)
            Core 2:        +53.0°C  (high = +105.0°C, crit = +105.0°C)
            Core 3:        +53.0°C  (high = +105.0°C, crit = +105.0°C)
            

            Und die ersten 54 in der Zeile 'temp1:' will ich haben. Wenn das bei dir anders aussieht, muss man die folgenden Befehle anpassen.

            Wenn ich das Schritt für Schritt ausführe sieht das z.B. so aus:

            root@proxmox:~# sensors | grep 'temp1:'
            temp1:        +51.0°C  (crit = +100.0°C)
            root@proxmox:~# sensors | grep 'temp1:' | awk '{print $2}'
            +52.0°C
            root@proxmox:~# sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3
            51
            
            
            marcuskl 1 Reply Last reply Reply Quote 1
            • marcuskl
              marcuskl @Dr. Bakterius last edited by

              @Dr-Bakterius sagte in CPU Temperatur von Proxmox VM:

              @marcuskl Ich glaube, dass bei dir der Temperaturwert nicht richtig beschnitten wird. Wenn du

              sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3
              

              eingibst, bekommst du

              49
              /A
              

              oder?

              Da sollte aber nur

              49
              

              stehen (bzw. die gerade aktuelle Temperatur.

              Poste doch mal bitte was bei dir

              sensors
              

              auswirft. Dann kann man sich herantasten. 😉

              Bei mir steht dann:

              acpitz-virtual-0
              Adapter: Virtual device
              temp1:        +54.0°C  (crit = +100.0°C)
              
              coretemp-isa-0000
              Adapter: ISA adapter
              Package id 0:  +54.0°C  (high = +105.0°C, crit = +105.0°C)
              Core 0:        +54.0°C  (high = +105.0°C, crit = +105.0°C)
              Core 1:        +54.0°C  (high = +105.0°C, crit = +105.0°C)
              Core 2:        +53.0°C  (high = +105.0°C, crit = +105.0°C)
              Core 3:        +53.0°C  (high = +105.0°C, crit = +105.0°C)
              

              Und die ersten 54 in der Zeile 'temp1:' will ich haben. Wenn das bei dir anders aussieht, muss man die folgenden Befehle anpassen.

              Ich habe jz mal curl -g probiert, da gibg es, aber hat es falsch eingesetzt mit einer Klammer davor.

              root@pve:/usr/local/bin# bash cpu_temp_send_iobroker.sh
              {"id":"info.0.sysinfo.cpu.temperature.main","value":"{49","val":"{49"}curl: (3) <url> malformed
              root@pve:/usr/local/bin# sensors
              coretemp-isa-0000
              Adapter: ISA adapter
              Package id 0:  +49.0°C  (high = +105.0°C, crit = +105.0°C)
              Core 0:        +49.0°C  (high = +105.0°C, crit = +105.0°C)
              Core 1:        +48.0°C  (high = +105.0°C, crit = +105.0°C)
              Core 2:        +47.0°C  (high = +105.0°C, crit = +105.0°C)
              Core 3:        +47.0°C  (high = +105.0°C, crit = +105.0°C)
              
              acpitz-virtual-0
              Adapter: Virtual device
              temp1:        +50.0°C  (crit = +100.0°C)
              
              iwlwifi-virtual-0
              Adapter: Virtual device
              temp1:            N/A
              
              root@pve:/usr/local/bin#
              

              Hier noch die Daten von den Sensoren

              Dr. Bakterius 2 Replies Last reply Reply Quote 0
              • Dr. Bakterius
                Dr. Bakterius Most Active @marcuskl last edited by Dr. Bakterius

                @marcuskl Ich habe meinen vorigen Beitrag noch ergänzt. Vielleicht probierst du auch:

                root@proxmox:~# sensors | grep 'temp1:'
                temp1:        +51.0°C  (crit = +100.0°C)
                root@proxmox:~# sensors | grep 'temp1:' | awk '{print $2}'
                +52.0°C
                root@proxmox:~# sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3
                51
                root@proxmox:~#
                
                
                marcuskl 1 Reply Last reply Reply Quote 0
                • marcuskl
                  marcuskl @Dr. Bakterius last edited by

                  @Dr-Bakterius sagte in CPU Temperatur von Proxmox VM:

                  @marcuskl Ich habe meinen vorigen Beitrag noch ergänzt. Vielleicht probierst du auch:

                  root@proxmox:~# sensors | grep 'temp1:'
                  temp1:        +51.0°C  (crit = +100.0°C)
                  root@proxmox:~# sensors | grep 'temp1:' | awk '{print $2}'
                  +52.0°C
                  root@proxmox:~# sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3
                  51
                  root@proxmox:~#
                  
                  
                  root@pve:/usr/local/bin# sensors | grep 'temp1:'
                  temp1:        +48.0°C  (crit = +100.0°C)         temp1:            N/A
                  root@pve:/usr/local/bin# sensors | grep 'temp1:' | awk '{print $2}'
                  +49.0°C
                  N/A
                  root@pve:/usr/local/bin# sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3
                  49
                  /A
                  

                  So bei mir

                  Dr. Bakterius 1 Reply Last reply Reply Quote 0
                  • Dr. Bakterius
                    Dr. Bakterius Most Active @marcuskl last edited by Dr. Bakterius

                    @marcuskl sagte in CPU Temperatur von Proxmox VM:

                    curl -g

                    Ich glaube ich habe den Fehler gefunden! In der 'curl'-Zeile ist eine Klammer an der falschen Stelle. Versuch mal folgenden Code:

                    #!/bin/bash
                    
                    #ioBroker-Datenpunkt
                    DP=info.0.sysinfo.cpu.temperature.main
                    
                    #ioBroker-IP:Port
                    IPP=192.168.0.195:8081
                    
                    #Systemtemperatur abfragen
                    SQL=$(sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3)
                    
                    #an ioBroker senden
                    curl http://${IPP}/set/${DP}?value=${SQL}
                    

                    Interessant, dass es bei mir trotzdem funktioniert. Bei Aufruf der Bash-Datei erhalte ich:

                    {"id":"info.0.sysinfo.cpu.temperature.main","value":51,"val":51}
                    
                    C 1 Reply Last reply Reply Quote 0
                    • Dr. Bakterius
                      Dr. Bakterius Most Active @marcuskl last edited by

                      @marcuskl Ach ja, du hast ja zwei Zeilen mit "temp1:". Du kannst statt 'temp1:' auch mal 'Package id 0:' versuchen, dann solltest du nur eine Zeile erhalten.

                      liv-in-sky marcuskl 2 Replies Last reply Reply Quote 0
                      • liv-in-sky
                        liv-in-sky @Dr. Bakterius last edited by

                        @Dr-Bakterius

                        @marcuskl sagte in CPU Temperatur von Proxmox VM:

                        sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3
                        wenn du 2 zeilen mit temp1 hast ginge auch

                        sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3
                        1 Reply Last reply Reply Quote 0
                        • marcuskl
                          marcuskl @Dr. Bakterius last edited by

                          @Dr-Bakterius sagte in CPU Temperatur von Proxmox VM:

                          @marcuskl Ach ja, du hast ja zwei Zeilen mit "temp1:". Du kannst statt 'temp1:' auch mal 'Package id 0:' versuchen, dann solltest du nur eine Zeile erhalten.

                          root@pve:/usr/local/bin# bash cpu_temp_send_iobroker.sh
                          {"id":"info.0.sysinfo.cpu.temperature.main","valuroot@pve:/usr/local/bin# bash cpu_temp_send_iobroker.sh
                          

                          Erstmal mit der Verbesserung funktioniert es auch ohne -g

                          Aber es ändert jz den wert auf "d" wenn ich package id 0 nehme

                          Dr. Bakterius 1 Reply Last reply Reply Quote 0
                          • Dr. Bakterius
                            Dr. Bakterius Most Active @marcuskl last edited by Dr. Bakterius

                            @marcuskl Dann nimmt er "d " von "package id 0". Versuch es mit dem Befehl von @liv-in-sky oder mit '{print $4}' statt '{print $2}'.

                            marcuskl 1 Reply Last reply Reply Quote 0
                            • marcuskl
                              marcuskl @Dr. Bakterius last edited by

                              @Dr-Bakterius sagte in CPU Temperatur von Proxmox VM:

                              @marcuskl Dann nimmt er "d " von "package id 0". Versuch es mit dem Befehl von @liv-in-sky oder mit '{print $4}' statt '{print $2}'.

                              root@pve:/usr/local/bin# bash cpu_temp_send_iobroker.sh
                              {"id":"info.0.sysinfo.cpu.temperature.main","value":48,"val":48}root@pve:/usr/local/bin#
                              

                              Ja funktioniert.
                              Super danke euch!!!

                              1 Reply Last reply Reply Quote 0
                              • marcuskl
                                marcuskl last edited by

                                Für alle nochmal das verbesserte Skript:

                                #!/bin/bash
                                
                                #ioBroker-Datenpunkt
                                DP=info.0.sysinfo.cpu.temperature.main
                                
                                #ioBroker-IP:Port
                                IPP=192.168.0.195:8087 
                                
                                #Systemtemperatur abfragen
                                SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                
                                
                                #an ioBroker senden
                                sleep 10
                                SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                curl http://${IPP}/set/${DP}?value=${SQL}
                                sleep 10
                                SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                curl http://${IPP}/set/${DP}?value=${SQL}
                                sleep 10
                                SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                curl http://${IPP}/set/${DP}?value=${SQL}
                                sleep 10
                                SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                curl http://${IPP}/set/${DP}?value=${SQL}
                                sleep 10
                                SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                curl http://${IPP}/set/${DP}?value=${SQL}
                                
                                Dr. Bakterius 1 Reply Last reply Reply Quote 0
                                • Dr. Bakterius
                                  Dr. Bakterius Most Active @marcuskl last edited by Dr. Bakterius

                                  @marcuskl Freut mich! Dann markiere den Thread bitte noch als "gelöst".

                                  Und noch was: Du hast den ersten 'curl'-Befehl vergessen. Also direkt vor 'sleep 10'.

                                  1 Reply Last reply Reply Quote 0
                                  • marcuskl
                                    marcuskl last edited by

                                    Der Cronjob will aber nicht laufen

                                    Habe einfach bei

                                    Crontab -e

                                    */1 * * * * /usr/local/bin/cpu_temp_send_iobroker.sh

                                    Eingefügt, aber macht nichts.
                                    Vergesse ich irgentwas ?

                                    1 Reply Last reply Reply Quote 0
                                    • marcuskl
                                      marcuskl last edited by marcuskl

                                      So jetzt aber.

                                      Wie ich vorgegangen bin:

                                      1. Unter Verzeichnis
                                      cd /usr/local/bin/ 
                                      

                                      gegangen

                                      1. Mit Nano Skript angelegt
                                      nano cpu_temp_send_iobroker.sh
                                      

                                      Im Editor folgenden Skript eingefügt:

                                      #!/bin/bash
                                      
                                      #ioBroker-Datenpunkt
                                      DP=info.0.sysinfo.cpu.temperature.main
                                      
                                      #ioBroker-IP:Port
                                      IPP=192.168.0.195:8087 
                                      
                                      #Systemtemperatur abfragen
                                      SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                      
                                      
                                      #an ioBroker senden
                                      curl http://${IPP}/set/${DP}?value={$SQL} 
                                      
                                      #Sendet alle 10 Sekunden an iobroker 
                                      sleep 10
                                      SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                      curl http://${IPP}/set/${DP}?value=${SQL}
                                      sleep 10
                                      SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                      curl http://${IPP}/set/${DP}?value=${SQL}
                                      sleep 10
                                      SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                      curl http://${IPP}/set/${DP}?value=${SQL}
                                      sleep 10
                                      SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                      curl http://${IPP}/set/${DP}?value=${SQL}
                                      sleep 10
                                      SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) 
                                      curl http://${IPP}/set/${DP}?value=${SQL}
                                      

                                      Strg+X gespeichert.
                                      (Achtung!!! Simple API Adapter erforderlich und dann den Port vom Adapter eintragen)

                                      Datenpunkt vom Info Adapter zum Schreiben freigegeben

                                      1. Getestet mit:
                                      bash /usr/local/bin/cpu_temp_send_iobroker.sh
                                      

                                      (Ich musste vorher noch Curl installieren)

                                      1. Crontab angelegt:
                                      crontab -e
                                      

                                      Ganz unten Zeile eingefügt:

                                      * * * * * bash /usr/local/bin/cpu_temp_send_iobroker.sh
                                      

                                      Fertig, Danke an alle für sie Hilfe !!!

                                      liv-in-sky Henning Hi 2 Replies Last reply Reply Quote 1
                                      • Homoran
                                        Homoran Global Moderator Administrators @Dr. Bakterius last edited by

                                        @Dr-Bakterius sagte in CPU Temperatur von Proxmox VM:

                                        @Homoran Von dir hätte ich schon erwartet zu wissen was der curl-Befehl macht.

                                        So kann man sich täuschen.
                                        Auch wenn man es nicht merkt (Danke dafür!) , ich bin der Quoten-Noob im Team

                                        1 Reply Last reply Reply Quote 1
                                        • liv-in-sky
                                          liv-in-sky @marcuskl last edited by

                                          @marcuskl sagte in [Gelöst] CPU Temperatur von Proxmox VM:

                                          Strg+X gespeichert.
                                          (Achtung!!! Simple API Adapter erforderlich und dann den Port vom Adapter eintragen)

                                          du hast noch das ausführbar machen für das script vergessen

                                          chmod +x cpu_temp_send_iobroker.sh
                                          
                                          marcuskl 1 Reply Last reply Reply Quote 1
                                          • marcuskl
                                            marcuskl @liv-in-sky last edited by

                                            @liv-in-sky sagte in [Gelöst] CPU Temperatur von Proxmox VM:

                                            @marcuskl sagte in [Gelöst] CPU Temperatur von Proxmox VM:

                                            Strg+X gespeichert.
                                            (Achtung!!! Simple API Adapter erforderlich und dann den Port vom Adapter eintragen)

                                            du hast noch das ausführbar machen für das script vergessen

                                            chmod +x cpu_temp_send_iobroker.sh
                                            

                                            Das habe ich aber nicht gemacht.
                                            Wofür ist das ?

                                            BBTown 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            651
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly javascript monitoring
                                            31
                                            129
                                            21682
                                            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