Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JS: wie Datenpunkte Unterstrukturen lesen?

NEWS

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

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

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

JS: wie Datenpunkte Unterstrukturen lesen?

Scheduled Pinned Locked Moved Skripten / Logik
10 Posts 3 Posters 680 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    Maddm
    wrote on last edited by
    #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 Reply Last reply
    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
      wrote on last edited by 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 Reply Last reply
      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
        wrote on last edited by 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 Reply Last reply
        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
          wrote on last edited by
          #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 Reply Last reply
          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 Offline
            haus-automatisierungH Offline
            haus-automatisierung
            Developer Most Active
            wrote on last edited by
            #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 Reply Last reply
            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
              wrote on last edited by 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 Reply Last reply
              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 Offline
                haus-automatisierungH Offline
                haus-automatisierung
                Developer Most Active
                wrote on last edited by
                #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 Reply Last reply
                0
                • haus-automatisierungH haus-automatisierung

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

                  paul53P Offline
                  paul53P Offline
                  paul53
                  wrote on last edited by
                  #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 Reply Last reply
                  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 Offline
                    haus-automatisierungH Offline
                    haus-automatisierung
                    Developer Most Active
                    wrote on last edited by
                    #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 Reply Last reply
                    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
                      wrote on last edited by 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 Reply Last reply
                      -1
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      296

                      Online

                      32.4k

                      Users

                      81.4k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe