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. JS: wie Datenpunkte Unterstrukturen lesen?

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    513

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

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

JS: wie Datenpunkte Unterstrukturen lesen?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
10 Beiträge 3 Kommentatoren 761 Aufrufe 2 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.
  • M Offline
    M Offline
    Maddm
    schrieb am zuletzt editiert von
    #1

    Hi,

    ich möchte bei all meinen Shelly Geräten die IDs auslesen (shelly.0.info.FOLDER.id), so dass ich hinterher die Datenpunkte shelly.0.abc.id, shelly.0.def.id usw auslesen kann.
    Wie mach ich das am Besten in Javascript?

    96b4d1ed-7acc-4ca2-a44b-d93526ac2125-image.png

    Hintergrund: ich will ein Script nicht immer dann anpassen, wenn ein neues Gerät dazu kommt - da es sich in die gleiche Ordnerstruktur einsortiert, will ich es dann direkt auslesen können.

    paul53P 1 Antwort Letzte Antwort
    0
    • M Maddm

      Hi,

      ich möchte bei all meinen Shelly Geräten die IDs auslesen (shelly.0.info.FOLDER.id), so dass ich hinterher die Datenpunkte shelly.0.abc.id, shelly.0.def.id usw auslesen kann.
      Wie mach ich das am Besten in Javascript?

      96b4d1ed-7acc-4ca2-a44b-d93526ac2125-image.png

      Hintergrund: ich will ein Script nicht immer dann anpassen, wenn ein neues Gerät dazu kommt - da es sich in die gleiche Ordnerstruktur einsortiert, will ich es dann direkt auslesen können.

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

      @maddm sagte: Datenpunkte shelly.0.abc.id, shelly.0.def.id usw

      Im Trigger mit RegExp.

      on(/^shelly\.0\..+\.id$/, function(dp) {
          log(dp.id);
      });
      

      Oder mit dem $Selector. Dann muss aber nach Hinzufügen eines Gerätes das Skript oder die JS-Instanz neu gestartet werden.

      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

      M 1 Antwort Letzte Antwort
      1
      • paul53P paul53

        @maddm sagte: Datenpunkte shelly.0.abc.id, shelly.0.def.id usw

        Im Trigger mit RegExp.

        on(/^shelly\.0\..+\.id$/, function(dp) {
            log(dp.id);
        });
        

        Oder mit dem $Selector. Dann muss aber nach Hinzufügen eines Gerätes das Skript oder die JS-Instanz neu gestartet werden.

        M Offline
        M Offline
        Maddm
        schrieb am zuletzt editiert von Maddm
        #3

        @paul53
        Danke für die Antwort, aber ich verstehe sie (noch) nicht...
        Du hast geschrieben "im Trigger" - ich möchte das Auslesen aber nicht machen, wenn irgendwas triggert, sondern jede Stunde.
        Sprich: geh jede Stunde durch alle Devices durch, gibt die Datenpunkte .id und .power aus.

        Output wäre dazu:
        shelly.0.abc.id = 15, shelly.0.abc.power = 100
        shelly.0.efg.id = 16, shelly.0.efg.power = 120
        shelly.0.hij.id = 17, shelly.0.hij.power = 170

        paul53P 1 Antwort Letzte Antwort
        0
        • M Maddm

          @paul53
          Danke für die Antwort, aber ich verstehe sie (noch) nicht...
          Du hast geschrieben "im Trigger" - ich möchte das Auslesen aber nicht machen, wenn irgendwas triggert, sondern jede Stunde.
          Sprich: geh jede Stunde durch alle Devices durch, gibt die Datenpunkte .id und .power aus.

          Output wäre dazu:
          shelly.0.abc.id = 15, shelly.0.abc.power = 100
          shelly.0.efg.id = 16, shelly.0.efg.power = 120
          shelly.0.hij.id = 17, shelly.0.hij.power = 170

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

          @maddm sagte: jede Stunde durch alle Devices durch, gibt die Datenpunkte .id und .power aus.

          Das geht mittels $Selector.

          const ids = $('shelly.0.*.id');
          
          schedule('0 * * * *', function() {
              ids.each(function(id) {
                  const idPower = id.replace('.id', '.power');
                  log(id + ' = ' + getState(id).val + ', ' + idPower + ' = ' + getState(idPower).val);
              });
          });
          

          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

          haus-automatisierungH 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @maddm sagte: jede Stunde durch alle Devices durch, gibt die Datenpunkte .id und .power aus.

            Das geht mittels $Selector.

            const ids = $('shelly.0.*.id');
            
            schedule('0 * * * *', function() {
                ids.each(function(id) {
                    const idPower = id.replace('.id', '.power');
                    log(id + ' = ' + getState(id).val + ', ' + idPower + ' = ' + getState(idPower).val);
                });
            });
            
            haus-automatisierungH Online
            haus-automatisierungH Online
            haus-automatisierung
            Developer Most Active
            schrieb am zuletzt editiert von
            #5

            @paul53 Am besten den Selektor mit in den Callback, dann werden auch neue Geräte gefunden

            🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
            🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
            📚 Meine inoffizielle ioBroker Dokumentation

            paul53P 1 Antwort Letzte Antwort
            0
            • haus-automatisierungH haus-automatisierung

              @paul53 Am besten den Selektor mit in den Callback, dann werden auch neue Geräte gefunden

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

              @haus-automatisierung: den Selektor mit in den Callback, dann werden auch neue Geräte gefunden

              Sicher?

              Das sähe dann so aus:

              schedule('0 * * * *', function() {
                  $('shelly.0.*.id').each(function(id) {
                      const idPower = id.replace('.id', '.power');
                      log(id + ' = ' + getState(id).val + ', ' + idPower + ' = ' + getState(idPower).val);
                  });
              });
              

              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

              haus-automatisierungH 1 Antwort Letzte Antwort
              3
              • paul53P paul53

                @haus-automatisierung: den Selektor mit in den Callback, dann werden auch neue Geräte gefunden

                Sicher?

                Das sähe dann so aus:

                schedule('0 * * * *', function() {
                    $('shelly.0.*.id').each(function(id) {
                        const idPower = id.replace('.id', '.power');
                        log(id + ' = ' + getState(id).val + ', ' + idPower + ' = ' + getState(idPower).val);
                    });
                });
                
                haus-automatisierungH Online
                haus-automatisierungH Online
                haus-automatisierung
                Developer Most Active
                schrieb am zuletzt editiert von
                #7

                @paul53 Klar dann wird der Selektor ja jedes mal neu ausgewertet

                🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                📚 Meine inoffizielle ioBroker Dokumentation

                paul53P 1 Antwort Letzte Antwort
                0
                • haus-automatisierungH haus-automatisierung

                  @paul53 Klar dann wird der Selektor ja jedes mal neu ausgewertet

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

                  @haus-automatisierung sagte: Klar dann wird der Selektor ja jedes mal neu ausgewertet

                  Nach meiner Erfahrung holt sich der Selektor die IDs aus dem Puffer der JS-Instanz. Ist der Puffer zu jeder Zeit aktuell?

                  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

                  haus-automatisierungH 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @haus-automatisierung sagte: Klar dann wird der Selektor ja jedes mal neu ausgewertet

                    Nach meiner Erfahrung holt sich der Selektor die IDs aus dem Puffer der JS-Instanz. Ist der Puffer zu jeder Zeit aktuell?

                    haus-automatisierungH Online
                    haus-automatisierungH Online
                    haus-automatisierung
                    Developer Most Active
                    schrieb am zuletzt editiert von
                    #9

                    @paul53 Ja der hat ja Subscriptions auf alle States und Objekte um das aktuell zu halten

                    🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                    🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                    📚 Meine inoffizielle ioBroker Dokumentation

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • haus-automatisierungH haus-automatisierung

                      @paul53 Ja der hat ja Subscriptions auf alle States und Objekte um das aktuell zu halten

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

                      @haus-automatisierung sagte: Ja der hat ja Subscriptions auf alle States und Objekte

                      Gerade getestet: Funktioniert.

                      EDIT: Früher hat es nicht funktioniert. Es musste erst die JS-Instanz neu gestartet werden, um neue Objekte / Zustände einzulesen, die nicht durch den Javascript-Adapter selbst erzeugt wurden.

                      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
                      -1
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      373

                      Online

                      32.5k

                      Benutzer

                      81.8k

                      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