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

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

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

Geplant Angeheftet Gesperrt Verschoben Blockly
10 Beiträge 5 Kommentatoren 1.4k Aufrufe 4 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.
  • AxelRHDA Offline
    AxelRHDA Offline
    AxelRHD
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
      0
      • paul53P paul53

        @AxelRHD83 sagte:

        wie man in ioBroker solche JS-Objekte ausliest?

        Siehe hier oder hier.

        AxelRHDA Offline
        AxelRHDA Offline
        AxelRHD
        schrieb am zuletzt editiert von
        #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 Antworten Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #7

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

                D 1 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von Diamand2k22
                      #10

                      @paul53

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

                      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

                      599

                      Online

                      32.6k

                      Benutzer

                      82.0k

                      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