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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Dynamischer Objektbaum

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    293

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    597

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.8k

Dynamischer Objektbaum

Geplant Angeheftet Gesperrt Verschoben Entwicklung
api json requests objects
15 Beiträge 3 Kommentatoren 1.7k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • 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
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • ? Ein ehemaliger Benutzer

      @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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        Ein ehemaliger Benutzer
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • ? Ein ehemaliger Benutzer

          @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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            Ein ehemaliger Benutzer
            schrieb am zuletzt editiert von
            #9

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

            Schnup89S 1 Antwort Letzte Antwort
            0
            • ? Ein ehemaliger Benutzer

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

              Schnup89S Offline
              Schnup89S Offline
              Schnup89
              schrieb am zuletzt editiert von
              #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 Antworten Letzte Antwort
              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
                Ein ehemaliger Benutzer
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                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
                  Ein ehemaliger Benutzer
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  0
                  • ? Ein ehemaliger Benutzer

                    @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
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    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
                      Ein ehemaliger Benutzer
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      0
                      • ? Ein ehemaliger Benutzer

                        @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
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        0
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        710

                        Online

                        32.5k

                        Benutzer

                        81.9k

                        Themen

                        1.3m

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

                        • Du hast noch kein Konto? Registrieren

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