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.
    • 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
                                • Homoran
                                  Homoran Global Moderator Administrators @Asgothian last edited by Homoran

                                  @Asgothian
                                  Danke für die Antworten!

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

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

                                  Das hatte ich ja auch früher schon mal geändert um den Adapter an Armbian anzupassen.
                                  Soweit war das kein Problem.

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

                                  Ausgewertet werden diese Properties aber NUR, wenn es auf der obersten Ebene des "common" JSON Objektes den Eintrag "c_raspberry":true gibt.

                                  Das hatte ich mittlerweile auch herausbekommen und entsprechende Einträge hinzugefügt.
                                  Dadurch bekam ich dann die neuen "Gruppen"
                                  CubieData011.png

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

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

                                  Das wäre natürlich noch das Sahnehäubchen - muss ich mir mal ansehen

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

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

                                  Davon war ich auch ausgegangen, aber anscheinend klappt das bei dem Adapter nicht, wenn die States trotz verschiedener Devices den gelichen Namen haben.
                                  Habe mal versucht die main.js nachzuvollziehen. Auch wenn mir da vieles viel zu hoch ist, scheint es da eine funktion parser zu geben, die anscheinend die Werte nicht korrekt zuordnet.

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

                                  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.

                                  Mein Wunsch ist relativ unwichtig, aber ich denke die Typen sollten schon korrekt sein. Außerdem sollten die units noch mit rein.

                                  Wenn ich eine unmaßgebliche Idee dazu haben sollte, würde ich in der io-package.json noch weitere Punkte entsprechend der Objektbeschreibungen ("unit";"type";"format") hinzufügen, die dann über die parser-Funktion ausgelesen werden müssten.

                                  Hatte zwischenzeitlich manuell das raw angepasst
                                  CubieData_dis_and_charging_data.png

                                  Mein nächster Schritt wäre noch Daten für die SSD einzubinden, wäre vielleicht auch für andere SBC sinnvoll, da immer mehr eine USB/SATA SSD nutzen.
                                  Damals habe ich die Daten über smartmoncontrol ausgelesen.
                                  Habe ich auch schon installiert, aber noch keine Platte dran 😉

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

                                  Ansonsten können wir uns mal per ts / discord direkt unterhalten.

                                  habe ich leider beides nicht, werde ich auch nicht einrichten.

                                  Nochmals danke für die Hilfe!!!!

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

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

                                    Davon war ich auch ausgegangen, aber anscheinend klappt das bei dem Adapter nicht, wenn die States trotz verschiedener Devices den gelichen Namen haben.

                                    das ist seltsam, ich hatte da keine Probleme. Ich hab mir zum Spass mal 2 Werte erzeugt mit gleichem internen Namen. Das teste ich noch im Detail die Tage, und behebe das gleich wenn ich heraus bekomme wo es klemmt.

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

                                    Mein nächster Schritt wäre noch Daten für die SSD einzubinden, wäre vielleicht auch für andere SBC sinnvoll, da immer mehr eine USB/SATA SSD nutzen.
                                    Damals habe ich die Daten über smartmoncontrol ausgelesen.
                                    Habe ich auch schon installiert, aber noch keine Platte dran

                                    Hier müssen wir aufpassen. Wenn neue Datenpunkte hinzu gefügt werden müssen wir uns über die Fehlerbehandlung unterhalten.
                                    Es ist halt blöd wenn in der Konfiguration Datenpunkte auswählbar sind die dann Fehlermeldungen im Log oder sogar im Syslog des Systems hinterlassen. Ich denke das man da besser fährt wenn entsprechende Default-Werte hinterlegt werden können.

                                    A.

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

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

                                      Wenn neue Datenpunkte hinzu gefügt werden müssen wir uns über die Fehlerbehandlung unterhalten.

                                      klar - aber erst mal sehn was überhaupt geht 😉

                                      Dauert bei mir eh wieder Wochen

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

                                      das ist seltsam, ich hatte da keine Probleme.

                                      Die Datenpunkte werden korrekt im Objektbaum angelegt, haben bei gleichem State-Namen bei mir aber identische Werte angezeigt.
                                      Nach änderung der Namen (zuerst bei rpi2.0.battery-stateName_b das _b angehängt) lief alles problemlos

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

                                      Support us

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

                                      899
                                      Online

                                      31.8k
                                      Users

                                      80.0k
                                      Topics

                                      1.3m
                                      Posts

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