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. Überwachen in Objektbaum

NEWS

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

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

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

Überwachen in Objektbaum

Geplant Angeheftet Gesperrt Verschoben JavaScript
8 Beiträge 4 Kommentatoren 484 Aufrufe 3 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.
  • Great SUNG Offline
    Great SUNG Offline
    Great SUN
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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 Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #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 Antworten Letzte Antwort
        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 Online
          mickymM Online
          mickym
          Most Active
          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
            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
              ticaki
              schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                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 Offline
                  T Offline
                  ticaki
                  schrieb am zuletzt editiert von
                  #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 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

                  679

                  Online

                  32.4k

                  Benutzer

                  81.5k

                  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