Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. $-Operator liefert nicht alles

    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

    $-Operator liefert nicht alles

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

      Hallo,

      mir ist aufgefallen, dass der $-Operator nur dann etwas zurückliefert, wenn sich innerhalb der angefragten Struktur States befinden.

      Beispiel: 0_userdata.0.home.devices.nas ist als "device" angelegt.
      Ein

      $('0_userdata.0.home.devices.*').each(function(id, i) {
              log(id);
      });
      

      sollte etwas zurückliefern - das tut es aber nur, wenn z.B. 0_userdata.0.home.devices.test als State angelegt wurde.

      Auch ein $('device[id=...]')... liefert nichts, obwohl das doch alle Objekte vom Typ "device" zurückliefern sollte, oder?

      Eigentlich wollte ich unter 0_userdata.0.home.devices jeweils ein "leeres" Device anlegen, das dann per Skript mit einer vordefinierten Struktur befüllt werden soll. Aber das scheitert daran, dass mein Skript den Eintrag nicht findet...

      Hat jemand eine Idee, woran das liegt und wie ich das Problem beheben oder zumindest umgehen kann (ohne manuell States anzulegen 😉 )?

      Homoran paul53 2 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @antimon last edited by

        @antimon sagte in $-Operator liefert nicht alles:

        Beispiel: 0_userdata.0.home.devices.nas ist als "device" angelegt.

        ordnungsgemäß als Objekt?

        A 1 Reply Last reply Reply Quote 0
        • A
          antimon @Homoran last edited by

          @homoran definiere "ordnungsgemäß" 😉
          Ich habe es über admin angelegt - daher gehe ich aus, dass es "ordnungsgemäß" ist 😉

          Beispiel:

          {
            "common": {
              "name": "pve",
              "desc": "Manuell erzeugt",
              "role": "",
              "icon": ""
            },
            "type": "device",
            "from": "system.adapter.admin.0",
            "user": "system.user.admin",
            "ts": 1648676318434,
            "_id": "0_userdata.0.home.devices.pve",
            "acl": {
              "object": 1636,
              "owner": "system.user.admin",
              "ownerGroup": "system.group.administrator"
            }
          }
          
          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @antimon last edited by paul53

            @antimon sagte: woran das liegt

            Der $-Selektor erfasst nur Datenpunkte.
            Geräte ohne Datenpunkte sind für ioBroker sinnfrei.

            A 1 Reply Last reply Reply Quote 0
            • A
              antimon @paul53 last edited by

              @paul53 Okay - das heisst... entweder einen "Dummy"-Datenpunkt anlegen, damit das device "visible" wird?
              Oder gibt es eine andere Methode, den Objektbaum auszulesen?

              paul53 Homoran 2 Replies Last reply Reply Quote 0
              • paul53
                paul53 @antimon last edited by paul53

                @antimon sagte: gibt es eine andere Methode, den Objektbaum auszulesen?

                Ich kenne keine. Vielleicht eine Aufzählung, unter die man die Geräte packt?

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

                  @antimon Wofür brauch man denn die Geräte, wenn sie keine Datenpunkte haben?
                  Da muss ichPaul zustimmen

                  @paul53 sagte in $-Operator liefert nicht alles:

                  Geräte ohne Datenpunkte sind für ioBroker sinnfrei.

                  A 1 Reply Last reply Reply Quote 0
                  • A
                    antimon @Homoran last edited by antimon

                    @homoran Naja wie schon gesagt sollen die Datenpunkte durch ein Skript angelegt werden. Das ist ein paar Sekunden "sinnfrei", bis das Skript seine Arbeit erledigt hat - das leere Device dient nur als "Template" oder "Container", damit das Skript weiß, wo es eine Struktur hinlegen soll.

                    Warum sollte ich alle Datenpunkte von Hand anlegen, wenn das auch automatisiert erledigt werden kann?

                    @paul53 sagte in $-Operator liefert nicht alles:

                    Ich kenne keine. Vielleicht eine Aufzählung, unter die man die Geräte packt?

                    Wenn du keine kennst, dann gibts keine 😉
                    Die Idee gefällt mir - eigentlich brauche ich ja nur eine Liste mit Gerätenamen, die dann entsprechend befüllt werden...

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @antimon last edited by

                      @antimon sagte: die Datenpunkte durch ein Skript angelegt werden.

                      Weshalb dann nicht auch das zugehörige Gerät?

                      A 1 Reply Last reply Reply Quote 0
                      • A
                        antimon @paul53 last edited by

                        @paul53 Das hat sich jetzt etwas überschnitten... 😉

                        Ja, wenn ich die Liste der Geräte woanders herbekomme, passt das. Meine Idee war ursprünglich, einfach die Objekte anzulegen und dann befüllen zu lassen.
                        In den Metadaten der Objekte sollen nämlich auch noch Abhängigkeiten erfasst werden (Gerät x ist von Gerät y abhängig, z.B. PC ist von geschalteter Steckdose abhängig), um Geräte in einer bestimmten Reihenfolge hoch-/runterfahren zu können. Da muss ich eh in die Eigenschaften des Objekts um das zu bearbeiten - oder ich lege mir in JS eine Struktur mit den benötigten Informationen an, das wäre auch noch eine Idee...

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        841
                        Online

                        31.9k
                        Users

                        80.1k
                        Topics

                        1.3m
                        Posts

                        3
                        10
                        311
                        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