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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Dynamischer Objektbaum

NEWS

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

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

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

Dynamischer Objektbaum

Scheduled Pinned Locked Moved Entwicklung
api json requests objects
15 Posts 3 Posters 1.6k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Schnup89S Schnup89

    Hallo zusammen,

    ich bräuchte euren Rat.

    Ich bin gerade dabei einen Adapter für die Kommunikation mit OpenWrt-Geräte zu erstellen:
    https://github.com/Schnup89/ioBroker.openwrt

    Ich bekomme json-Resultate über die API welche ich Element für Element in die Objekt-Datenbank schreibe.
    Als Beispiel das Resultat des zweiten Kommandos (ubus call hostapd.wlanX get_clients):
    https://github.com/Schnup89/ioBroker.openwrt/wiki/ubus-commands

    Dort bekomme ich die Wlan-Clients als JSON-Liste "clients" ist hier Parent ausgegeben.

    1. Eintrag "ec:fa:bc:9a:xx:xx"
    2. Eintrag "84:f3:eb:3e:yy:yy"

    Bei nächsten Datenabruf über die API ist Client "84:f3:eb:3e:yy:yy" nicht mehr dabei da er nicht mehr mit dem WLAN verbunden ist.
    Dieser wurde aber vorher schon im Objektbaum erstellt.

    Wie gehe ich am besten vor? Der Eintrag muss weg, aber wie?

    Was ich mir Vorstellen kann:

    1. Nach dem schreiben des letzten Objekts alle Objekte in dem "Ordner" per lastModified prüfen, wenn älter als letzter Datenabruf, dann das betreffende Objetkt löschen
    • Das ist etwas mehr Code aber meiner Meinung nach einer der besseren Weg.
    1. Alle Objekte löschen und neu anlegen
    • Das wird meiner Meinung nach blöd, da z.B. die "Historie" Einstellung auf einem state/objekt dann auch gelöscht wird, oder?

    Danke und Gruß
    Schnup

    braindeadB Offline
    braindeadB Offline
    braindead
    Developer
    wrote on last edited by
    #5

    @Schnup89 said in Dynamischer Objektbaum:

    Bei nächsten Datenabruf über die API ist Client "84:f3:eb:3e:yy:yy" nicht mehr dabei da er nicht mehr mit dem WLAN verbunden ist.
    Dieser wurde aber vorher schon im Objektbaum erstellt.

    Wie gehe ich am besten vor? Der Eintrag muss weg, aber wie?

    In meinem Unifi Adapter habe ich exakt das selbe Problem. Meine Lösung ist, dass das Objekt nicht gelöscht wird und es stattdessen für jeden Client einen is_online State gibt, der true oder false ist. Natürlich brauchst Du dann in Deinem Code eine Logik, der Clients, die nicht mehr im JSON auftauchen auch auf false setzt.

    1 Reply Last reply
    0
    • ? A Former User

      @Schnup89 Hi,
      Das Kommando hab ich schon drin, aber das zeigt nur die config, nicht die Werte, bei Channel ist "Auto" gesetzt, iwinfo zeigt mir, welcher Channel aktiv ist, und ubus network.wireless Status ergibt nur Auto 🙈

      Das gleiche mit Link quality ..etc..

      Ich hab kein ubus command gefunden dafür..

      Schnup89S Offline
      Schnup89S Offline
      Schnup89
      wrote on last edited by
      #6

      @ilovegym Okay stimmt!

      Funktioniert bei mir zwar nicht, aber evtl. hast du mehr Glück mit der RPC Erweiterung für iwinfo:
      https://openwrt.org/docs/guide-developer/ubus/iwinfo

      opkg update
      opkg install rpcd-mod-iwinfo

      !reboot!

      ubus list
      *Hier sollte dann iwinfo erscheinen

      ubus call iwinfo wlan0 info
      Wenn der dir Daten ausspuckt kannst du das Kommando nehmen, bei mir gibt's da aber ein "parse error" 😕

      @braindead
      Danke das ist eine gute Idee und gar nicht mal so viel Programmieraufwand, danke dir!

      ? 1 Reply Last reply
      0
      • Schnup89S Schnup89

        @ilovegym Okay stimmt!

        Funktioniert bei mir zwar nicht, aber evtl. hast du mehr Glück mit der RPC Erweiterung für iwinfo:
        https://openwrt.org/docs/guide-developer/ubus/iwinfo

        opkg update
        opkg install rpcd-mod-iwinfo

        !reboot!

        ubus list
        *Hier sollte dann iwinfo erscheinen

        ubus call iwinfo wlan0 info
        Wenn der dir Daten ausspuckt kannst du das Kommando nehmen, bei mir gibt's da aber ein "parse error" 😕

        @braindead
        Danke das ist eine gute Idee und gar nicht mal so viel Programmieraufwand, danke dir!

        ? Offline
        ? Offline
        A Former User
        wrote on last edited by
        #7

        @Schnup89
        Hi,
        vielen Dank, geht bei mir auch nicht, auch parse error.

        Ein "iwinfo wlan0 info" funktioniert, wobei das Ergebnis das gleich wie einfach nur ein iwinfo ist.
        Muss ich mir ein javascript basteln, das das commando alle Minute hinschickt und das Ergebnis auswertet, die Datenpunkte sind ja im Adapter drin.

        Übrigens, stell doch deinen Adapter mal der Mehrheit hier im Forum vor, da gibts ganz viele helle Köpfe, die nette Ideen und fixes liefern.. 🙂
        Ein Fehler ist das nicht.

        Schnup89S 1 Reply Last reply
        0
        • ? A Former User

          @Schnup89
          Hi,
          vielen Dank, geht bei mir auch nicht, auch parse error.

          Ein "iwinfo wlan0 info" funktioniert, wobei das Ergebnis das gleich wie einfach nur ein iwinfo ist.
          Muss ich mir ein javascript basteln, das das commando alle Minute hinschickt und das Ergebnis auswertet, die Datenpunkte sind ja im Adapter drin.

          Übrigens, stell doch deinen Adapter mal der Mehrheit hier im Forum vor, da gibts ganz viele helle Köpfe, die nette Ideen und fixes liefern.. 🙂
          Ein Fehler ist das nicht.

          Schnup89S Offline
          Schnup89S Offline
          Schnup89
          wrote on last edited by
          #8

          @ilovegym
          Hab mir das nochmal mit dem ubus monitor angesehen während ich die Webseite offen hatte.
          Schau mal ob der folgende ubus Befehl dir das gewünschte Ergebnis bringt:

          ubus call luci-rpc getWirelessDevices

          ? 1 Reply Last reply
          0
          • Schnup89S Schnup89

            @ilovegym
            Hab mir das nochmal mit dem ubus monitor angesehen während ich die Webseite offen hatte.
            Schau mal ob der folgende ubus Befehl dir das gewünschte Ergebnis bringt:

            ubus call luci-rpc getWirelessDevices

            ? Offline
            ? Offline
            A Former User
            wrote on last edited by
            #9

            @Schnup89
            Hi,
            nee, leider geht das auch nicht bei mir....

            Schnup89S 1 Reply Last reply
            0
            • ? A Former User

              @Schnup89
              Hi,
              nee, leider geht das auch nicht bei mir....

              Schnup89S Offline
              Schnup89S Offline
              Schnup89
              wrote on last edited by
              #10

              @ilovegym
              Bekommst du deine Werte nicht, oder generell keinen output?

               "radio1": {
                              "up": true,
                              "pending": false,
                              "autostart": true,
                              "disabled": false,
                              "retry_setup_failed": false,
                              "iwinfo": {
                                      "signal": -50,
                                      "noise": -95,
                                      "channel": 1,
                                      "country": "DE",
                                      "phy": "phy1",
                                      "txpower": 20,
                                      "frequency": 2412,
                                      "hwmodes": [
                                              "b",
                                              "g",
                                              "n"
                                      ],
                                      "htmodes": [
                                              "HT20",
                                              "HT40"
                                      ]
                              }
              

              Folgende Pakete sind bzgl. RPC installiert:

              root@OpenWrt:~# opkg list-installed | grep rpc
              rpcd - 2020-05-26-67c8a3fd-1
              rpcd-mod-file - 2020-05-26-67c8a3fd-1
              rpcd-mod-iwinfo - 2020-05-26-67c8a3fd-1
              rpcd-mod-luci - 20191114
              rpcd-mod-rrdns - 20170710
              root@OpenWrt:~# opkg list-installed | grep ubus
              libubus-lua - 2019-12-27-041c9d1c-1
              libubus20191227 - 2019-12-27-041c9d1c-1
              ubus - 2019-12-27-041c9d1c-1
              ubusd - 2019-12-27-041c9d1c-1
              
              ? 2 Replies Last reply
              0
              • Schnup89S Schnup89

                @ilovegym
                Bekommst du deine Werte nicht, oder generell keinen output?

                 "radio1": {
                                "up": true,
                                "pending": false,
                                "autostart": true,
                                "disabled": false,
                                "retry_setup_failed": false,
                                "iwinfo": {
                                        "signal": -50,
                                        "noise": -95,
                                        "channel": 1,
                                        "country": "DE",
                                        "phy": "phy1",
                                        "txpower": 20,
                                        "frequency": 2412,
                                        "hwmodes": [
                                                "b",
                                                "g",
                                                "n"
                                        ],
                                        "htmodes": [
                                                "HT20",
                                                "HT40"
                                        ]
                                }
                

                Folgende Pakete sind bzgl. RPC installiert:

                root@OpenWrt:~# opkg list-installed | grep rpc
                rpcd - 2020-05-26-67c8a3fd-1
                rpcd-mod-file - 2020-05-26-67c8a3fd-1
                rpcd-mod-iwinfo - 2020-05-26-67c8a3fd-1
                rpcd-mod-luci - 20191114
                rpcd-mod-rrdns - 20170710
                root@OpenWrt:~# opkg list-installed | grep ubus
                libubus-lua - 2019-12-27-041c9d1c-1
                libubus20191227 - 2019-12-27-041c9d1c-1
                ubus - 2019-12-27-041c9d1c-1
                ubusd - 2019-12-27-041c9d1c-1
                
                ? Offline
                ? Offline
                A Former User
                wrote on last edited by
                #11

                @Schnup89 kommen einfach keine Werte und kein Fehler.
                Wollte den Router updaten und jetzt isser voll und ich kann keine Pakete mehr installieren..
                hmpff. was kann ich denn löschen, ohne gleich das ganze Teil platt zu machen? Der ist so schön eingebaut..

                1 Reply Last reply
                0
                • Schnup89S Schnup89

                  @ilovegym
                  Bekommst du deine Werte nicht, oder generell keinen output?

                   "radio1": {
                                  "up": true,
                                  "pending": false,
                                  "autostart": true,
                                  "disabled": false,
                                  "retry_setup_failed": false,
                                  "iwinfo": {
                                          "signal": -50,
                                          "noise": -95,
                                          "channel": 1,
                                          "country": "DE",
                                          "phy": "phy1",
                                          "txpower": 20,
                                          "frequency": 2412,
                                          "hwmodes": [
                                                  "b",
                                                  "g",
                                                  "n"
                                          ],
                                          "htmodes": [
                                                  "HT20",
                                                  "HT40"
                                          ]
                                  }
                  

                  Folgende Pakete sind bzgl. RPC installiert:

                  root@OpenWrt:~# opkg list-installed | grep rpc
                  rpcd - 2020-05-26-67c8a3fd-1
                  rpcd-mod-file - 2020-05-26-67c8a3fd-1
                  rpcd-mod-iwinfo - 2020-05-26-67c8a3fd-1
                  rpcd-mod-luci - 20191114
                  rpcd-mod-rrdns - 20170710
                  root@OpenWrt:~# opkg list-installed | grep ubus
                  libubus-lua - 2019-12-27-041c9d1c-1
                  libubus20191227 - 2019-12-27-041c9d1c-1
                  ubus - 2019-12-27-041c9d1c-1
                  ubusd - 2019-12-27-041c9d1c-1
                  
                  ? Offline
                  ? Offline
                  A Former User
                  wrote on last edited by
                  #12

                  @Schnup89 übrigens, openwrt 18.06.08 ..
                  TP-Link 941ND v6

                  er läuft ja noch.. und solange bleibt er jetzt.. ansonsten kann man das Netzteil bestimmt für was anderes gebrauchen 🙂

                  Schnup89S 1 Reply Last reply
                  0
                  • ? A Former User

                    @Schnup89 übrigens, openwrt 18.06.08 ..
                    TP-Link 941ND v6

                    er läuft ja noch.. und solange bleibt er jetzt.. ansonsten kann man das Netzteil bestimmt für was anderes gebrauchen 🙂

                    Schnup89S Offline
                    Schnup89S Offline
                    Schnup89
                    wrote on last edited by
                    #13

                    @ilovegym
                    Ich hab die neuste drauf.
                    Lass die installiere Pakete anzeigen mit:

                    opkg list-installed
                    

                    Hier kannst du schauen ob da was dabei was du nicht benötigst (vpn z.B.) und löschen

                    ? 1 Reply Last reply
                    0
                    • Schnup89S Schnup89

                      @ilovegym
                      Ich hab die neuste drauf.
                      Lass die installiere Pakete anzeigen mit:

                      opkg list-installed
                      

                      Hier kannst du schauen ob da was dabei was du nicht benötigst (vpn z.B.) und löschen

                      ? Offline
                      ? Offline
                      A Former User
                      wrote on last edited by
                      #14

                      @Schnup89 ja, ich weiss, aber genau das geht nicht, weil der overlay voll ist.. den kann ich zwar löschen, aber dann ist das Setup weg. Muss ich mal in Ruhe schauen.

                      Hast du auch den TP-Link 941ND v6,. ??? Der hat ja nur 4/32mb und da ist das die neueste Version... oder gibts n Trick?

                      Schnup89S 1 Reply Last reply
                      0
                      • ? A Former User

                        @Schnup89 ja, ich weiss, aber genau das geht nicht, weil der overlay voll ist.. den kann ich zwar löschen, aber dann ist das Setup weg. Muss ich mal in Ruhe schauen.

                        Hast du auch den TP-Link 941ND v6,. ??? Der hat ja nur 4/32mb und da ist das die neueste Version... oder gibts n Trick?

                        Schnup89S Offline
                        Schnup89S Offline
                        Schnup89
                        wrote on last edited by
                        #15

                        @ilovegym
                        Nein ich habe den Archer C7, da kann ich 10MB für Packages nutzen. Da bin ich leider zu wenig im Thema um dir weiterhelfen zu können. evtl. funktionierts mit der neusten openwrt version out-of-the-box... aber dafür muss auch erstmal updaten 🙂

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        674

                        Online

                        32.4k

                        Users

                        81.4k

                        Topics

                        1.3m

                        Posts
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        ioBroker Community 2014-2025
                        logo
                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Recent
                        • Tags
                        • Unread 0
                        • Categories
                        • Unreplied
                        • Popular
                        • GitHub
                        • Docu
                        • Hilfe