Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. ioBroker Allgemein
  4. Verständnisproblem: Object versus ObjectID

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    301

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    9
    1
    279

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    917

Verständnisproblem: Object versus ObjectID

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
8 Beiträge 3 Kommentatoren 361 Aufrufe 1 Beobachtet
  • Ä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.
  • L Offline
    L Offline
    legro
    schrieb am zuletzt editiert von legro
    #1

    Beim Versuch, in einem Skript auf Änderungen zu reagieren, probierte ich folgende Optionen aus.

    afdbf75b-c1b2-4dbd-b07d-48b07e23eb8b-image.png
    Die erste Version funktioniert wie gewünscht, die zweite liefert einen Fehler unsubscribe: invalid type of id - object

    Schaut man sich den JavaScript-Code an, wird sogar mir als Anfänger schnell klar, woran das liegt ..

    a92a6a68-e49b-4f5c-9ade-923521659e52-image.png

    Im ersten Beispiel wird der Datenpunkt selbst im Objektbaum referenziert, im zweiten Beispiel wird dessen Wert (Inhalt) referenziert.

    Was ich nicht verstehe ..

    Eigentlich will ich doch einen Trigger, der die Änderung des Wertes in dem Datenpunkt registriert. Für mich wäre es logisch, wenn das erste Beispiel nicht (der Datenpunkt ändert sich doch gar nicht) und nur das zweite (bei dem sich der Wert/Inhalt ändert) das richtige Verhalten liefern würde.

    Irgendwie stehe ich nach wie vor auf Kriegsfuß mit der Implementierung von JavaScript bzw. Blockly.

    PS:

    Was ich glaube verstanden zu haben ..

    Im ersten Beispiel wird der String [].concat(..) als Parameter dem Trigger on übergeben. Im zweiten Beispiel wird der Inhalt getObject(..) des Datenpunktes übergeben. Referenziert der String [].concat(..) einen Datenpunkt, so liefert getObject(..) natürlich nur einen Wert (hier true/false), was natürlich zu einem Fehler führt.

    Raspberry Pi 5 mit 8GB + 120GB SSD + Coordinator COD-m + ioBroker ..

    paul53P 1 Antwort Letzte Antwort
    0
    • L legro

      Beim Versuch, in einem Skript auf Änderungen zu reagieren, probierte ich folgende Optionen aus.

      afdbf75b-c1b2-4dbd-b07d-48b07e23eb8b-image.png
      Die erste Version funktioniert wie gewünscht, die zweite liefert einen Fehler unsubscribe: invalid type of id - object

      Schaut man sich den JavaScript-Code an, wird sogar mir als Anfänger schnell klar, woran das liegt ..

      a92a6a68-e49b-4f5c-9ade-923521659e52-image.png

      Im ersten Beispiel wird der Datenpunkt selbst im Objektbaum referenziert, im zweiten Beispiel wird dessen Wert (Inhalt) referenziert.

      Was ich nicht verstehe ..

      Eigentlich will ich doch einen Trigger, der die Änderung des Wertes in dem Datenpunkt registriert. Für mich wäre es logisch, wenn das erste Beispiel nicht (der Datenpunkt ändert sich doch gar nicht) und nur das zweite (bei dem sich der Wert/Inhalt ändert) das richtige Verhalten liefern würde.

      Irgendwie stehe ich nach wie vor auf Kriegsfuß mit der Implementierung von JavaScript bzw. Blockly.

      PS:

      Was ich glaube verstanden zu haben ..

      Im ersten Beispiel wird der String [].concat(..) als Parameter dem Trigger on übergeben. Im zweiten Beispiel wird der Inhalt getObject(..) des Datenpunktes übergeben. Referenziert der String [].concat(..) einen Datenpunkt, so liefert getObject(..) natürlich nur einen Wert (hier true/false), was natürlich zu einem Fehler führt.

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

      @legro sagte: das erste Beispiel nicht (der Datenpunkt ändert sich doch gar nicht)

      Die ID ist eine Konstante, aber auch das statische Objekt des Datenpunktes:

      nur das zweite (bei dem sich der Wert/Inhalt ändert) das richtige Verhalten liefern würde.

      Getriggert wird auf eine Änderung des Zustandes des Datenpunktes, der per ID adressiert wird. Den Zustand erhält man nicht mit getObject(id), sondern mit getState(id).

      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

      L 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @legro sagte: das erste Beispiel nicht (der Datenpunkt ändert sich doch gar nicht)

        Die ID ist eine Konstante, aber auch das statische Objekt des Datenpunktes:

        nur das zweite (bei dem sich der Wert/Inhalt ändert) das richtige Verhalten liefern würde.

        Getriggert wird auf eine Änderung des Zustandes des Datenpunktes, der per ID adressiert wird. Den Zustand erhält man nicht mit getObject(id), sondern mit getState(id).

        L Offline
        L Offline
        legro
        schrieb am zuletzt editiert von legro
        #3

        @paul53 sagte in Verständnisproblem: Object versus ObjectID:

        @legro sagte: das erste Beispiel nicht (der Datenpunkt ändert sich doch gar nicht)
        .. Den Zustand erhält man nicht mit getObject(id), sondern mit getState(id).

        Danke für deine Antwort. In der Tat habe ich fälschlicherweise getObject mit getState verwechselt.

        Leider verstehe ich's dennoch nicht ganz. Was liefert denn getObject, wenn nicht die ObjectID? Oder anders gefragt, was unterscheidet die beiden Blöcke Object ID (erste Option) und Object (zweite Option)? Naiv, wie ich bin, ging ich davon aus, dass die beiden Blöcke identisch sein sollten (was sie offensichtlich nicht sind).

        Welchen Block gibt es unter System in Blockly, den man in diesem Trigger einsetzen kann?😕

        Raspberry Pi 5 mit 8GB + 120GB SSD + Coordinator COD-m + ioBroker ..

        HomoranH paul53P 2 Antworten Letzte Antwort
        0
        • L legro

          @paul53 sagte in Verständnisproblem: Object versus ObjectID:

          @legro sagte: das erste Beispiel nicht (der Datenpunkt ändert sich doch gar nicht)
          .. Den Zustand erhält man nicht mit getObject(id), sondern mit getState(id).

          Danke für deine Antwort. In der Tat habe ich fälschlicherweise getObject mit getState verwechselt.

          Leider verstehe ich's dennoch nicht ganz. Was liefert denn getObject, wenn nicht die ObjectID? Oder anders gefragt, was unterscheidet die beiden Blöcke Object ID (erste Option) und Object (zweite Option)? Naiv, wie ich bin, ging ich davon aus, dass die beiden Blöcke identisch sein sollten (was sie offensichtlich nicht sind).

          Welchen Block gibt es unter System in Blockly, den man in diesem Trigger einsetzen kann?😕

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

          @legro Du musst dir Objekt wie eine Kiste vorstellen. Darin befinden sich die states!

          Trigger finden tatsächlich auf ObjectID statt, auch wenn sich der Wert von Objekt ändert.

          kein Support per PN! - Fragen im Forum stellen -
          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
          Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

          1 Antwort Letzte Antwort
          0
          • L legro

            @paul53 sagte in Verständnisproblem: Object versus ObjectID:

            @legro sagte: das erste Beispiel nicht (der Datenpunkt ändert sich doch gar nicht)
            .. Den Zustand erhält man nicht mit getObject(id), sondern mit getState(id).

            Danke für deine Antwort. In der Tat habe ich fälschlicherweise getObject mit getState verwechselt.

            Leider verstehe ich's dennoch nicht ganz. Was liefert denn getObject, wenn nicht die ObjectID? Oder anders gefragt, was unterscheidet die beiden Blöcke Object ID (erste Option) und Object (zweite Option)? Naiv, wie ich bin, ging ich davon aus, dass die beiden Blöcke identisch sein sollten (was sie offensichtlich nicht sind).

            Welchen Block gibt es unter System in Blockly, den man in diesem Trigger einsetzen kann?😕

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

            @legro sagte: Was liefert denn getObject, wenn nicht die ObjectID?

            Zum Beispiel dieses statische Objekt:

            {
              "common": {
                "name": "Taupunkt außen",
                "desc": "Manuell erzeugt",
                "role": "value.dewpoint",
                "type": "number",
                "read": true,
                "write": false,
                "unit": "°C",
                "def": 0,
                "min": -20,
                "max": 35
              },
              "native": {},
              "type": "state",
              "_id": "0_userdata.0.Aussen.Klima.Taupunkt",
              "acl": {
                "object": 1636,
                "state": 1636,
                "owner": "system.user.admin",
                "ownerGroup": "system.group.administrator"
              },
              "from": "system.adapter.admin.0",
              "user": "system.user.admin",
              "ts": 1659369399962
            }
            

            @legro sagte in Verständnisproblem: Object versus ObjectID:

            Welchen Block gibt es unter System in Blockly, den man in diesem Trigger einsetzen kann?

            Blockly_temp.JPG

            Der untere ist allerdings ein Text-Block, in dem die ID eingetragen wurde.

            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

            L 1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @legro sagte: Was liefert denn getObject, wenn nicht die ObjectID?

              Zum Beispiel dieses statische Objekt:

              {
                "common": {
                  "name": "Taupunkt außen",
                  "desc": "Manuell erzeugt",
                  "role": "value.dewpoint",
                  "type": "number",
                  "read": true,
                  "write": false,
                  "unit": "°C",
                  "def": 0,
                  "min": -20,
                  "max": 35
                },
                "native": {},
                "type": "state",
                "_id": "0_userdata.0.Aussen.Klima.Taupunkt",
                "acl": {
                  "object": 1636,
                  "state": 1636,
                  "owner": "system.user.admin",
                  "ownerGroup": "system.group.administrator"
                },
                "from": "system.adapter.admin.0",
                "user": "system.user.admin",
                "ts": 1659369399962
              }
              

              @legro sagte in Verständnisproblem: Object versus ObjectID:

              Welchen Block gibt es unter System in Blockly, den man in diesem Trigger einsetzen kann?

              Blockly_temp.JPG

              Der untere ist allerdings ein Text-Block, in dem die ID eingetragen wurde.

              L Offline
              L Offline
              legro
              schrieb am zuletzt editiert von legro
              #6

              @paul53

              Vielen Dank. Dank deiner detaillierten Erläuterungen habe ich jetzt endlich das Ganze verstanden.

              Ich versuch's mal zusammenzufassen.

              Die Eingänge in den beiden Blöcken ..

              debe8bcf-b5d9-41d5-802b-bf174c32fd2f-image.png

              .. erwarten die Adresse des Datenpunktes im Objektbaum als String. Darauf muss man als (immer noch) Anfänger erst einmal kommen. Der Block Object liefert das Objekt mit allen seinen Feldern ..

              javascript.0 (2171) script.js.Rollladen._ObjectsTest: { common: { name: 'Grp01_Ins', desc: 'Manuell erzeugt', role: 'state', type: 'boolean', read: true, write: true, def: false }, type: 'state', native: {}, from: 'system.adapter.admin.0', user: 'system.user.admin', ts: 1714825235822, _id: '0_userdata.0.Rollladen.Grp01_Ins', acl: { object: 1636, state: 1636, owner: 'system.user.admin', ownerGroup: 'system.group.administrator' } }
              

              Raspberry Pi 5 mit 8GB + 120GB SSD + Coordinator COD-m + ioBroker ..

              paul53P 1 Antwort Letzte Antwort
              0
              • L legro

                @paul53

                Vielen Dank. Dank deiner detaillierten Erläuterungen habe ich jetzt endlich das Ganze verstanden.

                Ich versuch's mal zusammenzufassen.

                Die Eingänge in den beiden Blöcken ..

                debe8bcf-b5d9-41d5-802b-bf174c32fd2f-image.png

                .. erwarten die Adresse des Datenpunktes im Objektbaum als String. Darauf muss man als (immer noch) Anfänger erst einmal kommen. Der Block Object liefert das Objekt mit allen seinen Feldern ..

                javascript.0 (2171) script.js.Rollladen._ObjectsTest: { common: { name: 'Grp01_Ins', desc: 'Manuell erzeugt', role: 'state', type: 'boolean', read: true, write: true, def: false }, type: 'state', native: {}, from: 'system.adapter.admin.0', user: 'system.user.admin', ts: 1714825235822, _id: '0_userdata.0.Rollladen.Grp01_Ins', acl: { object: 1636, state: 1636, owner: 'system.user.admin', ownerGroup: 'system.group.administrator' } }
                
                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von paul53
                #7

                @legro sagte: erwarten die Adresse des Datenpunktes im Objektbaum als String.

                Ja, wobei sich durch einen Klick auf "Object ID" bzw. "default" ein Selektionsfenster zur Auswahl des Datenpunktes öffnet. Blockly zeigt nach erfolgter Auswahl nicht die ID, sondern den Namen an.

                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

                L 1 Antwort Letzte Antwort
                1
                • paul53P paul53

                  @legro sagte: erwarten die Adresse des Datenpunktes im Objektbaum als String.

                  Ja, wobei sich durch einen Klick auf "Object ID" bzw. "default" ein Selektionsfenster zur Auswahl des Datenpunktes öffnet. Blockly zeigt nach erfolgter Auswahl nicht die ID, sondern den Namen an.

                  L Offline
                  L Offline
                  legro
                  schrieb am zuletzt editiert von
                  #8

                  @paul53 sagte in Verständnisproblem: Object versus ObjectID:

                  Ja, wobei sich durch einen Klick auf "Object ID" bzw. "default" ein Selektionsfenster zur Auswahl des Datenpunktes öffnet. Blockly zeigt nach erfolgter Auswahl nicht die ID, sondern den Namen an.

                  Statt Kritik an Blockly gibt's nun freudige Begeisterung. Diese beiden Trigger-Bausteine ermöglichen auf unterschiedlichste Kriterien zu testen, wie die nachfolgende Abbildung zeigt.

                  66f28b09-c7f2-4392-a690-7afcd3a2d40e-image.png

                  Tolle Sache, wenn man's mal verstanden hat. Aber Dank deiner Unterstützung konnte ich's im Detail (endlich) verstehen.

                  Raspberry Pi 5 mit 8GB + 120GB SSD + Coordinator COD-m + ioBroker ..

                  1 Antwort Letzte Antwort
                  0

                  Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                  Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                  Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                  Registrieren Anmelden
                  Antworten
                  • In einem neuen Thema antworten
                  Anmelden zum Antworten
                  • Älteste zuerst
                  • Neuste zuerst
                  • Meiste Stimmen


                  Support us

                  ioBroker
                  Community Adapters
                  Donate
                  FAQ Cloud / IOT
                  HowTo: Node.js-Update
                  HowTo: Backup/Restore
                  Downloads
                  BLOG

                  504

                  Online

                  32.8k

                  Benutzer

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