Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Alias-manager: Objektdaten nicht im Alias

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    Alias-manager: Objektdaten nicht im Alias

    This topic has been deleted. Only users with topic management privileges can see it.
    • W
      warhammer73 last edited by

      Hallo,

      meine Boschthermostate erzeugen u.a. folgende Objektdaten für Netzqualität oder Batterie:

      {
        "type": "state",
        "common": {
          "name": "TRV2.0 18fc26000002fa89.CommunicationQuality.faults",
          "type": "array",
          "role": "list",
          "read": true,
          "write": false
        },
        "native": {
          "device": {
            "@type": "device",
            "rootDeviceId": "64-da-a0-11-96-b6",
            "id": "hdm:ZigBee:18fc26000002fa89",
            "deviceServiceIds": [
              "CommunicationQuality",
              "Thermostat",
              "BatteryLevel",
              "ValveTappet",
              "DisplayedTemperatureConfiguration",
              "DisplayConfiguration",
              "DisplayDirection",
              "TemperatureLevel",
              "Linking",
              "TemperatureOffset"
            ],
            "manufacturer": "BOSCH",
            "roomId": "hz_1",
            "deviceModel": "TRV_GEN2",
            "serial": "18FC26000002FA89",
            "profile": "GENERIC",
            "name": "TRV2.0 18fc26000002fa89",
            "status": "AVAILABLE",
            "parentDeviceId": "roomClimateControl_hz_1",
            "childDeviceIds": []
          },
          "deviceService": {
            "@type": "DeviceServiceData",
            "id": "CommunicationQuality",
            "deviceId": "hdm:ZigBee:18fc26000002fa89",
            "state": {
              "@type": "communicationQualityState",
              "quality": "GOOD"
            },
            "path": "/devices/hdm:ZigBee:18fc26000002fa89/services/CommunicationQuality"
          },
          "state": "faults"
        },
        "from": "system.adapter.bshb.0",
        "user": "system.user.admin",
        "ts": 1666674944453,
        "_id": "bshb.0.hdm:ZigBee:18fc26000002fa89.CommunicationQuality.faults",
        "acl": {
          "object": 1636,
          "state": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator"
        }
      }
      

      Nun versuche ich daraus einen Alias anzulegen, dort sieht das Ergebnis aber so aus:

      {
        "type": "state",
        "common": {
          "name": "link_quality",
          "role": "list",
          "type": "array",
          "read": true,
          "write": false,
          "alias": {
            "id": "bshb.0.hdm:ZigBee:18fc26000002fa89.CommunicationQuality.faults"
          }
        },
        "_id": "alias.0.Arbeitszimmer.Thermostat.faults_2",
        "native": {},
        "from": "system.adapter.admin.0",
        "user": "system.user.admin",
        "ts": 1688827682553,
        "acl": {
          "object": 1636,
          "state": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator"
        }
      }
      

      Irgendwas scheint auch dem Alias-Manager schon nicht zu gefallen:
      f876e4aa-fb27-44d2-8779-0f46d4b37c32-image.png

      Jemand eine Idee wie ich die gesamte Struktur von oben in den Alias bekomme, oder noch besser gleich einen einzelnen Eintrag ("quality": "GOOD")?

      paul53 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @warhammer73 last edited by paul53

        @warhammer73 sagte: Idee wie ich die gesamte Struktur von oben in den Alias bekomme

        Wozu? Wird das Array nicht in den Alias übernommen?

        @warhammer73 sagte in Alias-manager: Objektdaten nicht im Alias:

        gleich einen einzelnen Eintrag ("quality": "GOOD")?

        Dann muss der Alias vom Typ "string" sein und man verwendet eine Lesekonvertierung:

        JSON.parse(val)[0]
        

        für "CommunicationQuality", wenn das Array so gefüllt ist wie unter "deviceServiceIds" beschrieben.

        W 1 Reply Last reply Reply Quote 0
        • W
          warhammer73 @paul53 last edited by warhammer73

          @paul53 said in Alias-manager: Objektdaten nicht im Alias:

          @warhammer73 sagte: Idee wie ich die gesamte Struktur von oben in den Alias bekomme
          Wozu? Wird das Array nicht in den Alias übernommen?

          Nein, siehe oben.

          Beim Anlegen meckert der Alias-Manager vor dem Speichern auch:
          56d1735f-8709-406d-ac79-5e2c9a8e831e-image.png
          Speichert man trotzdem führt das zu der Anzeige oben.

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @warhammer73 last edited by paul53

            @warhammer73 sagte: einen Alias anzulegen, dort sieht das Ergebnis aber so aus:

            Das sieht doch gut aus. Damit muss es funktionieren.
            Anmerkung: Was im Original-DP unter "native" steht, interessiert den Alias nicht.

            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @warhammer73 last edited by paul53

              @warhammer73
              Ich habe mal mit fast identischen Datenpunkten getestet: Bei mir funktioniert der Alias wie erwartet.
              Original-DP:

              {
                "common": {
                  "name": "TRV2.0 18fc26000002fa89.CommunicationQuality.faults",
                  "desc": "Manuell erzeugt",
                  "role": "list",
                  "type": "array",
                  "read": true,
                  "write": false
                },
                "type": "state",
                "native": {
                  "device": {
                    "@type": "device",
                    "rootDeviceId": "64-da-a0-11-96-b6",
                    "id": "hdm:ZigBee:18fc26000002fa89",
                    "deviceServiceIds": [
                      "CommunicationQuality",
                      "Thermostat",
                      "BatteryLevel",
                      "ValveTappet",
                      "DisplayedTemperatureConfiguration",
                      "DisplayConfiguration",
                      "DisplayDirection",
                      "TemperatureLevel",
                      "Linking",
                      "TemperatureOffset"
                    ],
                    "manufacturer": "BOSCH",
                    "roomId": "hz_1",
                    "deviceModel": "TRV_GEN2",
                    "serial": "18FC26000002FA89",
                    "profile": "GENERIC",
                    "name": "TRV2.0 18fc26000002fa89",
                    "status": "AVAILABLE",
                    "parentDeviceId": "roomClimateControl_hz_1",
                    "childDeviceIds": []
                  },
                  "deviceService": {
                    "@type": "DeviceServiceData",
                    "id": "CommunicationQuality",
                    "deviceId": "hdm:ZigBee:18fc26000002fa89",
                    "state": {
                      "@type": "communicationQualityState",
                      "quality": "GOOD"
                    },
                    "path": "/devices/hdm:ZigBee:18fc26000002fa89/services/CommunicationQuality"
                  },
                  "state": "faults"
                },
                "_id": "0_userdata.0.Test.hdm:ZigBee:18fc26000002fa89.CommunicationQuality.faults",
                "acl": {
                  "object": 1636,
                  "state": 1636,
                  "owner": "system.user.admin",
                  "ownerGroup": "system.group.administrator"
                },
                "from": "system.adapter.admin.0",
                "user": "system.user.admin",
                "ts": 1688834888359
              }
              

              DP_Liste_BSH.JPG

              Alias mit Lesekonvertierung:

              {
                "common": {
                  "name": "link quality",
                  "desc": "Manuell erzeugt",
                  "role": "text",
                  "type": "string",
                  "read": true,
                  "write": false,
                  "alias": {
                    "id": "0_userdata.0.Test.hdm:ZigBee:18fc26000002fa89.CommunicationQuality.faults",
                    "read": "JSON.parse(val)[0]"
                  }
                },
                "type": "state",
                "native": {},
                "_id": "alias.0.Test.Liste_bshb",
                "acl": {
                  "object": 1636,
                  "state": 1636,
                  "owner": "system.user.admin",
                  "ownerGroup": "system.group.administrator"
                },
                "from": "system.adapter.admin.0",
                "user": "system.user.admin",
                "ts": 1688835072358
              }
              

              DP_Alias_BSH.JPG

              EDIT: Ich hatte zuerst mit dem Alias als Liste getestet, was auch funktioniert hat.

              1 Reply Last reply Reply Quote 0
              • W
                warhammer73 last edited by

                ... mein Problem liegt ja aber an der Stelle, das "val" bei mir "[]" ist:

                console.log (getState("console.log (getState("bshb.0.hdm:ZigBee:18fc26000002fa89.CommunicationQuality.faults"));"));
                javascript.0 (1833) script.js.Heim.check: {'val':[],'ack':true,'ts':1687715515607,'q':0,'from':'system.adapter.bshb.0','user':'system.user.admin','lc':1670363668833}
                

                ... ich hatte eigentlich die Hoffnung das mir getState den gesamten Baum wie ich ihn mit "Objekt bearbeiten" (siehe oben) anzeigt und ich mich dann über "deviceService" bis "quality" durchhangeln kann um den Wert "GOOD" zu bekommen. Da aber getState das schon nicht tut, habe ich irgendwo ein anderes Problem. 😞

                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @warhammer73 last edited by

                  @warhammer73: "val" bei mir "[]" ist

                  Dann kann ein Alias nichts liefern (außer ein leeres Array).

                  1 Reply Last reply Reply Quote 0
                  • W
                    warhammer73 last edited by

                    @paul53 :

                    Ja, an der falschen Stelle angefangen mit suche...

                    Tja, und auch wenn jetzt die Überschrift nicht mehr zu 100% passt:
                    Den Wert den ich brauche gibt es ja offensichtlich (Objekt bearbeiten zeigt ihn ja an), aber wie bekomme ich per JS ihn ausgelesen?

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @warhammer73 last edited by

                      @warhammer73 sagte: wie bekomme ich per JS ihn ausgelesen?

                      getObject('bshb.0.hdm:ZigBee:18fc26000002fa89.CommunicationQuality.faults').native.deviceService.state.quality
                      

                      Dieses Attribut sollte allerdings statisch sein, sich also nicht im laufenden Betrieb ändern.

                      W 1 Reply Last reply Reply Quote 1
                      • W
                        warhammer73 @paul53 last edited by warhammer73

                        @paul53

                        Danke, manchmal kommt man auf naheliegende Sachen nicht...
                        Damit hat sich dann aber auch die Idee das Geräteunabhängig als Alias auslesen zu können erledigt. 😞

                        paul53 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @warhammer73 last edited by paul53

                          @warhammer73 sagte: als Alias auslesen zu können

                          Der Datenpunkt heißt "faults": Das Array wird sich wahrscheinlich erst füllen, wenn mind. ein Fehler auftritt.

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

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

                          805
                          Online

                          32.1k
                          Users

                          80.7k
                          Topics

                          1.3m
                          Posts

                          2
                          11
                          423
                          Loading More Posts
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes
                          Reply
                          • Reply as topic
                          Log in to reply
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                          The ioBroker Community 2014-2023
                          logo