Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Blockly will keine Status werte in Wort

NEWS

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

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

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

Blockly will keine Status werte in Wort

Geplant Angeheftet Gesperrt Verschoben Blockly
14 Beiträge 2 Kommentatoren 1.1k Aufrufe 1 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.
  • A acidsubway

    Hallo zusammen,

    ich habe ein Blockly erstellt, aber das will nicht so wie ich will.
    Ich bekomme einen Status über einen Mod-Bus von meiner Solaranlage.
    Diese aber spuckt nur Zahlen aus, jedoch möchte ich gerne die Zahl übersetzt haben und in die Spalte "Funktion" eingesetzt haben.
    Geht das überhaupt? Ist das sinnvoll? Oder mach man das anders?

    2020-04-18 21_27_03-javascript - ioBroker.png

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

    @acidsubway sagte:

    in die Spalte "Funktion" eingesetzt haben

    Was ist eine Spalte "Funktion" ?

    @acidsubway sagte in Blockly will keine Status werte in Wort:

    Oder mach man das anders?

    Das ist eine typische Werteliste, bei der in der Eigenschaft common.states den Zahlenwerten Zustandstexte zugeordnet sind. Beispiel:

    {
      "from": "system.adapter.admin.0",
      "user": "system.user.admin",
      "ts": 1582661467074,
      "common": {
        "name": "Senderliste",
        "role": "",
        "type": "number",
        "desc": "Manuell erzeugt",
        "states": {
          "0": "Aus",
          "1": "Sender 1",
          "2": "Sender 2",
          "3": "Sender 3"
        },
        "min": 0,
        "max": 3,
        "def": 0,
        "read": true,
        "write": true
      },
    

    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

    1 Antwort Letzte Antwort
    0
    • A Offline
      A Offline
      acidsubway
      schrieb am zuletzt editiert von
      #3

      Hallo Paul,

      schau mal oben im Bild das meine ich.
      2020-04-18 22_30_23-objects - ioBroker.png

      paul53P 1 Antwort Letzte Antwort
      0
      • A acidsubway

        Hallo Paul,

        schau mal oben im Bild das meine ich.
        2020-04-18 22_30_23-objects - ioBroker.png

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

        @acidsubway sagte:

        oben im Bild

        Funktion ist ein Aufzählungsobjekt (ursprünglich "Gewerk"), dem Objekte zugeordnet werden können. Dort lassen sich keine Zustände eines Datenpunktes unterbringen. Die Zustandstexte werden in der Spalte "Wert" angezeigt, wenn vorhanden.

        Senderliste.JPG

        In Klammern steht der eigentliche Zahlenwert.

        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

        1 Antwort Letzte Antwort
        0
        • A Offline
          A Offline
          acidsubway
          schrieb am zuletzt editiert von
          #5

          ach super das geht auch, wie schaut das in blockly aus?
          mit dem Programmieren habe ich es nicht so 😕

          paul53P 2 Antworten Letzte Antwort
          0
          • A acidsubway

            ach super das geht auch, wie schaut das in blockly aus?
            mit dem Programmieren habe ich es nicht so 😕

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

            @acidsubway sagte in Blockly will keine Status werte in Wort:

            wie schaut das in blockly aus?

            Blockly hat da seine Grenzen. In Javascript kann man den Zustandstext leicht ermitteln.

            on('javascript.1.test.Senderliste', function(dp) {
                log(dp.common.states[dp.state.val]);
            });
            

            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

            1 Antwort Letzte Antwort
            0
            • A acidsubway

              ach super das geht auch, wie schaut das in blockly aus?
              mit dem Programmieren habe ich es nicht so 😕

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

              @acidsubway
              Wo möchtest Du die Zustandstexte letztlich anzeigen ?
              In Vis gibt es dafür die Widgets mit ValueList im Namen. Dort trägt man die Texte direkt ein.

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

              1 Antwort Letzte Antwort
              0
              • A Offline
                A Offline
                acidsubway
                schrieb am zuletzt editiert von
                #8

                ok Paul danke, schau mal so schaut jetzt mein Script aus?

                // Solar Status Scrip
                {
                  "from": "system.adapter.modbis.1.holdingRegisters",
                  "user": "system.user.admin",
                  "ts": 1582661467074,          // was muss hier rein?
                  "common": {
                    "name": "Regelstatus",
                    "role": "",
                    "type": "number",           //welche Nummer muss hier rein?
                    "desc": "Manuell erzeugt",
                    "states": {
                      "0": "Warte auf Sonne",
                      "1": "Frostschutz",
                      "2": "Anschieben",
                      "3": "Einscchaltverzögerung"
                      "4": "Einspeisen"
                      "5": "Speicher voll"
                      "6": "Kollektor überhitzt"
                      "7": "Manuell"
                      "8": "Messung"
                      "9": "Störabschaltung"
                      "10": "Speicher umladen"
                      "11": "Heißstart"
                      "12": "SPS übernimmt"
                
                    },
                    "min": 0,
                    "max": 12,
                    "def": 0,
                    "read": true,
                    "write": true
                  },
                

                2020-04-19 08_40_28-objects - ioBroker.png

                um die oben markierte Zeile geht es, ich hab das gefühl mir fehlt noch was in meinem Script?

                mfg

                1 Antwort Letzte Antwort
                0
                • A Offline
                  A Offline
                  acidsubway
                  schrieb am zuletzt editiert von
                  #9

                  oh ja der hat einen Fehler.

                  08:44:35.961	info	javascript.0 (112) Stop script script.js.common.Solar_Status_umwandeln
                  08:44:35.961	info	javascript.1 (5369) Stop script script.js.common.Solar_Status_umwandeln
                  08:44:36.085	info	javascript.0 (112) Start javascript script.js.common.Solar_Status_umwandeln
                  08:44:36.086	error	javascript.0 (112) script.js.common.Solar_Status_umwandeln compile failed: at script.js.common.Solar_Status_umwandeln:3
                  
                  1 Antwort Letzte Antwort
                  0
                  • A Offline
                    A Offline
                    acidsubway
                    schrieb am zuletzt editiert von
                    #10

                    2020-04-19 08_49_39-objects - ioBroker.png

                    hab vorhin ein falsches Objekt gepostet, das ist der Solarregler

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • A Offline
                      A Offline
                      acidsubway
                      schrieb am zuletzt editiert von acidsubway
                      #11
                      // Solar Status Scrip
                      {
                        "from": "system.adapter.modbus.0.holdingRegisters.4028",
                        "user": "system.user.admin",
                        "ts": 1582661467074,          // was muss hier rein?
                        "common": {
                          "name": "Regelstatus",
                          "role": "",
                          "type": "number",           //welche Nummer muss hier rein?
                          "desc": "Manuell erzeugt",
                          "states": {
                            "0": "Warte auf Sonne",
                            "1": "Frostschutz",
                            "2": "Anschieben",
                            "3": "Einscchaltverzögerung"
                            "4": "Einspeisen"
                            "5": "Speicher voll"
                            "6": "Kollektor überhitzt"
                            "7": "Manuell"
                            "8": "Messung"
                            "9": "Störabschaltung"
                            "10": "Speicher umladen"
                            "11": "Heißstart"
                            "12": "SPS übernimmt"
                      
                          },
                          "min": 0,
                          "max": 12,
                          "def": 0,
                          "read": true,
                          "write": true
                        },
                      

                      ich sehe leider nicht woran es liegen könnte

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • A acidsubway
                        // Solar Status Scrip
                        {
                          "from": "system.adapter.modbus.0.holdingRegisters.4028",
                          "user": "system.user.admin",
                          "ts": 1582661467074,          // was muss hier rein?
                          "common": {
                            "name": "Regelstatus",
                            "role": "",
                            "type": "number",           //welche Nummer muss hier rein?
                            "desc": "Manuell erzeugt",
                            "states": {
                              "0": "Warte auf Sonne",
                              "1": "Frostschutz",
                              "2": "Anschieben",
                              "3": "Einscchaltverzögerung"
                              "4": "Einspeisen"
                              "5": "Speicher voll"
                              "6": "Kollektor überhitzt"
                              "7": "Manuell"
                              "8": "Messung"
                              "9": "Störabschaltung"
                              "10": "Speicher umladen"
                              "11": "Heißstart"
                              "12": "SPS übernimmt"
                        
                            },
                            "min": 0,
                            "max": 12,
                            "def": 0,
                            "read": true,
                            "write": true
                          },
                        

                        ich sehe leider nicht woran es liegen könnte

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

                        @acidsubway
                        Das, was ich hier gezeigt habe, ist kein Script, sondern die RAW-Ansicht eines Datenpunktes mit einer Werteliste, und davon nur der Teil "common".

                        Du brauchst kein Script, um die Zustandstexte in Vis anzuzeigen. Sie müssen im Widget eingegeben werden. Z.B. Widget "ValueList HTML":

                        Vis_ValueList.JPG

                        Oder brauchst Du die Zustandstexte woanders ?

                        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

                        1 Antwort Letzte Antwort
                        0
                        • A acidsubway

                          2020-04-19 08_49_39-objects - ioBroker.png

                          hab vorhin ein falsches Objekt gepostet, das ist der Solarregler

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

                          @acidsubway sagte in Blockly will keine Status werte in Wort:

                          das ist der Solarregler

                          Bitte verändere keine Original-Datenpunkte des Modbus-Adapters. Wenn Du einen Datenpunkt mit Zustandstexten benötigst, der ansonsten ein Abbild des "Status Solar" ist, dann erzeuge einen Alias. Das kannst Du mit diesem Script machen:

                          // Original-Datenpunkt
                          const idOrigin = 'modbus.0.holdingRegisters.4028';
                           
                          // Alias-Datenpunkt
                          const idAlias = 'Solar.Status';
                          var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
                          // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
                          // nameAlias = 'Batterie Deckenlicht';
                          desc = 'per Script erstellt';
                          // typeAlias = 'boolean'; // oder 'number'
                          // read = "val < 20 ? true : false"; // Erkennung "Aus" --> false erfolgt automatisch  
                          // write = "val ? 'Ein' : 'Aus'";
                          // role = 'indicator';
                          // min = 0; // nur Zahlen
                          // max = 100; // nur Zahlen
                          // unit = '%'; // nur für Zahlen
                          states = {
                                0: "Warte auf Sonne",
                                1: "Frostschutz",
                                2: "Anschieben",
                                3: "Einschaltverzögerung",
                                4: "Einspeisen",
                                5: "Speicher voll",
                                6: "Kollektor überhitzt",
                                7: "Manuell",
                                8: "Messung",
                                9: "Störabschaltung",
                                10: "Speicher umladen",
                                11: "Heißstart",
                                12: "SPS übernimmt"
                          };
                          // custom = []; // verhindert doppelte Ausführung von history, ...
                          // raum = 'EG_Flur'; // Groß-/Kleinschreibung in der ID beachten !
                          // gewerk = 'Licht'; // Groß-/Kleinschreibung in der ID beachten !
                          
                          function createAlias(idSrc, idDst) {
                             if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
                             else {
                                var obj = {};
                                obj.type = 'state';
                                obj.common = getObject(idSrc).common;
                                obj.common.alias = {};
                                obj.common.alias.id = idSrc;
                                if(typeAlias) obj.common.type = typeAlias;
                                if(obj.common.read !== false && read) obj.common.alias.read = read;
                                if(obj.common.write !== false && write) obj.common.alias.write = write;
                                if(nameAlias) obj.common.name = nameAlias;
                                if(role) obj.common.role = role;
                                if(desc) obj.common.desc = desc;
                                if(min !== undefined) obj.common.min = min;
                                if(max !== undefined) obj.common.max = max;
                                if(unit) obj.common.unit = unit;
                                if(states) obj.common.states = states;
                                if(custom && obj.common.custom) obj.common.custom = custom;
                                obj.native = {};
                                setObject(idDst, obj);
                                if(raum && getObject('enum.rooms.' + raum)) {
                                   let obj = getObject('enum.rooms.' + raum)
                                   obj.common.members.push(idDst);
                                   setObject('enum.rooms.' + raum, obj);
                                }
                                if(gewerk && getObject('enum.functions.' + gewerk)) {
                                   let obj = getObject('enum.functions.' + gewerk)
                                   obj.common.members.push(idDst);
                                   setObject('enum.functions.' + gewerk, obj);
                                }
                             } 
                          }
                           
                          createAlias(idOrigin, 'alias.0.' + idAlias);
                          

                          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

                          1 Antwort Letzte Antwort
                          0
                          • A Offline
                            A Offline
                            acidsubway
                            schrieb am zuletzt editiert von
                            #14

                            PAUL, DANKE DIR!!!!!!!!!!!!!!!!!!!!!!!

                            Das geht super, kann das nun auch noch umschreiben für noch mehr statuse 😄 DANKE

                            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

                            760

                            Online

                            32.4k

                            Benutzer

                            81.4k

                            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
                            • Aktuell
                            • Tags
                            • Ungelesen 0
                            • Kategorien
                            • Unreplied
                            • Beliebt
                            • GitHub
                            • Docu
                            • Hilfe