Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. RPIMonitor: "No Value found for cpu_frequency"

    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

    RPIMonitor: "No Value found for cpu_frequency"

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

      Nein, ist es nicht.

      //EDIT:
      Irgendwie ist mir bisher auch noch nicht ganz klar geworden, unter welchen Umständen scale_cur_freq nutzbar ist und unter welchen nicht. Hier hab ich zwei raspberries, wo die identisch zu cpu_cur_freq zu sein scheint. Auf meinem Server mit Desktop CPU sind die Werte völlig unterschiedlich und scale_cur_freq irgendwie nicht interpretierbar...

      Eine mögliche Lösung wäre noch per cron den Wert aus cpu_cur_freq regelmäßig in eine Datei zu schreiben, die der user ioBroker dann lesen kann. Den cron müssten die User dann aber selber einrichten, da der iobroker auch beim installieren von adaptern keine Root-rechte hat. Ist das eine gangbare Lösung?

      1 Reply Last reply Reply Quote 0
      • joergeli
        joergeli @Asgothian last edited by

        @Asgothian
        Anscheinend konnte das Problem mit "No Value found for cpu_frequency " noch nicht gelöst werden?

        Weil mich genervt hat, daß ich nach jedem Reboot vom Raspi die Dateirechte manuell setzen musste,
        habe ich jetzt folgenden Workaround gemacht:

        In Datei /etc/rc.local folgendes zusätzlich eintragen:

        echo "Setze Dateirechte 777 fuer /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq"
        cd /sys/devices/system/cpu/cpu0/cpufreq
        sudo chmod 777 cpuinfo_cur_freq
        
        cd /home/pi
        exit 0
        

        Diese Datei wird nach dem Boot des Raspi ausgeführt und setzt die Rechte entspr.

        Asgothian Thomas Braun 2 Replies Last reply Reply Quote 0
        • Asgothian
          Asgothian Developer @joergeli last edited by

          @joergeli Nein, mein Änderungsvorschlag wurde abgelehnt. Weswegen das immer noch nicht geht. Das was Du da machst ist durchaus funktional, aber ich bin mir nicht sicher ob das nicht doch zwischendurch noch einmal umgesetzt wird.

          A.

          Garfonso 1 Reply Last reply Reply Quote 0
          • Garfonso
            Garfonso Developer @Asgothian last edited by

            @Asgothian
            Magst du dazu mal einen PR machen? Ich würde das durchaus testen und ggf. übernehmen wollen.

            Asgothian Homoran 2 Replies Last reply Reply Quote 1
            • Asgothian
              Asgothian Developer @Garfonso last edited by

              @Garfonso Klar, mach ich

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

                @joergeli sagte in RPIMonitor: "No Value found for cpu_frequency":

                chmod 777

                Ich würde ja da etwas vorsichtiger rangehen und nicht alles von allen und jedem schreiben, lesen und ausführen lassen.

                1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators @Garfonso last edited by

                  @Garfonso sagte in RPIMonitor: "No Value found for cpu_frequency":

                  @Asgothian
                  Magst du dazu mal einen PR machen? Ich würde das durchaus testen und ggf. übernehmen wollen.

                  Das wäre super wenn an dem RPI2 nochmal was gemacht würde!!

                  wäre dann auch möglich bei anderen Parametern eine bedingte Abfrage zu machen?
                  bei Armbian-Rechnern liegen die Daten oft in anderen Pfaden oder die Abfrage ist anders.
                  Da habe ich mir auch immer die io-package.json neu hardcodiert (bis zum nächsten Update)

                  Irgendjemand war cleverer und hat einen OPi-Adapter draus gemacht.

                  Ich würde dann außerdem gerne mal die geänderte Version auf diversen SBC testen, schließlich steht ja die Aussage noch im Raum, dass der Wert von scaling_cur_freq nicxht immer passen soll (siehe Link im früheren Post)

                  Asgothian 2 Replies Last reply Reply Quote 0
                  • Asgothian
                    Asgothian Developer @Homoran last edited by

                    @Homoran Ich mach einfach meinen Fork wieder aktiv - dann kann da nach Herzenslust getestet werden. In dem Fork wird

                    • cpuinfo_cur_freq ausgelesen wenn es lesbar ist
                    • scaling_cur_freq ausgelesen wenn es lesbar ist
                    • -1000 ausgegeben wenn beide NICHT lesbar sind.

                    Ich denke damit sind wir hinreichend Sicher.

                    1 Reply Last reply Reply Quote 2
                    • Asgothian
                      Asgothian Developer @Homoran last edited by

                      @Homoran sagte in RPIMonitor: "No Value found for cpu_frequency":

                      bei Armbian-Rechnern liegen die Daten oft in anderen Pfaden oder die Abfrage ist anders.

                      In gewissen grenzen geht das. Hast du mal ein paar Beispiele für mich was du gepatched hast, dann bau ich das in den Branch gleich mit ein

                      A.

                      Homoran 1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @Asgothian last edited by

                        @Asgothian
                        auf die Schnelle nur das hier:

                        {
                           "common": {
                               "name":                     "rpi2",
                               "title":                    "RPI-Monitor",
                               "desc":                     {
                           		"en": "RPI-Monitor for ioBroker Installations",
                           		"de": "RPI-Monitor für ioBroker",
                           		"ru": "RPI-Монитор для ioBroker"
                           	},
                               "version":                  "0.3.1",
                               "news": {
                           		"0.3.1": {
                                       "en": "Fixup swap_used calculation.",
                                       "de": "Korrigiere swap_used Kalkulation",
                                       "ru": "Исправлено вычисление swap_used"
                                   },
                                   "0.3.0": {
                                       "en": "Add GPIO direction indication",
                                       "de": "GPIO Richtung States hinzugefügt",
                                       "ru": "Добавлены состояния для индикации направления GPIO"
                                   },
                                   "0.2.2": {
                                       "en": "Use BCM enumeration",
                                       "de": "Benutze BCM Numerierung",
                                       "ru": "Используется BCM нумерация"
                                   },
                                   "0.2.1": {
                                       "en": "fix start of adapter",
                                       "de": "Korrigiert Adapterstart",
                                       "ru": "Исправлен старт драйвера"
                                   },
                                   "0.2.0": {
                                       "en": "implement GPIOs control",
                                       "de": "Implementiert die Steuerung von GPIOs",
                                       "ru": "Добавлено управление GPIOs"
                                   }
                               },
                               "mode":                     "daemon",
                               "platform":                 "javascript/Node.js",
                               "os":                       ["linux"],
                               "loglevel":                 "info",
                               "keywords":                 ["ioBroker", "monitoring", "raspberry", "orangepi", "odroid", "bananapi", "gpio"],
                               "main":                     "main.js",
                               "authors": [
                                   "Christian Baumgartner", "husky-koglhof <husky.koglhof@icloud.com>"
                               ],
                               "license":                  "MIT",
                               "singletonHost":             true,
                               "readme":                   "https://github.com/ioBroker/ioBroker.rpi2/blob/master/README.md",
                               "icon":                     "rpi.png",
                               "type":                     "hardware",
                               "enabled":					true,
                               "config":{
                                   "minWidth":   650,
                                   "width":      700,
                                   "minHeight":  600,
                                   "height":     600
                               },
                               "extIcon":                  "https://raw.githubusercontent.com/ioBroker/ioBroker.rpi2/master/admin/rpi.png"
                           },
                           "native": {
                               "c_cpu": true,
                               "c_raspberry": false,
                               "c_memory": true,
                               "c_network": true,
                               "c_sdcard": true,
                               "c_swap": true,
                               "c_temperature": true,
                               "c_uptime": true,
                               "c_wlan": true,
                               "interval": 60000,
                               "cpu": {
                                   "cpu_frequency": {
                                       "command": "cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq",
                                       "regexp": "(.*)",
                                       "post": "$1/1000"
                                   },
                                   "load1,load5,load15": {
                                       "command": "cat /proc/loadavg",
                                       "regexp": "^(\\S+)\\s(\\S+)\\s(\\S+)",
                                       "post": ""
                                   },
                                   "scaling_governor": {
                                       "command": "cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor",
                                       "regexp": "(.*)",
                                       "post": ""
                                   }
                               },
                               "raspberry": {
                                   "cpu_voltage": {
                                       "command": "vcgencmd measure_volts core",
                                       "regexp": "(\\d+.\\d+)V",
                                       "post": ""
                                   },
                                   "mem_arm": {
                                       "command": "vcgencmd get_mem arm",
                                       "regexp": "(\\d+)",
                                       "post": ""
                                   },
                                   "mem_gpu": {
                                       "command": "vcgencmd get_mem gpu",
                                       "regexp": "(\\d+)",
                                       "post": ""
                                   }
                               },
                               "memory": {
                                   "memory_total": {
                                       "command": "cat /proc/meminfo",
                                       "regexp": "MemTotal:\\s+(\\d+)",
                                       "post": "$1/1024"
                                   },
                                   "memory_free": {
                                       "command": "cat /proc/meminfo",
                                       "regexp": "MemFree:\\s+(\\d+)",
                                       "post": "$1/1024"
                                   },
                                   "memory_available": {
                                       "command": "cat /proc/meminfo",
                                       "regexp": "MemAvailable:\\s+(\\d+)",
                                       "post": "$1/1024",
                                       "multiline": true
                                   }
                               },
                               "network": {
                                   "net_received": {
                                       "command": "cat /sys/class/net/eth0/statistics/rx_bytes",
                                       "regexp": "(.*)",
                                       "post": "$1*-1"
                                   },
                                   "net_send": {
                                       "command": "cat /sys/class/net/eth0/statistics/tx_bytes",
                                       "regexp": "(.*)",
                                       "post": ""
                                   }
                               },
                               "sdcard": {
                                   "sdcard_root_total": {
                                       "command": "df /",
                                       "regexp": "\\S+\\s+(\\d+).*\\/$",
                                       "post": "$1/1024",
                                       "multiline": true
                                   },
                                   "sdcard_root_used": {
                                       "command": "df /",
                                       "regexp": "\\S+\\s+\\d+\\s+(\\d+).*\\/$",
                                       "post": "$1/1024",
                                       "multiline": true
                                   }
                               },
                               "swap": {
                                   "swap_total": {
                                       "command": "cat /proc/meminfo",
                                       "regexp": "SwapTotal:\\s+(\\d+)",
                                       "post": "$1/1024",
                                       "multiline": true
                                   },
                                   "swap_used": {
                                       "command": "cat /proc/meminfo",
                                       "regexp": "SwapFree:\\s+(\\d+)",
                                       "post": "(rpi.swap_total - $1)/1024",
                                       "multiline": true
                                   }
                               },
                               "temperature": {
                                   "soc_temp": {
                                       "command": "cat /sys/devices/virtual/thermal/thermal_zone0/temp",
                                       "regexp": "(.*)",
                                       "post": "$1/1000"
                                   }
                               },
                               "uptime": {
                                   "uptime": {
                                       "command": "cat /proc/uptime",
                                       "regexp": "(^\\S+)",
                                       "post": ""
                                   }
                               },
                               "wlan": {
                                   "wifi_received": {
                                       "command": "cat /sys/class/net/wlan0/statistics/rx_bytes",
                                       "regexp": "(.*)",
                                       "post": "$1*-1"
                                   },
                                   "wifi_send": {
                                       "command": "cat /sys/class/net/wlan0/statistics/tx_bytes",
                                       "regexp": "(.*)",
                                       "post": ""
                                   }
                               },
                               "gpios": [
                        
                               ]
                           },
                           "objects": [
                           ],
                           "instanceObjects": [
                           ]
                        }
                        
                        

                        ist aber schon uralt und ich weiß auch nicht ob da alles drin ist.

                        Habe rein pragmatisch in den letzten Installationen einfach den Opi-Adapter genutzt.
                        Vielleicht findest du da ja noch was

                        Asgothian 1 Reply Last reply Reply Quote 0
                        • Asgothian
                          Asgothian Developer @Homoran last edited by

                          @Homoran
                          Alles was da drin ist ist so auch im rpi2 drin. Und noch etwas mehr.

                          Am besten testest du mal den adapter von meinem Repo:

                          https://github.com/asgothian/ioBroker.rpi2
                          
                          Asgothian 1 Reply Last reply Reply Quote 0
                          • Asgothian
                            Asgothian Developer @Asgothian last edited by

                            @homoran, @Garfonso, @joergeli

                            konnte einer von Euch meine Anpassungen von letzter Woche testen ? Dann würde ich den Pull-Request auslösen. Bei mir geht es.

                            A.

                            joergeli Garfonso Homoran 4 Replies Last reply Reply Quote 0
                            • joergeli
                              joergeli @Asgothian last edited by

                              @Asgothian
                              Sorry, ich hatte noch keine Zeit.

                              1 Reply Last reply Reply Quote 0
                              • Garfonso
                                Garfonso Developer @Asgothian last edited by

                                @Asgothian
                                Ja, scheint hier zu gehen.

                                1 Reply Last reply Reply Quote 0
                                • Homoran
                                  Homoran Global Moderator Administrators @Asgothian last edited by

                                  @Asgothian
                                  müsste ich mal einen Armbian Rechner neu aufsetzen und testen

                                  Asgothian 1 Reply Last reply Reply Quote 0
                                  • Asgothian
                                    Asgothian Developer @Homoran last edited by

                                    Ok. Dann gebe ich den Pull request jetzt erst einmal durch- In der Hoffnung das es keine Weiteren Probleme gibt.

                                    A.

                                    1 Reply Last reply Reply Quote 0
                                    • Homoran
                                      Homoran Global Moderator Administrators @Asgothian last edited by Homoran

                                      @Asgothian ich habe jetzt mal schnell einen guten alten Cubietruck aufgesetzt.
                                      Da läuft dein Adapter ohne Probleme:
                                      rpi2_asgothian.png

                                      ich glaube aber, dass du die cpu_frequency bei armbian sowieso als user aufrufen kannst.

                                      Habe dann noch ein paar Notizen gefunden, was ich früher mal implementiert hatte:

                                      /sys/power/axp_pmu/ocv_curve
                                      
                                      /sys/power/axp_pmu/ac:
                                      amperage  connected  used  voltage
                                      
                                      /sys/power/axp_pmu/battery:
                                      amperage  capacity  charge  charging  connected  power  ts_voltage  voltage
                                      
                                      /sys/power/axp_pmu/charger:
                                      amperage  cell_activation  charging  low_power
                                      
                                      /sys/power/axp_pmu/control:
                                      battery_rdc         disable_fuel_gauge    set_vbus_direct_mode
                                      charge_rtc_battery  reset_charge_counter
                                      
                                      /sys/power/axp_pmu/pmu:
                                      overheat  temp  voltage
                                      
                                      /sys/power/axp_pmu/vbus:
                                      amperage  connected  strong  used  voltage
                                      
                                      sudo hddtemp /dev/sda
                                      /dev/sda: ST500LM012 HN-M500MBB: 45°C
                                      

                                      die Befehle funktionieren noch auf dem Cubie. Ich hatte damals u.a. Eingangsspannung und Leistung überwacht sowie die Ladefunktionen des internen Ladereglers und der angeschlossenen LiPo-Batterie. Die habe ich im Moment nicht dran, aber die Befehle Battery/connected und charger/charging geben immerhin ein 0 heraus.

                                      Auch die Daten der am SATA angeschlossenen HDD/SSD hatte ich abgerufen und so die Temp und die Stunden im View dargestellt:

                                      03a_Master.jpg

                                      EDIT:
                                      Mist! Das log ist bei einer neuen Installation standardmäßig nicht sichtbar.
                                      Da stand doch was drin:

                                      rpi2.0	2020-09-15 21:03:21.805	error	/1024
                                      rpi2.0	2020-09-15 21:03:21.805	error	/dev/mmcblk0p1 30431292 1598472 27566624 6% /
                                      rpi2.0	2020-09-15 21:03:21.805	error	(8577) Cannot evaluate: Filesystem 1K-blocks Used Available Use% Mounted on
                                      

                                      Armbian hat eine andere Filestruktur auf der Karte
                                      ich weiß leider nicht mehr wie ich das damals (vor 5 Jahren???) abgefangen hatte

                                      EDIT2:
                                      habe es gefunden:
                                      https://forum.iobroker.net/topic/6642/rock64-pine64/202

                                      ich habe einfach die Abfragen im Adapter entfernt 😉

                                      1 Reply Last reply Reply Quote 0
                                      • Homoran
                                        Homoran Global Moderator Administrators last edited by Homoran

                                        @Asgothian

                                        Ich hatte heute mal etwas Zeit.
                                        das Ganze hatte mir keine Ruhe gelassen, also habe ich nochmals rumgeschraubt.

                                        Der "Fehler" mit der Boot-Partition ist anscheinend anders nicht zu lösen, als die Abfrage danach zu löschen.
                                        Unter Armbian kommt man anscheinend von der Root nicht mehr an die Boot-Partition, das sind verschiedene Partitionen schon auf der Karte.

                                        Da ich aber noch mehr wollte (auch wenn ich keine Ahnung habe) wollte ich nochmal wie früher unter ccu.io meinen Cubietruck komplett auslesen.

                                        Das chöne am Cubietruck ist ja die Möglichkeit dort einen Akuu anzuschließen und somit eine USV zu besitzen.
                                        Da sind so viele schöne Daten für Batterie und Netz (und noch weitere....).
                                        Ich habe es tatsächlich geschafft die io-package.json so zu manipulieren, dass ich Ergebnisse bekomme:
                                        CubieData001.png

                                        Leider scheinen die Daten für Voltage und Ampere bei Netzbetrieb und Batterie identisch ausgegeben zu werden, obwohl die Befehle über putty die richtigen Werte ausgeben.

                                        Zur Überprüfung habe ich die Formatierung der Daten absichtlich falsch gesetzt. Dies kommt aber richtig an 🤔

                                        {
                                         "common": {
                                           "name": "rpi2",
                                           "title": "RPI-Monitor",
                                           "desc": {
                                             "en": "RPI-Monitor",
                                             "de": "RPI-Monitor",
                                             "ru": "RPI-монитор",
                                             "pt": "RPI-Monitor",
                                             "nl": "RPI-Monitor",
                                             "fr": "RPI-Monitor",
                                             "it": "RPI-Monitor",
                                             "es": "RPI-Monitor",
                                             "pl": "Monitor RPI",
                                             "zh-cn": "RPI-监视器"
                                           },
                                           "version": "1.2.0",
                                           "news": {
                                             "1.2.0": {
                                               "en": "GPIO configuration as output with defined initial value",
                                               "de": "GPIO Konfiguration als Ausgang mit definiertem Startwert",
                                               "ru": "Конфигурация GPIO как выход с заданным начальным значением",
                                               "pt": "Configuração GPIO como saída com valor inicial definido",
                                               "nl": "GPIO-configuratie als uitgang met gedefinieerde beginwaarde",
                                               "fr": "Configuration GPIO en sortie avec valeur initiale définie",
                                               "it": "Configurazione GPIO come output con valore iniziale definito",
                                               "es": "Configuración GPIO como salida con valor inicial definido",
                                               "pl": "Konfiguracja GPIO jako wyjście ze zdefiniowaną wartością początkową",
                                               "zh-cn": "GPIO配置为具有定义的初始值的输出"
                                             },
                                             "1.1.1": {
                                               "en": "Error messages for not existing values are logged only once",
                                               "de": "Fehlermeldungen für nicht vorhandene Werte werden nur einmal protokolliert",
                                               "ru": "Сообщения об ошибках для несуществующих значений регистрируются только один раз",
                                               "pt": "Mensagens de erro para valores não existentes são registradas somente uma vez",
                                               "nl": "Foutmeldingen voor niet bestaande waarden worden slechts één keer vastgelegd",
                                               "fr": "Les messages d'erreur relatifs à des valeurs non existantes ne sont consignés qu'une seule fois.",
                                               "it": "I messaggi di errore per i valori non esistenti vengono registrati solo una volta",
                                               "es": "Los mensajes de error para valores no existentes se registran una sola vez.",
                                               "pl": "Komunikaty o błędach dla nieistniejących wartości są rejestrowane tylko raz",
                                               "zh-cn": "不存在的值的错误消息仅记录一次"
                                             },
                                             "1.1.0": {
                                               "en": "Support for Nodejs 10",
                                               "de": "Unterstützung für Nodejs 10",
                                               "ru": "Поддержка Nodejs 10",
                                               "pt": "Suporte para Nodejs 10",
                                               "nl": "Ondersteuning voor Nodejs 10",
                                               "fr": "Prise en charge de Nodejs 10",
                                               "it": "Supporto per Nodejs 10",
                                               "es": "Soporte para Nodejs 10",
                                               "pl": "Wsparcie dla Nodejs 10",
                                               "zh-cn": "支持Nodejs 10"
                                             },
                                             "1.0.0": {
                                               "en": "Admin3 support",
                                               "de": "Admin3-Unterstützung",
                                               "ru": "Поддержка Admin3",
                                               "pt": "Suporte Admin3",
                                               "nl": "Admin3-ondersteuning",
                                               "fr": "Support Admin3",
                                               "it": "Supporto per Admin3",
                                               "es": "Soporte de Admin3",
                                               "pl": "Obsługa Admin3",
                                               "zh-cn": "Admin3的支持"
                                             },
                                             "0.3.2": {
                                               "en": "fixed Mem available readings on Stretch",
                                               "de": "mem available bei strech gefixt",
                                               "ru": "fixed Mem available readings on Stretch",
                                               "pt": "fixo Mem disponível leituras no Trecho",
                                               "nl": "vaste Mem beschikbare metingen op Rek",
                                               "fr": "fixe Mem disponible lectures sur le Tronçon",
                                               "it": "fisso Mem disponibile letture Tratto",
                                               "es": "fijo Mem disponible lecturas en el Tramo",
                                               "pl": "stałej pamięci są dostępne czytania na odcinku",
                                               "zh-cn": "固定Mem提供的读数在拉伸"
                                             },
                                             "0.3.1": {
                                               "en": "Fixup swap_used calculation.",
                                               "de": "Korrigiere swap_used Kalkulation",
                                               "ru": "Исправлено вычисление swap_used",
                                               "pt": "Ajuste swap_used de cálculo.",
                                               "nl": "Correctie swap_used berekening.",
                                               "fr": "Correction swap_used de calcul.",
                                               "it": "Correzione swap_used di calcolo.",
                                               "es": "Corrección swap_used de cálculo.",
                                               "pl": "Obliczanie poprawki swap_used.",
                                               "zh-cn": "链接地址swap_used计算。"
                                             },
                                             "0.3.0": {
                                               "en": "Add GPIO direction indication",
                                               "de": "GPIO Richtung States hinzugefügt",
                                               "ru": "Добавлены состояния для индикации направления GPIO",
                                               "pt": "Adicionar GPIO direção indicação",
                                               "nl": "Toevoegen GPIO richting aangeven",
                                               "fr": "Ajouter GPIO indication de la direction",
                                               "it": "Aggiungere GPIO indicazione di direzione",
                                               "es": "Agregar GPIO indicación de la dirección",
                                               "pl": "Dodaj wskazaniem kierunku linii GPIO ",
                                               "zh-cn": "添加端口方向的指示"
                                             },
                                             "0.2.2": {
                                               "en": "Use BCM enumeration",
                                               "de": "Benutze BCM Numerierung",
                                               "ru": "Используется BCM нумерация",
                                               "pt": "Usar o BCM enumeração",
                                               "nl": "Gebruik BCM opsomming",
                                               "fr": "Utiliser BCM énumération",
                                               "it": "Uso miliardi di metri CUBI di enumerazione",
                                               "es": "El uso de BCM enumeración",
                                               "pl": "Używać wyliczenie mld m sześc. ",
                                               "zh-cn": "使用BCM枚举"
                                             },
                                             "0.2.1": {
                                               "en": "fix start of adapter",
                                               "de": "Korrigiert Adapterstart",
                                               "ru": "Исправлен старт драйвера",
                                               "pt": "correcção início do adaptador",
                                               "nl": "fix start van adapter",
                                               "fr": "fix début de l'adaptateur",
                                               "it": "fix inizio dell'adattatore",
                                               "es": "revisión inicio de adaptador",
                                               "pl": "naprawiono zasilacza",
                                               "zh-cn": "修复启动的适配器"
                                             }
                                           },
                                           "mode": "daemon",
                                           "platform": "javascript/Node.js",
                                           "os": [
                                             "linux"
                                           ],
                                           "loglevel": "info",
                                           "keywords": [
                                             "ioBroker",
                                             "monitoring",
                                             "raspberry",
                                             "orangepi",
                                             "odroid",
                                             "bananapi",
                                             "gpio"
                                           ],
                                           "main": "main.js",
                                           "authors": [
                                             "Christian Baumgartner",
                                             "husky-koglhof <husky.koglhof@icloud.com>"
                                           ],
                                           "osDependencies": {
                                             "linux": [
                                               "build-essential",
                                               "python"
                                             ]
                                           },
                                           "dependencies": [
                                             {
                                               "js-controller": ">=2.0.0"
                                             }
                                           ],
                                           "license": "MIT",
                                           "singletonHost": true,
                                           "readme": "https://github.com/iobroker-community-adapters/ioBroker.rpi2/blob/master/README.md",
                                           "icon": "rpi.png",
                                           "type": "hardware",
                                           "enabled": true,
                                           "materialize": true,
                                           "config": {
                                             "minWidth": 650,
                                             "width": 700,
                                             "minHeight": 600,
                                             "height": 600
                                           },
                                           "extIcon": "https://raw.githubusercontent.com/iobroker-community-adapters/ioBroker.rpi2/master/admin/rpi.png",
                                           "installedFrom": "https://github.com/asgothian/ioBroker.rpi2/tarball/9d331cb0c01fd2d2ae077fca11da2adea126ec5a"
                                         },
                                         "native": {
                                           "c_cpu": true,
                                           "c_raspberry": false,
                                           "c_memory": true,
                                           "c_network": true,
                                           "c_sdcard": true,
                                           "c_swap": true,
                                           "c_temperature": true,
                                           "c_uptime": true,
                                           "c_battery": true,
                                           "c_power_supply": true,
                                           "c_wlan": true,
                                           "interval": 60000,
                                           "cpu": {
                                             "cpu_frequency": {
                                               "command": "test -r /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_cur_freq && cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_cur_freq || test -r /sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq && cat /sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq || echo -1000",
                                               "regexp": "(.*)",
                                               "post": "$1/1000"
                                             },
                                             "load1,load5,load15": {
                                               "command": "cat /proc/loadavg",
                                               "regexp": "^(\\S+)\\s(\\S+)\\s(\\S+)",
                                               "post": ""
                                             },
                                             "scaling_governor": {
                                               "command": "cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor",
                                               "regexp": "(.*)",
                                               "post": ""
                                             }
                                           },
                                           "raspberry": {
                                             "cpu_voltage": {
                                               "command": "vcgencmd measure_volts core",
                                               "regexp": "(\\d+.\\d+)V",
                                               "post": ""
                                             },
                                             "mem_arm": {
                                               "command": "vcgencmd get_mem arm",
                                               "regexp": "(\\d+)",
                                               "post": ""
                                             },
                                             "mem_gpu": {
                                               "command": "vcgencmd get_mem gpu",
                                               "regexp": "(\\d+)",
                                               "post": ""
                                             }
                                           },
                                           "memory": {
                                             "memory_total": {
                                               "command": "cat /proc/meminfo",
                                               "regexp": "MemTotal:\\s+(\\d+)",
                                               "post": "$1/1024"
                                             },
                                             "memory_free": {
                                               "command": "cat /proc/meminfo",
                                               "regexp": "MemFree:\\s+(\\d+)",
                                               "post": "$1/1024"
                                             },
                                             "memory_available": {
                                               "command": "cat /proc/meminfo",
                                               "regexp": "MemAvailable:\\s+(\\d+)",
                                               "post": "$1/1024",
                                               "multiline": true
                                             }
                                           },
                                           "network": {
                                             "net_received": {
                                               "command": "cat /sys/class/net/eth0/statistics/rx_bytes",
                                               "regexp": "(.*)",
                                               "post": "$1*-1"
                                             },
                                             "net_send": {
                                               "command": "cat /sys/class/net/eth0/statistics/tx_bytes",
                                               "regexp": "(.*)",
                                               "post": ""
                                             }
                                           },
                                           "sdcard": {
                                             "sdcard_root_total": {
                                               "command": "df /",
                                               "regexp": "\\S+\\s+(\\d+).*\\/$",
                                               "post": "$1/1024",
                                               "multiline": true
                                             },
                                             "sdcard_root_used": {
                                               "command": "df /",
                                               "regexp": "\\S+\\s+\\d+\\s+(\\d+).*\\/$",
                                               "post": "$1/1024",
                                               "multiline": true
                                             }
                                           },
                                           "swap": {
                                             "swap_total": {
                                               "command": "cat /proc/meminfo",
                                               "regexp": "SwapTotal:\\s+(\\d+)",
                                               "post": "$1/1024",
                                               "multiline": true
                                             },
                                             "swap_used": {
                                               "command": "cat /proc/meminfo",
                                               "regexp": "SwapFree:\\s+(\\d+)",
                                               "post": "(rpi.swap_total - $1)/1024",
                                               "multiline": true
                                             }
                                           },
                                           "temperature": {
                                             "soc_temp": {
                                               "command": "cat /sys/devices/virtual/thermal/thermal_zone0/temp",
                                               "regexp": "(.*)",
                                               "post": "$1/1000"
                                             }
                                           },
                                           "uptime": {
                                             "uptime": {
                                               "command": "cat /proc/uptime",
                                               "regexp": "(^\\S+)",
                                               "post": ""
                                             }
                                           },
                                           "battery":{
                                             "connected":{
                                               "command": "cat /sys/power/axp_pmu/battery/connected",
                                           	"regexp": "(.*)",
                                               "post": ""
                                             },
                                             "voltage":{
                                               "command": "cat /sys/power/axp_pmu/battery/voltage",
                                           	"regexp": "(.*)",
                                               "post": "$1/100000"
                                             },
                                             "amperage":{
                                               "command": "cat /sys/power/axp_pmu/battery/amperage",
                                           	"regexp": "(.*)",
                                               "post": "$1/1000"
                                             },
                                             "capacity":{
                                               "command": "cat /sys/power/axp_pmu/battery/capacity",
                                           	"regexp": "(.*)",
                                               "post": ""
                                             },
                                             "charge":{
                                               "command": "cat /sys/power/axp_pmu/battery/charge",
                                           	"regexp": "(.*)",
                                               "post": "$1/1000"
                                             },
                                             "charging":{
                                               "command": "cat /sys/power/axp_pmu/battery/charging",
                                           	"regexp": "(.*)",
                                               "post": "$1/1000"
                                             }	  
                                           },
                                           "power_supply":{
                                             "connected":{
                                               "command": "cat /sys/power/axp_pmu/ac/connected",
                                           	"regexp": "(.*)",
                                               "post": ""
                                             },
                                             "voltage":{
                                               "command": "cat /sys/power/axp_pmu/ac/voltage",
                                           	"regexp": "(.*)",
                                               "post": "$1/1000000"
                                             },
                                             "amperage":{
                                               "command": "cat /sys/power/axp_pmu/ac/amperage",
                                           	"regexp": "(.*)",
                                               "post": "$1/10000"
                                             }
                                           },	
                                           "wlan": {
                                             "wifi_received": {
                                               "command": "cat /sys/class/net/wlan0/statistics/rx_bytes",
                                               "regexp": "(.*)",
                                               "post": "$1*-1"
                                             },
                                             "wifi_send": {
                                               "command": "cat /sys/class/net/wlan0/statistics/tx_bytes",
                                               "regexp": "(.*)",
                                               "post": ""
                                             }
                                           },
                                           "gpios": []
                                         },
                                         "objects": [],
                                         "instanceObjects": []
                                        }
                                        

                                        Kannst du mir dabei helfen zu verstehen wo der Fehler ist?
                                        und wo muss ich den Typ und die Einheit der States definieren?

                                        1 Reply Last reply Reply Quote 0
                                        • Homoran
                                          Homoran Global Moderator Administrators last edited by

                                          @Asgothian
                                          Habe mal einfach mit try and Error den wahrscheinlichsten Fall getroffen, dass ich die Bezeichnungen geändert habe, habe dann noch hier und da etwas geändert, sieht im Moment so aus:

                                          simulierter Stromausfall mit Batteriebetrieb
                                          CubieData_discharging.png

                                          und anschließend Stecker wieder rein:
                                          CubieData_charging.png

                                          Wenn du mir dann noch helfen könntest wo man diese Datenpunkte definiert, wäre ich dir dankbar.
                                          Variablendefinitionen hatte ich nicht gefunden, daher kam ich auf die Idee, dass die IDs gleichzeitig die Variablen sind.
                                          ich hatte gehofft, dass durch die unterschiedlichen Objekte, die darin enthaltenen States ruhig gleich bezeichnet werden könnten

                                          Asgothian 1 Reply Last reply Reply Quote 0
                                          • Asgothian
                                            Asgothian Developer @Homoran last edited by Asgothian

                                            @Homoran

                                            Die Definition ist eigentlich ganz einfach, hier mal am Beispiel "raspberry" :

                                                    "raspberry": {
                                                        "cpu_voltage": {
                                                            "command": "vcgencmd measure_volts core",
                                                            "regexp": "(\\d+.\\d+)V",
                                                            "post": ""
                                                        },
                                                        "mem_arm": {
                                                            "command": "vcgencmd get_mem arm",
                                                            "regexp": "(\\d+)",
                                                            "post": ""
                                                        },
                                                        "mem_gpu": {
                                                            "command": "vcgencmd get_mem gpu",
                                                            "regexp": "(\\d+)",
                                                            "post": ""
                                                        }
                                                    },
                                            
                                            

                                            das JSON Objekt hinter der Property "raspberry" bezeichnet die 3 Objekte die unter "rpi2.0.raspberry" angelegt werden. Die "ID" der Objekte entspricht dabei den Properties aus der 1. Ebene (also "cpu_voltage", "mem_arm", "mem_gpu". Die Benennung entspricht der "vollständigen id", also z.Bsp. rpi2.0.raspberry.mem_gpu"

                                            Ausgewertet werden diese Properties aber NUR, wenn es auf der obersten Ebene des "common" JSON Objektes den Eintrag "c_raspberry":true gibt. Ohne diesen wird das ganze JSON zu "raspberry" nicht weiter beachtet.

                                            Die "c_..." properties werden auch von der admin Oberfläche aus einstellbar gemacht - müssen also dafuer auch im admin Bereich mit eingetragen werden.

                                            Die eigentliche Benennung der Objekte selber müssen wie eigentlich immer nur in der vollständigen ID eindeutig sein ("rpi2.0.raspberry.mem_gpu")

                                            Was den Typ angeht - aktuell ist der Typ immer "numerisch" oder "mixed", abhängig davon ob es innerhalb eines "verzeichnis" einen oder mehrere Datenpuntkte gibt. Ist es nur einer, ist der Typ mixed, sind es mehrere ist es numerisch.

                                            Da müsste ich die Einträge mal erweitern um "type" und "format". Das kann ich tun wenn Du mir sagst was da gewünscht ist.

                                            Ich hoffe das hilft soweit. Ansonsten können wir uns mal per ts / discord direkt unterhalten.

                                            A.

                                            Homoran 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

                                            422
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            19
                                            64
                                            8321
                                            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