Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. [DEPRECATED] Abkündigung Adapter ioBroker.info

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.4k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.5k

[DEPRECATED] Abkündigung Adapter ioBroker.info

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
abkündigungdeprecated
125 Beiträge 29 Kommentatoren 26.4k Aufrufe 25 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • W wolfi913

    @ag @Rushmed

    Also bei mir werden weder über den Filter noch auf dem Master die Updates des Slaves angezeigt.

    Filter:
    Screenshot 2024-01-30 215007.png

    Master
    Screenshot 2024-01-30 214936.png

    Slave
    Screenshot 2024-01-30 214906.png

    Aber sei's drum. Ist aus meiner Sicht nicht so tragisch und auch etwas off-topic. War ja nur ne Frage ob man da was machen könnte.

    Thomas BraunT Online
    Thomas BraunT Online
    Thomas Braun
    Most Active
    schrieb am zuletzt editiert von
    #19

    @wolfi913

    Dann hast du auch jeweils einen admin laufen.
    Braucht es aber eigentlich nicht. Auf dem Master einen für alles.

    Linux-Werkzeugkasten:
    https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
    NodeJS Fixer Skript:
    https://forum.iobroker.net/topic/68035/iob-node-fix-skript
    iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

    W 1 Antwort Letzte Antwort
    1
    • Thomas BraunT Thomas Braun

      @wolfi913

      Dann hast du auch jeweils einen admin laufen.
      Braucht es aber eigentlich nicht. Auf dem Master einen für alles.

      W Online
      W Online
      wolfi913
      schrieb am zuletzt editiert von
      #20

      @thomas-braun

      Der zweite Admin ist schon immer da seit ich das System neu aufgesetzt hab' und dann sofort zum Slave "degradiert" hab.

      Thomas BraunT 1 Antwort Letzte Antwort
      0
      • W wolfi913

        @thomas-braun

        Der zweite Admin ist schon immer da seit ich das System neu aufgesetzt hab' und dann sofort zum Slave "degradiert" hab.

        Thomas BraunT Online
        Thomas BraunT Online
        Thomas Braun
        Most Active
        schrieb am zuletzt editiert von
        #21

        @wolfi913

        Ja? Und? Ist trotzdem überflüssig.

        Linux-Werkzeugkasten:
        https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
        NodeJS Fixer Skript:
        https://forum.iobroker.net/topic/68035/iob-node-fix-skript
        iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

        W 1 Antwort Letzte Antwort
        0
        • Thomas BraunT Thomas Braun

          @wolfi913

          Ja? Und? Ist trotzdem überflüssig.

          W Online
          W Online
          wolfi913
          schrieb am zuletzt editiert von
          #22

          @thomas-braun

          Wollte damit ja auch nur zeigen, dass die Adapter des Slaves beim Master nicht mit angezeigt werden. Bei den anderen Adaptern auf dem Slave stehen momentan ja keine Updates an um das im Bild darzustellen, dass die beim Master nicht als aktualisierbar gelistet werden.

          Auch wenn's am Thema vorbeigeht sollte ich also aus Deiner Sicht den Admin dann bei Gelegenheit rausnehmen?

          Thomas BraunT 1 Antwort Letzte Antwort
          0
          • W wolfi913

            @thomas-braun

            Wollte damit ja auch nur zeigen, dass die Adapter des Slaves beim Master nicht mit angezeigt werden. Bei den anderen Adaptern auf dem Slave stehen momentan ja keine Updates an um das im Bild darzustellen, dass die beim Master nicht als aktualisierbar gelistet werden.

            Auch wenn's am Thema vorbeigeht sollte ich also aus Deiner Sicht den Admin dann bei Gelegenheit rausnehmen?

            Thomas BraunT Online
            Thomas BraunT Online
            Thomas Braun
            Most Active
            schrieb am zuletzt editiert von
            #23

            @wolfi913 sagte in [DEPRECATED] Abkündigung Adapter ioBroker.info:

            sollte ich also aus Deiner Sicht den Admin dann bei Gelegenheit rausnehmen?

            Ich bin ja immer dafür überflüssiges Zeuch nicht mitzuschleifen.

            Linux-Werkzeugkasten:
            https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
            NodeJS Fixer Skript:
            https://forum.iobroker.net/topic/68035/iob-node-fix-skript
            iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

            W ofri2607O 2 Antworten Letzte Antwort
            0
            • Thomas BraunT Thomas Braun

              @wolfi913 sagte in [DEPRECATED] Abkündigung Adapter ioBroker.info:

              sollte ich also aus Deiner Sicht den Admin dann bei Gelegenheit rausnehmen?

              Ich bin ja immer dafür überflüssiges Zeuch nicht mitzuschleifen.

              W Online
              W Online
              wolfi913
              schrieb am zuletzt editiert von
              #24

              @thomas-braun

              Ok. Mach ich dann in wenn Zeit ist.:+1:

              1 Antwort Letzte Antwort
              0
              • mcm1957M mcm1957

                Der Adapter ioBroker.info wird bereits seit einiger Zeit nicht mehr aktiv entwickelt. Ebenso wurde bereits von Längerem beschlossen diesen offiziell abzukündigen. Daher

                Der Adapter ioBroker.info wird per sofort in den Status DEPRECATED / abgekündigt versetzt.

                Es ist nicht geplant diesen weiter zu entwickeln und / oder Fehler zu beheben. Da der Adapter zuletzt auch falsche Informationen angezeigt hat (z.B. Vorschlag zu Redis Umstellung, Upgradeinformationen zu Node und NPM, siehe auch existierende Issues) wird empfohlen den Adapter zu deinstallieren oder zumindest alle Information mit besonderer Vorsicht zu betrachten. Eine Entfernung aus den Repositories wird zeitnahe erfolgen, das Repository blebt im Status archived natürlich weiter vorhanden.

                News Meldungen werden schon seit längerem im Admin Adapter angezeigt.

                mcm1957

                ChaotC Offline
                ChaotC Offline
                Chaot
                schrieb am zuletzt editiert von
                #25

                @mcm57 Schade. Ich habe den Adapter gerne im Einsatz gehabt.
                Aber es war auch schon lange angekündigt, dass er wohl eingestellt wird.
                Da muss ich das dann wohl rauswerfen.
                Danke dir für deine Arbeit

                ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                1 Antwort Letzte Antwort
                0
                • Thomas BraunT Thomas Braun

                  @wolfi913 sagte in [DEPRECATED] Abkündigung Adapter ioBroker.info:

                  sollte ich also aus Deiner Sicht den Admin dann bei Gelegenheit rausnehmen?

                  Ich bin ja immer dafür überflüssiges Zeuch nicht mitzuschleifen.

                  ofri2607O Online
                  ofri2607O Online
                  ofri2607
                  schrieb am zuletzt editiert von
                  #26

                  @thomas-braun
                  Bei mir ist das genauso mit dem Admin Adapter am Master und am Slave und es war mir so nicht bewusst, dass der am Master ausreichend ist. Ich bin da bei dir, was nicht wirklich notwendig ist, gehört raus.
                  Vielleicht ist das jetzt eine blöde Frage, aber kann ich den Admin-Adapter am Slave einfach löschen, oder ist da zuvor etwas zu beachten / einzustellen?

                  Thomas BraunT 1 Antwort Letzte Antwort
                  0
                  • ofri2607O ofri2607

                    @thomas-braun
                    Bei mir ist das genauso mit dem Admin Adapter am Master und am Slave und es war mir so nicht bewusst, dass der am Master ausreichend ist. Ich bin da bei dir, was nicht wirklich notwendig ist, gehört raus.
                    Vielleicht ist das jetzt eine blöde Frage, aber kann ich den Admin-Adapter am Slave einfach löschen, oder ist da zuvor etwas zu beachten / einzustellen?

                    Thomas BraunT Online
                    Thomas BraunT Online
                    Thomas Braun
                    Most Active
                    schrieb am zuletzt editiert von
                    #27

                    @ofri2607

                    Sollte gehen.

                    Linux-Werkzeugkasten:
                    https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                    NodeJS Fixer Skript:
                    https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                    iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                    1 Antwort Letzte Antwort
                    1
                    • mcm1957M mcm1957

                      Da hier die Frage nach Ersatz aufgetaucht ist - NEIN es ist derzeit kein 1:1 Ersatz geplant oder empfohlen. Sollten einzelne Funktionen jemandem dringend abgehen, dann bitte ruhig hier nachfragen. Eventuell gibt es punktuellen Ersatz oder eine sonstige Lösung dafür.

                      O Offline
                      O Offline
                      olifre
                      schrieb am zuletzt editiert von
                      #28

                      @mcm57 said in [DEPRECATED] Abkündigung Adapter ioBroker.info:

                      Sollten einzelne Funktionen jemandem dringend abgehen, dann bitte ruhig hier nachfragen. Eventuell gibt es punktuellen Ersatz oder eine sonstige Lösung dafür.

                      Ich schließe mich auch einmal den Fragen nach einem Adapter für CPU-Temperatur-Monitoring an. Habe dafür bisher gerne den Info-Adapter genutzt.

                      In meinem Fall ist das System ein kleiner x86 mit 3 Watt Stromverbrauch, der die Temperaturen per lm_sensors problemlos zur Verfügung stellt.

                      Was ich bisher als Alternativen zum Info-Adapter probiert habe:

                      • ioBroker.systeminfo und damit manuell die Daten aus sysfs oder so einsammeln. Der Adapter legt bei mir gar keine Objekte an, scheinen auf GitHub auch andere User zu reporten, wird vermutlich nicht mehr gepflegt.
                      • ioBroker.snmp, leider kann aber der snmpd, wie er bei Debian und abgeleiteten Distros mitgeliefert wird, kein lm_sensors (siehe https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1062250 ).
                      • ioBroker.linux-control , da dort das letzte Update im Git scheinbar vor zwei Jahren war, ist es vermutlich keine gute Idee, auf diesen Adapter zu setzen, da früher oder später Inkompatibilitäten zu erwarten sind.

                      Hat jemand eine gute Alternative zum Auslesen von CPU-Temperaturen?
                      Oder besteht die Möglichkeit, das im System-Adapter naczurüsten (zumindest für standardisiert per lm_sensors angebotene Temperaturen)?

                      HomoranH 1 Antwort Letzte Antwort
                      0
                      • O olifre

                        @mcm57 said in [DEPRECATED] Abkündigung Adapter ioBroker.info:

                        Sollten einzelne Funktionen jemandem dringend abgehen, dann bitte ruhig hier nachfragen. Eventuell gibt es punktuellen Ersatz oder eine sonstige Lösung dafür.

                        Ich schließe mich auch einmal den Fragen nach einem Adapter für CPU-Temperatur-Monitoring an. Habe dafür bisher gerne den Info-Adapter genutzt.

                        In meinem Fall ist das System ein kleiner x86 mit 3 Watt Stromverbrauch, der die Temperaturen per lm_sensors problemlos zur Verfügung stellt.

                        Was ich bisher als Alternativen zum Info-Adapter probiert habe:

                        • ioBroker.systeminfo und damit manuell die Daten aus sysfs oder so einsammeln. Der Adapter legt bei mir gar keine Objekte an, scheinen auf GitHub auch andere User zu reporten, wird vermutlich nicht mehr gepflegt.
                        • ioBroker.snmp, leider kann aber der snmpd, wie er bei Debian und abgeleiteten Distros mitgeliefert wird, kein lm_sensors (siehe https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1062250 ).
                        • ioBroker.linux-control , da dort das letzte Update im Git scheinbar vor zwei Jahren war, ist es vermutlich keine gute Idee, auf diesen Adapter zu setzen, da früher oder später Inkompatibilitäten zu erwarten sind.

                        Hat jemand eine gute Alternative zum Auslesen von CPU-Temperaturen?
                        Oder besteht die Möglichkeit, das im System-Adapter naczurüsten (zumindest für standardisiert per lm_sensors angebotene Temperaturen)?

                        HomoranH Nicht stören
                        HomoranH Nicht stören
                        Homoran
                        Global Moderator Administrators
                        schrieb am zuletzt editiert von
                        #29

                        @olifre sagte in [DEPRECATED] Abkündigung Adapter ioBroker.info:

                        Hat jemand eine gute Alternative zum Auslesen von CPU-Temperaturen?

                        leider nein.

                        Zur Blütezeit von ioBroker auf SBCs habe ich feststellen müssen, dass selbst je nach Distro die Pfade zu den Temperaturen unterschiedlich waren.
                        Teilweise auch die Befehle um sie angezeigt zu bekommen.
                        Dadurch wurde es nahezu unmöglich diese einheitlich zu parsen.

                        Erschwerend jam dann noch dazu, dass sich das selbst bei gleichen SBC und OS dieses mit OS Versionen änderte.

                        Wenn man sann noch Win, Apfel und wer weiß was unter eine Haube bringen will ohne zusätzliche Programme zu installieren wird es IMHO nahezu unmöglich.

                        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                        O 1 Antwort Letzte Antwort
                        0
                        • HomoranH Homoran

                          @olifre sagte in [DEPRECATED] Abkündigung Adapter ioBroker.info:

                          Hat jemand eine gute Alternative zum Auslesen von CPU-Temperaturen?

                          leider nein.

                          Zur Blütezeit von ioBroker auf SBCs habe ich feststellen müssen, dass selbst je nach Distro die Pfade zu den Temperaturen unterschiedlich waren.
                          Teilweise auch die Befehle um sie angezeigt zu bekommen.
                          Dadurch wurde es nahezu unmöglich diese einheitlich zu parsen.

                          Erschwerend jam dann noch dazu, dass sich das selbst bei gleichen SBC und OS dieses mit OS Versionen änderte.

                          Wenn man sann noch Win, Apfel und wer weiß was unter eine Haube bringen will ohne zusätzliche Programme zu installieren wird es IMHO nahezu unmöglich.

                          O Offline
                          O Offline
                          olifre
                          schrieb am zuletzt editiert von
                          #30

                          @homoran said in [DEPRECATED] Abkündigung Adapter ioBroker.info:

                          Zur Blütezeit von ioBroker auf SBCs habe ich feststellen müssen, dass selbst je nach Distro die Pfade zu den Temperaturen unterschiedlich waren.
                          Teilweise auch die Befehle um sie angezeigt zu bekommen.

                          Das stimmt natürlich — mit libsensors von lm_sensors ist es zumindest auf allen Linux-Systemen schön einheitlich lösbar (bei Verwendung der Library ohne dass man Pfade braucht), aber die Spezialfälle wie Raspis oder Betriebssysteme wie Windows oder macOS erschlägt man damit natürlich leider nicht.

                          Wahrscheinlich bleibt mir dann nichts Anderes übrig, als selbst etwas zu basteln :cry: . Vermutlich dann mit einem snmp_passpersist-Skript als Erweiterung zum snmpd, auch wenn das nicht schön wird.

                          Falls jemand noch eine andere Idee hat, natürlich immer her damit :wink: .

                          L 1 Antwort Letzte Antwort
                          0
                          • O olifre

                            @homoran said in [DEPRECATED] Abkündigung Adapter ioBroker.info:

                            Zur Blütezeit von ioBroker auf SBCs habe ich feststellen müssen, dass selbst je nach Distro die Pfade zu den Temperaturen unterschiedlich waren.
                            Teilweise auch die Befehle um sie angezeigt zu bekommen.

                            Das stimmt natürlich — mit libsensors von lm_sensors ist es zumindest auf allen Linux-Systemen schön einheitlich lösbar (bei Verwendung der Library ohne dass man Pfade braucht), aber die Spezialfälle wie Raspis oder Betriebssysteme wie Windows oder macOS erschlägt man damit natürlich leider nicht.

                            Wahrscheinlich bleibt mir dann nichts Anderes übrig, als selbst etwas zu basteln :cry: . Vermutlich dann mit einem snmp_passpersist-Skript als Erweiterung zum snmpd, auch wenn das nicht schön wird.

                            Falls jemand noch eine andere Idee hat, natürlich immer her damit :wink: .

                            L Offline
                            L Offline
                            Lucky_ESA
                            Developer Most Active
                            schrieb am zuletzt editiert von Lucky_ESA
                            #31

                            @olifre Habe 3 Raspberrys die mir alle Daten per Mqtt an den Adapter Mqtt jede Minute übergeben. Das kann ich dir nicht geben da ich dafür den Mqtt Adapter anpassen musste.
                            Habe dann allerdings noch ein weiteres Python Script laufen, welches per runlevel gestartet wird und dann jede Sekunde mir die CPU und RAM Daten liefert. Das kann man natürlich auch um die Temperatur erweitern.

                            Hier die IP und den Datenpunkt anpassen sowie eventuell den Intervall.

                            #!/usr/bin/env python3.0
                            
                            import os
                            import time
                            import requests
                            import json
                            import math
                            
                            url = "http://192.168.x.x:8087/setValueFromBody/0_userdata.0.Hiobs.debmatic_cpu?ack=true"
                            
                            def read_meminfo():
                               meminfo = {}
                               for line in open('/proc/meminfo'):
                                   if not line: continue
                                   (name, value) = line.split()[0:2]
                                   meminfo[name.strip().rstrip(':')] = int(value)
                               return meminfo
                            
                            def getCPU():
                               headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
                               last_value = ""
                               while True:
                                   meminfo = read_meminfo()
                                   memTotal = meminfo["MemTotal"]
                                   memFree = meminfo["MemFree"] + meminfo["Buffers"] + meminfo["Cached"]
                                   memUsed = math.ceil((memTotal - memFree) / 1024)
                                   memFreePct = 100.0*memFree/memTotal
                                   i = 0
                                   p = os.popen("cat /proc/stat")
                                   data = []
                                   for thing in p:
                                       i = i + 1
                                       all_time = 0
                                       line = thing.strip().split()[0:9]
                                       if line[0].startswith('cpu'):
                                           all_time_use = int(line[1]) + int(line[2]) + int(line[3]) + int(line[4]) + int(line[5]) + int(line[6]) + int(line[7]) + int(line[8])
                                           if i==1:
                                               all_cpu = int(line[4])
                                           all_time = ((all_time_use - int(line[4])) / all_cpu) * 100.0
                                           data.append({"name": line[0], "value": str(round(all_time, 2)) + " %"})
                                   #tot_m, used_m, free_m = map(int, os.popen('free -t -m').readlines()[-1].split()[1:])
                                   data.append({"name": "RAM", "value": str(round(memUsed,2)) + " MB"})
                                   if last_value != json.dumps(data):
                                       r = requests.post(url, data=json.dumps(data), headers=headers)
                                       #if r.status_code == 200:
                                           #print(r.status_code)
                                       data_value = json.dumps(data)
                                   time.sleep(1)
                            
                            
                            if __name__ == "__main__":
                               getCPU()
                            

                            #! /bin/sh
                            
                            case "$1" in
                               start)
                                   echo "CPU wird gestartet"
                                   # Starte Programm
                                   python /home/rpi/cpu.py &
                                   ;;
                               stop)
                                   echo "CPU wird beendet"
                                   # Beende Programm
                                   killall python /home/rpi/cpu.py
                                   ;;
                               *)
                                   echo "Benutzt: /etc/init.d/cpustart {start|stop}"
                                   exit 1
                                   ;;
                            esac
                            
                            exit 0
                            

                            Nun noch 4 Symlinks erstellen:

                            sudo ln -s /etc/init.d/cpustart /etc/rc3.d/S99cpustart
                            sudo ln -s /etc/init.d/cpustart /etc/rc0.d/K01cpustart
                            sudo ln -s /etc/init.d/cpustart /etc/rc1.d/K01cpustart
                            sudo ln -s /etc/init.d/cpustart /etc/rc6.d/K01cpustart
                            

                            Einmal neu Starten....

                            Natürlich müsste man jetzt das noch für dein System anpassen aber das sollte machbar sein.

                            Finde es schade das der Adapter nun entfernt werden muss aber es lässt sich nicht ändern.

                            EDIT: simple-api muss natürlich installiert sein!

                            Gruß//Lucky

                            O 1 Antwort Letzte Antwort
                            1
                            • HomoranH Homoran

                              @rushmed sagte in [DEPRECATED] Abkündigung Adapter ioBroker.info:

                              Schade, ich mag den Adapter.
                              Gibts ne Alternative mit der ich mir CPU Last, RAM Auslastung, Festplattenauslastung und Temperatur in InfluxDB schreiben kann?

                              Reicht das nicht?
                              Screenshot_20240130-210525_Firefox.jpg

                              P Offline
                              P Offline
                              pk68
                              schrieb am zuletzt editiert von
                              #32

                              Eine Frage zu dem Parameter "system.host.raspi4-sh.cpu" der ja die "CPU usage in % of one core" angeben soll. Bei Mehrkernsystemen wie z.B. einem Raspi 4 was gibt der Parameter an? Die Auslastungen eines beliebigen Kerns oder den Kern mit der Höchsten?

                              jolicJ 1 Antwort Letzte Antwort
                              0
                              • P pk68

                                Eine Frage zu dem Parameter "system.host.raspi4-sh.cpu" der ja die "CPU usage in % of one core" angeben soll. Bei Mehrkernsystemen wie z.B. einem Raspi 4 was gibt der Parameter an? Die Auslastungen eines beliebigen Kerns oder den Kern mit der Höchsten?

                                jolicJ Offline
                                jolicJ Offline
                                jolic
                                schrieb am zuletzt editiert von
                                #33

                                Hi, angesichts der Tatsache, dass es schon seit längerem keine neuen Updates mehr für den RPi-Monitor (rpi2) gibt und dieser ausschließlich für Debian konzipiert wurde, setze ich auf ein kleines JavaScript. Dieses Skript überwacht kontinuierlich die CPU-Temperatur und die Laufzeit meines Raspberry Pi-Systems und speichert diese Daten regelmäßig in ioBroker-Datenpunkten ab. Wer zusätzliche Informationen benötigt, kann diese Basis gerne als Ausgangspunkt nehmen und sie nach Bedarf erweitern.

                                Vielleicht gibt es jemanden, der eine bessere Lösung oder Idee für diesen Code hat? Bei mir läuft er jedenfalls ohne Probleme.

                                // V23.12.002
                                // Linux Pi-System Monitor
                                //
                                // Das Skript überwacht die CPU-Temperatur und die Uptime eines Raspberry Pi-Systems,
                                // und speichert diese Informationen regelmäßig in ioBroker-Datenpunkten,
                                // wobei die Temperatur auf eine Stelle und die Uptime auf zwei Stellen hinter dem Komma begrenzt wird.
                                
                                var exec = require("child_process").exec;
                                
                                // Pfad für die Datenpunkte
                                var dataPath = "javascript.0.linux-pi-system";
                                
                                // Funktion zur Aktualisierung eines Zustands, falls vorhanden, oder zur Erstellung eines neuen Zustands
                                function updateOrCreateState(path, value, callback) {
                                    getObject(path, function (err, obj) {
                                        if (!err && obj) {
                                            // Der Zustand existiert bereits, aktualisiere ihn
                                            setState(path, value, true, callback);
                                        } else {
                                            // Zustand erstellen
                                            createState(path, value, true, callback);
                                        }
                                    });
                                }
                                
                                // Funktion zur Speicherung der CPU-Temperatur
                                function saveCPUTemperature() {
                                    exec("cat /sys/class/thermal/thermal_zone0/temp", function (error, stdout, stderr) {
                                        if (!error) {
                                            // Umrechnung in Grad Celsius mit einer Stelle hinter dem Komma begrenzt
                                            var millikelvin = parseFloat(stdout.trim());
                                            var celsius = (millikelvin / 1000).toFixed(1);
                                
                                            // Speichern des Wertes in ioBroker
                                            updateOrCreateState(dataPath + ".temperature", celsius, function () {});
                                        } else {
                                            log("Fehler beim Abrufen der CPU-Temperatur: " + error);
                                        }
                                    });
                                }
                                
                                // Funktion zur Umrechnung der Uptime in Stunden und Speicherung
                                function saveUptime() {
                                    exec("cat /proc/uptime", function (error, stdout, stderr) {
                                        if (!error) {
                                            // Zerlegen des stdout-Strings und Umwandlung der ersten Zahl in Stunden
                                            var uptimeInSeconds = parseFloat(stdout.split(' ')[0]);
                                            var uptimeInHours = (uptimeInSeconds / 3600).toFixed(2);
                                
                                            // Speichern des umgerechneten Wertes in ioBroker
                                            updateOrCreateState(dataPath + ".uptime", uptimeInHours, function () {});
                                        } else {
                                            log("Fehler beim Abrufen der Uptime: " + error);
                                        }
                                    });
                                }
                                
                                // Initialer Aufruf der Funktionen
                                saveCPUTemperature();
                                saveUptime();
                                
                                // Zeitplan für die regelmäßige Ausführung
                                schedule("*/5 * * * *", saveCPUTemperature); // Alle 5 Minuten die CPU-Temperatur abrufen und speichern
                                schedule("*/10 * * * *", saveUptime); // Alle 10 Minuten die Uptime abrufen und speichern
                                
                                1 Antwort Letzte Antwort
                                2
                                • L Lucky_ESA

                                  @olifre Habe 3 Raspberrys die mir alle Daten per Mqtt an den Adapter Mqtt jede Minute übergeben. Das kann ich dir nicht geben da ich dafür den Mqtt Adapter anpassen musste.
                                  Habe dann allerdings noch ein weiteres Python Script laufen, welches per runlevel gestartet wird und dann jede Sekunde mir die CPU und RAM Daten liefert. Das kann man natürlich auch um die Temperatur erweitern.

                                  Hier die IP und den Datenpunkt anpassen sowie eventuell den Intervall.

                                  #!/usr/bin/env python3.0
                                  
                                  import os
                                  import time
                                  import requests
                                  import json
                                  import math
                                  
                                  url = "http://192.168.x.x:8087/setValueFromBody/0_userdata.0.Hiobs.debmatic_cpu?ack=true"
                                  
                                  def read_meminfo():
                                     meminfo = {}
                                     for line in open('/proc/meminfo'):
                                         if not line: continue
                                         (name, value) = line.split()[0:2]
                                         meminfo[name.strip().rstrip(':')] = int(value)
                                     return meminfo
                                  
                                  def getCPU():
                                     headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
                                     last_value = ""
                                     while True:
                                         meminfo = read_meminfo()
                                         memTotal = meminfo["MemTotal"]
                                         memFree = meminfo["MemFree"] + meminfo["Buffers"] + meminfo["Cached"]
                                         memUsed = math.ceil((memTotal - memFree) / 1024)
                                         memFreePct = 100.0*memFree/memTotal
                                         i = 0
                                         p = os.popen("cat /proc/stat")
                                         data = []
                                         for thing in p:
                                             i = i + 1
                                             all_time = 0
                                             line = thing.strip().split()[0:9]
                                             if line[0].startswith('cpu'):
                                                 all_time_use = int(line[1]) + int(line[2]) + int(line[3]) + int(line[4]) + int(line[5]) + int(line[6]) + int(line[7]) + int(line[8])
                                                 if i==1:
                                                     all_cpu = int(line[4])
                                                 all_time = ((all_time_use - int(line[4])) / all_cpu) * 100.0
                                                 data.append({"name": line[0], "value": str(round(all_time, 2)) + " %"})
                                         #tot_m, used_m, free_m = map(int, os.popen('free -t -m').readlines()[-1].split()[1:])
                                         data.append({"name": "RAM", "value": str(round(memUsed,2)) + " MB"})
                                         if last_value != json.dumps(data):
                                             r = requests.post(url, data=json.dumps(data), headers=headers)
                                             #if r.status_code == 200:
                                                 #print(r.status_code)
                                             data_value = json.dumps(data)
                                         time.sleep(1)
                                  
                                  
                                  if __name__ == "__main__":
                                     getCPU()
                                  

                                  #! /bin/sh
                                  
                                  case "$1" in
                                     start)
                                         echo "CPU wird gestartet"
                                         # Starte Programm
                                         python /home/rpi/cpu.py &
                                         ;;
                                     stop)
                                         echo "CPU wird beendet"
                                         # Beende Programm
                                         killall python /home/rpi/cpu.py
                                         ;;
                                     *)
                                         echo "Benutzt: /etc/init.d/cpustart {start|stop}"
                                         exit 1
                                         ;;
                                  esac
                                  
                                  exit 0
                                  

                                  Nun noch 4 Symlinks erstellen:

                                  sudo ln -s /etc/init.d/cpustart /etc/rc3.d/S99cpustart
                                  sudo ln -s /etc/init.d/cpustart /etc/rc0.d/K01cpustart
                                  sudo ln -s /etc/init.d/cpustart /etc/rc1.d/K01cpustart
                                  sudo ln -s /etc/init.d/cpustart /etc/rc6.d/K01cpustart
                                  

                                  Einmal neu Starten....

                                  Natürlich müsste man jetzt das noch für dein System anpassen aber das sollte machbar sein.

                                  Finde es schade das der Adapter nun entfernt werden muss aber es lässt sich nicht ändern.

                                  EDIT: simple-api muss natürlich installiert sein!

                                  Gruß//Lucky

                                  O Offline
                                  O Offline
                                  olifre
                                  schrieb am zuletzt editiert von
                                  #34

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

                                  1 Antwort Letzte Antwort
                                  0
                                  • A ag

                                    Hallo
                                    Ich habe hier einen Master und einen Slave.
                                    Im Adapter Tab des Masters werden auch die auf dem Slave installierten Adapter angezeigt und können darüber auch aktualisiert werden.

                                    mcm1957M Online
                                    mcm1957M Online
                                    mcm1957
                                    schrieb am zuletzt editiert von
                                    #35

                                    @ag said in [DEPRECATED] Abkündigung Adapter ioBroker.info:

                                    Hallo
                                    Ich habe hier einen Master und einen Slave.
                                    Im Adapter Tab des Masters werden auch die auf dem Slave installierten Adapter angezeigt und können darüber auch aktualisiert werden.

                                    Werden die bei dir ständig / per Default angezeigt oder musst du zuerst auf den Slave umschalten (Host wechseln ?).

                                    Das es mit manuellem Wechsel des Hosts geht ist bekannt. Störend ist dabei nur, dass man da zuerst mal auf den / die Hosts wechseln muss um dann festzustellen, dass es nichts festzustellen gibt. Falls also bei dir gleichzeitig irgendwie der Status des Matsers UND der Slaves ohne Umscahlten angezeigt wird, wär es intressant zu klären wie das geht.

                                    Zwischenzeitlich gibts auch schon eine Feature Issue zu dem Thema
                                    https://github.com/ioBroker/ioBroker.admin/issues/2350

                                    Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                                    Support Repositoryverwaltung.

                                    Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                                    LESEN - gute Forenbeitrage

                                    A 1 Antwort Letzte Antwort
                                    0
                                    • mcm1957M mcm1957

                                      @ag said in [DEPRECATED] Abkündigung Adapter ioBroker.info:

                                      Hallo
                                      Ich habe hier einen Master und einen Slave.
                                      Im Adapter Tab des Masters werden auch die auf dem Slave installierten Adapter angezeigt und können darüber auch aktualisiert werden.

                                      Werden die bei dir ständig / per Default angezeigt oder musst du zuerst auf den Slave umschalten (Host wechseln ?).

                                      Das es mit manuellem Wechsel des Hosts geht ist bekannt. Störend ist dabei nur, dass man da zuerst mal auf den / die Hosts wechseln muss um dann festzustellen, dass es nichts festzustellen gibt. Falls also bei dir gleichzeitig irgendwie der Status des Matsers UND der Slaves ohne Umscahlten angezeigt wird, wär es intressant zu klären wie das geht.

                                      Zwischenzeitlich gibts auch schon eine Feature Issue zu dem Thema
                                      https://github.com/ioBroker/ioBroker.admin/issues/2350

                                      A Online
                                      A Online
                                      ag
                                      schrieb am zuletzt editiert von
                                      #36

                                      @mcm57
                                      Hallo

                                      Bei mir läuft auf dem Slave im Heizungsraum der CAN-BUS Adapter und der DS18B20 Adapter beide gemeldet wenn Updates vorliegen.

                                      Operating System: Debian GNU/Linux 12 architecture: arm64 Pi5 8GB
                                      /usr/bin/nodejs v20.18.0 /usr/bin/node 20.18.1 /usr/bin/npm 10.8.2
                                      js-controller 7.0.6 admin 7.4.10

                                      mcm1957M 1 Antwort Letzte Antwort
                                      0
                                      • A ag

                                        @mcm57
                                        Hallo

                                        Bei mir läuft auf dem Slave im Heizungsraum der CAN-BUS Adapter und der DS18B20 Adapter beide gemeldet wenn Updates vorliegen.

                                        mcm1957M Online
                                        mcm1957M Online
                                        mcm1957
                                        schrieb am zuletzt editiert von
                                        #37

                                        @ag said in [DEPRECATED] Abkündigung Adapter ioBroker.info:

                                        @mcm57
                                        Hallo

                                        Bei mir läuft auf dem Slave im Heizungsraum der CAN-BUS Adapter und der DS18B20 Adapter beide gemeldet wenn Updates vorliegen.

                                        Ja - frage war
                                        Parallel / gleichzeitig im Admin des Masters?
                                        Oder selektierts du zuerst den Slave und dann zeigt dir Admin den Update an?

                                        Und noch ne Zusatzfrage:
                                        hast du am Slave admin installiert?

                                        Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                                        Support Repositoryverwaltung.

                                        Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                                        LESEN - gute Forenbeitrage

                                        A 1 Antwort Letzte Antwort
                                        0
                                        • mcm1957M mcm1957

                                          @ag said in [DEPRECATED] Abkündigung Adapter ioBroker.info:

                                          @mcm57
                                          Hallo

                                          Bei mir läuft auf dem Slave im Heizungsraum der CAN-BUS Adapter und der DS18B20 Adapter beide gemeldet wenn Updates vorliegen.

                                          Ja - frage war
                                          Parallel / gleichzeitig im Admin des Masters?
                                          Oder selektierts du zuerst den Slave und dann zeigt dir Admin den Update an?

                                          Und noch ne Zusatzfrage:
                                          hast du am Slave admin installiert?

                                          A Online
                                          A Online
                                          ag
                                          schrieb am zuletzt editiert von
                                          #38

                                          @mcm57
                                          Der Admin Adapter ist zwar auf dem Slave, noch von der Installation her, ist bei mir aber nicht aufrufbar.

                                          Was die Updates angeht, da hast du Recht, muss erst den slave auswählen.
                                          Asche auf mein ergrautes Haupt.

                                          werde Jetzt den Admin am Slave mal deinstallieren.

                                          beste Grüße

                                          Operating System: Debian GNU/Linux 12 architecture: arm64 Pi5 8GB
                                          /usr/bin/nodejs v20.18.0 /usr/bin/node 20.18.1 /usr/bin/npm 10.8.2
                                          js-controller 7.0.6 admin 7.4.10

                                          mcm1957M 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

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

                                          447

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe