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. Blockly
  5. State-Wert statt -Schlüssel auslesen (Blockly/JS/Lovelace)

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    502

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    5.2k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.4k

State-Wert statt -Schlüssel auslesen (Blockly/JS/Lovelace)

Scheduled Pinned Locked Moved Blockly
10 Posts 5 Posters 1.5k Views 4 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.
  • AxelRHDA Offline
    AxelRHDA Offline
    AxelRHD
    wrote on last edited by
    #1

    Hallo zusammen! Ich portiere gerade recht erfolgreich meine Heimautomation von Home Assistant nach ioBroker.

    Jetzt hänge ich allerdings an einer Stelle: ich versuche von einem Homematic Control Mode, der als Zahl mit dahinterliegender Werteliste (state) umgesetzt ist, anstatt dem Schlüssel der States den entsprechenden Wert auslesen zu lassen (common.states) und komme dabei einfach nicht weiter.

    Beispielhaft einer der betroffenen Datenpunkte:

    {
      "from": "system.adapter.hm-rega.0",
      "user": "system.user.admin",
      "ts": 1601322081245,
      "common": {
        "name": "Heizungsthermostat (Bad).CONTROL_MODE",
        "type": "number",
        "role": "indicator",
        "def": 0,
        "min": 0,
        "max": 3,
        "read": true,
        "write": false,
        "states": {
          "0": "AUTO-MODE",
          "1": "MANU-MODE",
          "2": "PARTY-MODE",
          "3": "BOOST-MODE"
        },
        "custom": {
          "lovelace.0": {
            "enabled": true,
            "entity": "sensor",
            "name": "LEQ0785938_4_CONTROL_MODE"
          }
        }
      },
      "native": {
        "CONTROL": "HEATING_CONTROL.CONTROL_MODE",
        "ID": "CONTROL_MODE",
        "TYPE": "ENUM",
        "UNIT": "",
        "DEFAULT": 0,
        "FLAGS": 1,
        "MAX": 3,
        "MIN": 0,
        "OPERATIONS": 5,
        "TAB_ORDER": 0,
        "VALUE_LIST": [
          "AUTO-MODE",
          "MANU-MODE",
          "PARTY-MODE",
          "BOOST-MODE"
        ]
      },
      "acl": {
        "object": 1638,
        "owner": "system.user.admin",
        "ownerGroup": "system.group.administrator",
        "state": 1638
      },
      "_id": "hm-rpc.0.LEQ0785938.4.CONTROL_MODE",
      "type": "state"
    }
    

    Ich möchte also in Blockly statt 0 den Wert "AUTO-MODE" auslesen. In Lovelace wird auch 0 statt dem Text angezeigt. Dieser Wert ist reine Information (von Homematic so vorgeben) und nicht schreibbar.

    Hat das schon irgendeiner gelöst, bzw. allgemein einen Hinweis, wie man in ioBroker solche JS-Objekte ausliest?

    Besten Dank schon mal. :)

    paul53P 1 Reply Last reply
    0
    • AxelRHDA AxelRHD

      Hallo zusammen! Ich portiere gerade recht erfolgreich meine Heimautomation von Home Assistant nach ioBroker.

      Jetzt hänge ich allerdings an einer Stelle: ich versuche von einem Homematic Control Mode, der als Zahl mit dahinterliegender Werteliste (state) umgesetzt ist, anstatt dem Schlüssel der States den entsprechenden Wert auslesen zu lassen (common.states) und komme dabei einfach nicht weiter.

      Beispielhaft einer der betroffenen Datenpunkte:

      {
        "from": "system.adapter.hm-rega.0",
        "user": "system.user.admin",
        "ts": 1601322081245,
        "common": {
          "name": "Heizungsthermostat (Bad).CONTROL_MODE",
          "type": "number",
          "role": "indicator",
          "def": 0,
          "min": 0,
          "max": 3,
          "read": true,
          "write": false,
          "states": {
            "0": "AUTO-MODE",
            "1": "MANU-MODE",
            "2": "PARTY-MODE",
            "3": "BOOST-MODE"
          },
          "custom": {
            "lovelace.0": {
              "enabled": true,
              "entity": "sensor",
              "name": "LEQ0785938_4_CONTROL_MODE"
            }
          }
        },
        "native": {
          "CONTROL": "HEATING_CONTROL.CONTROL_MODE",
          "ID": "CONTROL_MODE",
          "TYPE": "ENUM",
          "UNIT": "",
          "DEFAULT": 0,
          "FLAGS": 1,
          "MAX": 3,
          "MIN": 0,
          "OPERATIONS": 5,
          "TAB_ORDER": 0,
          "VALUE_LIST": [
            "AUTO-MODE",
            "MANU-MODE",
            "PARTY-MODE",
            "BOOST-MODE"
          ]
        },
        "acl": {
          "object": 1638,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator",
          "state": 1638
        },
        "_id": "hm-rpc.0.LEQ0785938.4.CONTROL_MODE",
        "type": "state"
      }
      

      Ich möchte also in Blockly statt 0 den Wert "AUTO-MODE" auslesen. In Lovelace wird auch 0 statt dem Text angezeigt. Dieser Wert ist reine Information (von Homematic so vorgeben) und nicht schreibbar.

      Hat das schon irgendeiner gelöst, bzw. allgemein einen Hinweis, wie man in ioBroker solche JS-Objekte ausliest?

      Besten Dank schon mal. :)

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by paul53
      #2

      @AxelRHD83 sagte:

      wie man in ioBroker solche JS-Objekte ausliest?

      Siehe hier oder hier.

      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

      AxelRHDA 1 Reply Last reply
      0
      • paul53P paul53

        @AxelRHD83 sagte:

        wie man in ioBroker solche JS-Objekte ausliest?

        Siehe hier oder hier.

        AxelRHDA Offline
        AxelRHDA Offline
        AxelRHD
        wrote on last edited by
        #3

        @paul53, danke für die schnelle Antwort. Deinen beiden Links entneme ich, dass es in Blockly wohl nicht möglich ist (es sei denn, ich packe es dort in eine Funktion). Dort wurde aber nichts zum Thema Lovelace gesagt. Weißt du darauf zufällig auch eine Antwort?

        AxelRHDA GarfonsoG 2 Replies Last reply
        0
        • AxelRHDA AxelRHD

          @paul53, danke für die schnelle Antwort. Deinen beiden Links entneme ich, dass es in Blockly wohl nicht möglich ist (es sei denn, ich packe es dort in eine Funktion). Dort wurde aber nichts zum Thema Lovelace gesagt. Weißt du darauf zufällig auch eine Antwort?

          AxelRHDA Offline
          AxelRHDA Offline
          AxelRHD
          wrote on last edited by
          #4

          Habe es gemäß den Informationen von @paul53 in einer Blockly-Funktion getestet. Funktioniert einwandfrei:

          var input_obj;
          
          // Statustext aus States Objekt auslesen
          function get_state_text(input_obj) {
              return getObject(input_obj).common.states[getState(input_obj).val];
          }
          
          N 1 Reply Last reply
          0
          • AxelRHDA AxelRHD

            @paul53, danke für die schnelle Antwort. Deinen beiden Links entneme ich, dass es in Blockly wohl nicht möglich ist (es sei denn, ich packe es dort in eine Funktion). Dort wurde aber nichts zum Thema Lovelace gesagt. Weißt du darauf zufällig auch eine Antwort?

            GarfonsoG Offline
            GarfonsoG Offline
            Garfonso
            Developer
            wrote on last edited by
            #5

            @AxelRHD said in State-Wert statt -Schlüssel auslesen (Blockly/JS/Lovelace):

            @paul53, danke für die schnelle Antwort. Deinen beiden Links entneme ich, dass es in Blockly wohl nicht möglich ist (es sei denn, ich packe es dort in eine Funktion). Dort wurde aber nichts zum Thema Lovelace gesagt. Weißt du darauf zufällig auch eine Antwort?

            Lovelace wird bei einem sensor nicht auf das States-Attribut zugreifen, Hm. Das ist auch nicht wirklich tivial zu ergänzen gerade... kann dir der neue Klimaanlagen-Typ vom Geräte-Adapter helfen? (ist noch nicht in lovelace unterstützt, steht aber auf der Liste).

            Ultimativer Lovelace Leitfaden: https://forum.iobroker.net/topic/35937/der-ultimative-iobroker-lovelace-leitfaden-dokumentation

            Lovelace UI Beispiele: https://forum.iobroker.net/topic/35950/zeigt-her-eure-lovelace-visualisierung

            AxelRHDA 1 Reply Last reply
            0
            • GarfonsoG Garfonso

              @AxelRHD said in State-Wert statt -Schlüssel auslesen (Blockly/JS/Lovelace):

              @paul53, danke für die schnelle Antwort. Deinen beiden Links entneme ich, dass es in Blockly wohl nicht möglich ist (es sei denn, ich packe es dort in eine Funktion). Dort wurde aber nichts zum Thema Lovelace gesagt. Weißt du darauf zufällig auch eine Antwort?

              Lovelace wird bei einem sensor nicht auf das States-Attribut zugreifen, Hm. Das ist auch nicht wirklich tivial zu ergänzen gerade... kann dir der neue Klimaanlagen-Typ vom Geräte-Adapter helfen? (ist noch nicht in lovelace unterstützt, steht aber auf der Liste).

              AxelRHDA Offline
              AxelRHDA Offline
              AxelRHD
              wrote on last edited by
              #6

              @Garfonso, danke für die Antwort. Dann warte ich mal auf die Umsetzung und schaue es mir dann an. Ging in Home Assistant früher ja auch nicht so einfach. Da habe ich mir dann Dummy-Zustände gebaut, die auf den Attributen beruhten.

              1 Reply Last reply
              0
              • AxelRHDA AxelRHD

                Habe es gemäß den Informationen von @paul53 in einer Blockly-Funktion getestet. Funktioniert einwandfrei:

                var input_obj;
                
                // Statustext aus States Objekt auslesen
                function get_state_text(input_obj) {
                    return getObject(input_obj).common.states[getState(input_obj).val];
                }
                
                N Offline
                N Offline
                nelzon
                wrote on last edited by
                #7

                @axelrhd Hallo Axel. kannst mal bitte dein Blockly-Scrpit posten. Wie hast du "input_obj" mit deinem Trigger verknüpft?

                D 1 Reply Last reply
                0
                • N nelzon

                  @axelrhd Hallo Axel. kannst mal bitte dein Blockly-Scrpit posten. Wie hast du "input_obj" mit deinem Trigger verknüpft?

                  D Offline
                  D Offline
                  Diamand2k22
                  wrote on last edited by
                  #8

                  @paul53

                  bei mir im Blockly funktioniert das mit dem extrahieren der Texte nicht.
                  was stimmt da noch nicht? kannst du mir weiterhelfen?

                  8030bce7-f0b1-42b4-8ab8-3b386319e74c-image.png

                  acd7ed57-209f-414e-a851-628d3ff2176a-image.png

                  c1cebf87-a00d-4eb1-8902-158d235c1abd-image.png

                  Danke u. Grüße

                  paul53P 1 Reply Last reply
                  0
                  • D Diamand2k22

                    @paul53

                    bei mir im Blockly funktioniert das mit dem extrahieren der Texte nicht.
                    was stimmt da noch nicht? kannst du mir weiterhelfen?

                    8030bce7-f0b1-42b4-8ab8-3b386319e74c-image.png

                    acd7ed57-209f-414e-a851-628d3ff2176a-image.png

                    c1cebf87-a00d-4eb1-8902-158d235c1abd-image.png

                    Danke u. Grüße

                    paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by paul53
                    #9

                    @diamand2k22 sagte: was stimmt da noch nicht?

                    Die JS-Funktion mit Ergebnis darf nur diese eine Zeile enthalten:

                    Blockly_temp.JPG

                    Das Funktionsgerüst erstellt Blockly.

                    EDIT: Außerdem muss an die Funktion die ID des Trigger-Datenpunktes übergeben werden.

                    Blockly_temp.JPG

                    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

                    D 1 Reply Last reply
                    0
                    • paul53P paul53

                      @diamand2k22 sagte: was stimmt da noch nicht?

                      Die JS-Funktion mit Ergebnis darf nur diese eine Zeile enthalten:

                      Blockly_temp.JPG

                      Das Funktionsgerüst erstellt Blockly.

                      EDIT: Außerdem muss an die Funktion die ID des Trigger-Datenpunktes übergeben werden.

                      Blockly_temp.JPG

                      D Offline
                      D Offline
                      Diamand2k22
                      wrote on last edited by Diamand2k22
                      #10

                      @paul53

                      es funktioniert, danke!
                      Das fehlen der ObjectID des Trigger-Datenpunktes war der Hauptfehler.

                      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

                      658

                      Online

                      32.7k

                      Users

                      82.5k

                      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