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. Skripten / Logik
  4. JavaScript
  5. $-Operator liefert nicht alles

NEWS

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

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

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

$-Operator liefert nicht alles

Geplant Angeheftet Gesperrt Verschoben JavaScript
10 Beiträge 3 Kommentatoren 464 Aufrufe 1 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.
  • A Offline
    A Offline
    antimon
    schrieb am zuletzt editiert von
    #1

    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 ;) )?

    HomoranH paul53P 2 Antworten Letzte Antwort
    0
    • A antimon

      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 ;) )?

      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #2

      @antimon sagte in $-Operator liefert nicht alles:

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

      ordnungsgemäß als Objekt?

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      A 1 Antwort Letzte Antwort
      0
      • HomoranH Homoran

        @antimon sagte in $-Operator liefert nicht alles:

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

        ordnungsgemäß als Objekt?

        A Offline
        A Offline
        antimon
        schrieb am zuletzt editiert von
        #3

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

          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 ;) )?

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #4

          @antimon sagte: woran das liegt

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

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          A 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @antimon sagte: woran das liegt

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

            A Offline
            A Offline
            antimon
            schrieb am zuletzt editiert von
            #5

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

            paul53P HomoranH 2 Antworten Letzte Antwort
            0
            • A antimon

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

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von paul53
              #6

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

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

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Antwort Letzte Antwort
              0
              • A antimon

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

                HomoranH Nicht stören
                HomoranH Nicht stören
                Homoran
                Global Moderator Administrators
                schrieb am zuletzt editiert von
                #7

                @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.

                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                A 1 Antwort Letzte Antwort
                0
                • HomoranH Homoran

                  @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 Offline
                  A Offline
                  antimon
                  schrieb am zuletzt editiert von antimon
                  #8

                  @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...

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • A 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...

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #9

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

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

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    A 1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

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

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

                      A Offline
                      A Offline
                      antimon
                      schrieb am zuletzt editiert von
                      #10

                      @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 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

                      808

                      Online

                      32.4k

                      Benutzer

                      81.6k

                      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