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
    372

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

  • 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

    @ilovegym Servus!

    Schön dass der Adapter einen nutzen findet.
    Zum Glück gibt es bei openwrt für fast alles ubus Kommandos :)
    Das dürfte das ubus Kommando zum Ziel sein:

    ubus call network.wireless status

    Viele Grüße
    Schnup

    ? Offline
    ? Offline
    Ein ehemaliger Benutzer
    schrieb am zuletzt editiert von
    #4

    @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 1 Antwort Letzte Antwort
    0
    • 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

                          369

                          Online

                          32.6k

                          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