Skip to content
  • Home
  • 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
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Überwachen in Objektbaum

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    18
    1
    513

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

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

Überwachen in Objektbaum

Scheduled Pinned Locked Moved JavaScript
8 Posts 4 Posters 484 Views 3 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.
  • Great SUNG Offline
    Great SUNG Offline
    Great SUN
    wrote on last edited by
    #1

    Hi Ihr,
    ich müsste eine Aktion immer dann ausführen, wenn sich ein value eines Baumes ändert, der in etwa so aussieht:

    {
      "ctype": "group",
      "id": "LivingRoomLight",
      "params": {
        "switches": [
          {
            "outlet": 0,
            "switch": "off"
          }
        ],
        "white": {
          "br": 100,
          "ct": 42
        }
      }
    }
    

    Das ganze befindet sich aber im Objektbaum unter:

    Adapter.<DeviceID>.RESULT
    

    Geht das? Wenn ja, kann mir einer von Euch bitte sagen, wie das möglich wäre?

    DANKE !!!

    mickymM 1 Reply Last reply
    0
    • Great SUNG Great SUN

      Hi Ihr,
      ich müsste eine Aktion immer dann ausführen, wenn sich ein value eines Baumes ändert, der in etwa so aussieht:

      {
        "ctype": "group",
        "id": "LivingRoomLight",
        "params": {
          "switches": [
            {
              "outlet": 0,
              "switch": "off"
            }
          ],
          "white": {
            "br": 100,
            "ct": 42
          }
        }
      }
      

      Das ganze befindet sich aber im Objektbaum unter:

      Adapter.<DeviceID>.RESULT
      

      Geht das? Wenn ja, kann mir einer von Euch bitte sagen, wie das möglich wäre?

      DANKE !!!

      mickymM Offline
      mickymM Offline
      mickym
      Most Active
      wrote on last edited by mickym
      #2

      @great-sun sagte in Überwachen in Objektbaum:

      Adapter.<DeviceID>.RESULT

      Wenn es darunter Datenpunkte gibt, machst Du ein Subscription auf alle Datenpunkte darunter:

      Adapter.<DeviceID>.RESULT.*
      

      Das was Du aber gepostet hast ist ein Objekt in dem Result, hier bekommst Du nur mit wenn sich das ganze Objekt geändert hat.

      Um aber einzelne Werte zu überwachen, dann musst Du das Objekt in einzelne Datenpunkte auftrennen.
      Wenn Du NodeRed nutzt habe ich dafür einen fertigen Subflow - ansonsten musst das halt selbst machen. Könntest - wenn Du es nicht selbst programmieren willst - Node Red nur für das Aufsplitten des Objektes verwenden und die Datenpunkte in Deiner Dir bevorzugten Logikmaschine weiterverarbeiten (JS oder Blockly).

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      Great SUNG 1 Reply Last reply
      0
      • mickymM mickym

        @great-sun sagte in Überwachen in Objektbaum:

        Adapter.<DeviceID>.RESULT

        Wenn es darunter Datenpunkte gibt, machst Du ein Subscription auf alle Datenpunkte darunter:

        Adapter.<DeviceID>.RESULT.*
        

        Das was Du aber gepostet hast ist ein Objekt in dem Result, hier bekommst Du nur mit wenn sich das ganze Objekt geändert hat.

        Um aber einzelne Werte zu überwachen, dann musst Du das Objekt in einzelne Datenpunkte auftrennen.
        Wenn Du NodeRed nutzt habe ich dafür einen fertigen Subflow - ansonsten musst das halt selbst machen. Könntest - wenn Du es nicht selbst programmieren willst - Node Red nur für das Aufsplitten des Objektes verwenden und die Datenpunkte in Deiner Dir bevorzugten Logikmaschine weiterverarbeiten (JS oder Blockly).

        Great SUNG Offline
        Great SUNG Offline
        Great SUN
        wrote on last edited by
        #3

        Hi nochmal an alle...

        Ich hab mich falsch ausgedrückt, wie es scheint...
        Den Objektbaum habe ich mangels alternativen als JSON dargestellt. Wenn ich den Objektbaum als JSON abziehen könnte via JavaScript und das resultierende JSON überwachen könnte, wäre das genial.
        Durch die Überwachung von allen Einzelpunkten bekomme ich bei zwei Änderungen im Objektbaum nämlich zwei Ausführungen, trotzdem ich eigentlich beide auf einmal abarbeiten wollen würde.

        Andere Frage, ähnliches Thema:
        In einem weiteren Objektbaum wird ein Objekt nur temporär angelegt. Ich würde aber gerne auf dieses Objekt reagieren, wenn es angelegt wird, bzw. wenn der Wert des angelegten Objektes geändert wird, oder es wieder entfernt wird. Gibt es dafür eine Option?
        Ich könnte mir natürlich vorstellen, dass ich das da genauso überwachen könnte, wenn ich das Problem mit dem Objektbaum als JSON überwachen gelöst bekäme...

        Bin für jede Idee dankbar!

        mickymM T T 3 Replies Last reply
        0
        • Great SUNG Great SUN

          Hi nochmal an alle...

          Ich hab mich falsch ausgedrückt, wie es scheint...
          Den Objektbaum habe ich mangels alternativen als JSON dargestellt. Wenn ich den Objektbaum als JSON abziehen könnte via JavaScript und das resultierende JSON überwachen könnte, wäre das genial.
          Durch die Überwachung von allen Einzelpunkten bekomme ich bei zwei Änderungen im Objektbaum nämlich zwei Ausführungen, trotzdem ich eigentlich beide auf einmal abarbeiten wollen würde.

          Andere Frage, ähnliches Thema:
          In einem weiteren Objektbaum wird ein Objekt nur temporär angelegt. Ich würde aber gerne auf dieses Objekt reagieren, wenn es angelegt wird, bzw. wenn der Wert des angelegten Objektes geändert wird, oder es wieder entfernt wird. Gibt es dafür eine Option?
          Ich könnte mir natürlich vorstellen, dass ich das da genauso überwachen könnte, wenn ich das Problem mit dem Objektbaum als JSON überwachen gelöst bekäme...

          Bin für jede Idee dankbar!

          mickymM Offline
          mickymM Offline
          mickym
          Most Active
          wrote on last edited by mickym
          #4

          @great-sun Wenn Du deinen Objektbaum einliest und ein JS Objekt erzeugst, kannst Du das doch über stringify in einem DP abspeichern. Wenn sich dieser String dann ändert - liest Du den DP wieder ein - wandelst es intern mit parse wieder in ein Objekt und verarbeitest es. - Aber wie gesagt - ich bin da nicht so drin, weil ich wie gesagt all solche Aufgaben mit NR löse, weil es einfach easy ist - aber gibt ja noch andere hier, die Dir gerne unter die Arme greifen und ggf. ein Skript für Dich erstellen.

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          1 Reply Last reply
          0
          • Great SUNG Great SUN

            Hi nochmal an alle...

            Ich hab mich falsch ausgedrückt, wie es scheint...
            Den Objektbaum habe ich mangels alternativen als JSON dargestellt. Wenn ich den Objektbaum als JSON abziehen könnte via JavaScript und das resultierende JSON überwachen könnte, wäre das genial.
            Durch die Überwachung von allen Einzelpunkten bekomme ich bei zwei Änderungen im Objektbaum nämlich zwei Ausführungen, trotzdem ich eigentlich beide auf einmal abarbeiten wollen würde.

            Andere Frage, ähnliches Thema:
            In einem weiteren Objektbaum wird ein Objekt nur temporär angelegt. Ich würde aber gerne auf dieses Objekt reagieren, wenn es angelegt wird, bzw. wenn der Wert des angelegten Objektes geändert wird, oder es wieder entfernt wird. Gibt es dafür eine Option?
            Ich könnte mir natürlich vorstellen, dass ich das da genauso überwachen könnte, wenn ich das Problem mit dem Objektbaum als JSON überwachen gelöst bekäme...

            Bin für jede Idee dankbar!

            T Offline
            T Offline
            Tyantreides
            wrote on last edited by Tyantreides
            #5

            @great-sun
            Du kannst fast jeden Datenpunkt im Objektbau via Subscriber überwachen lassen. Im Javascript Adapter ein neues Script anlegen und:

            on({id: 'adapter.instanz.Pfad.zu.deinem.datenpunkt', change: "ne"}, async function (obj) {
                try { 
                    //wenn json drin ist:
                    let wert = JSON.parse(obj.state.val).wert;
                    //sonst:
                   let wert = obj.state.val;
                  //und hier was auch immer du dann als reaktion auf die Änderung tun möchtest
                 //setState('datenpunktpfad', wert)
                } catch (e) {
                   return;
                }
            });
            

            Beste Grüße
            Chris

            1 Reply Last reply
            0
            • Great SUNG Great SUN

              Hi nochmal an alle...

              Ich hab mich falsch ausgedrückt, wie es scheint...
              Den Objektbaum habe ich mangels alternativen als JSON dargestellt. Wenn ich den Objektbaum als JSON abziehen könnte via JavaScript und das resultierende JSON überwachen könnte, wäre das genial.
              Durch die Überwachung von allen Einzelpunkten bekomme ich bei zwei Änderungen im Objektbaum nämlich zwei Ausführungen, trotzdem ich eigentlich beide auf einmal abarbeiten wollen würde.

              Andere Frage, ähnliches Thema:
              In einem weiteren Objektbaum wird ein Objekt nur temporär angelegt. Ich würde aber gerne auf dieses Objekt reagieren, wenn es angelegt wird, bzw. wenn der Wert des angelegten Objektes geändert wird, oder es wieder entfernt wird. Gibt es dafür eine Option?
              Ich könnte mir natürlich vorstellen, dass ich das da genauso überwachen könnte, wenn ich das Problem mit dem Objektbaum als JSON überwachen gelöst bekäme...

              Bin für jede Idee dankbar!

              T Do not disturb
              T Do not disturb
              ticaki
              wrote on last edited by ticaki
              #6

              @great-sun sagte in Überwachen in Objektbaum:

              Andere Frage, ähnliches Thema:
              In einem weiteren Objektbaum wird ein Objekt nur temporär angelegt. Ich würde aber gerne auf dieses Objekt reagieren, wenn es angelegt wird, bzw. wenn der Wert des angelegten Objektes geändert wird, oder es wieder entfernt wird. Gibt es dafür eine Option?
              Ich könnte mir natürlich vorstellen, dass ich das da genauso überwachen könnte, wenn ich das Problem mit dem Objektbaum als JSON überwachen gelöst bekäme...

              Das reagieren auf erstellen und löschen ging nur über JSON.stringify() mit schedule. Ist zwar möglich das sie da etwas in letzter Zeit eingebaut haben, halte ich aber für unwahrscheinlich. Auf Änderungen von (noch) nicht existierenden Datenpunkten kannst du jedoch mit RegExp reagieren

              on(new RegExp(getRegEx('adapter.instanz.bla', '^')+'.*'), function(obj) {}
              

              Hab das aus einem Skript von mir, aktuell keine Ahnung wie RegEx nochmal funktioniert, muß ich immer nachlesen :)

              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

              Spenden

              T 1 Reply Last reply
              0
              • T ticaki

                @great-sun sagte in Überwachen in Objektbaum:

                Andere Frage, ähnliches Thema:
                In einem weiteren Objektbaum wird ein Objekt nur temporär angelegt. Ich würde aber gerne auf dieses Objekt reagieren, wenn es angelegt wird, bzw. wenn der Wert des angelegten Objektes geändert wird, oder es wieder entfernt wird. Gibt es dafür eine Option?
                Ich könnte mir natürlich vorstellen, dass ich das da genauso überwachen könnte, wenn ich das Problem mit dem Objektbaum als JSON überwachen gelöst bekäme...

                Das reagieren auf erstellen und löschen ging nur über JSON.stringify() mit schedule. Ist zwar möglich das sie da etwas in letzter Zeit eingebaut haben, halte ich aber für unwahrscheinlich. Auf Änderungen von (noch) nicht existierenden Datenpunkten kannst du jedoch mit RegExp reagieren

                on(new RegExp(getRegEx('adapter.instanz.bla', '^')+'.*'), function(obj) {}
                

                Hab das aus einem Skript von mir, aktuell keine Ahnung wie RegEx nochmal funktioniert, muß ich immer nachlesen :)

                T Offline
                T Offline
                Tyantreides
                wrote on last edited by
                #7

                @ticaki
                die Funktion erzeugt eine neue Regular Expression, welche auf alle mit adapter.instanz.bla beginnenden Elemente anspringt.
                Sprich Du erzeugst für diese Schnittmenge eine subscription und nicht nur für einen Datenpunkt.

                T 1 Reply Last reply
                0
                • T Tyantreides

                  @ticaki
                  die Funktion erzeugt eine neue Regular Expression, welche auf alle mit adapter.instanz.bla beginnenden Elemente anspringt.
                  Sprich Du erzeugst für diese Schnittmenge eine subscription und nicht nur für einen Datenpunkt.

                  T Do not disturb
                  T Do not disturb
                  ticaki
                  wrote on last edited by
                  #8

                  @tyantreides
                  ich hab mich wohl falsch ausgedrückt. Ich weiß was es macht, aber in die Sprache um einen Regex String richtig zu schreiben muß ich mich erst einlesen. Mit Regex reagiert das Skript auch auf Datenpunkte die später hinzugefügt wurden.

                  Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                  Spenden

                  1 Reply Last reply
                  0
                  Reply
                  • Reply as topic
                  Log in to reply
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes


                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  839

                  Online

                  32.5k

                  Users

                  81.6k

                  Topics

                  1.3m

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

                  • Don't have an account? Register

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