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. Blockly will keine Status werte in Wort

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Blockly will keine Status werte in Wort

Scheduled Pinned Locked Moved Blockly
14 Posts 2 Posters 1.3k Views 1 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.
  • A Offline
    A Offline
    acidsubway
    wrote on last edited by
    #1

    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 1 Reply Last reply
    0
    • 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
      wrote on last edited by 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 Reply Last reply
      0
      • A Offline
        A Offline
        acidsubway
        wrote on last edited by
        #3

        Hallo Paul,

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

        paul53P 1 Reply Last reply
        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
          wrote on last edited by 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 Reply Last reply
          0
          • A Offline
            A Offline
            acidsubway
            wrote on last edited by
            #5

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

            paul53P 2 Replies Last reply
            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
              wrote on last edited by
              #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 Reply Last reply
              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
                wrote on last edited by 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 Reply Last reply
                0
                • A Offline
                  A Offline
                  acidsubway
                  wrote on last edited by
                  #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 Reply Last reply
                  0
                  • A Offline
                    A Offline
                    acidsubway
                    wrote on last edited by
                    #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 Reply Last reply
                    0
                    • A Offline
                      A Offline
                      acidsubway
                      wrote on last edited by
                      #10

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

                      hab vorhin ein falsches Objekt gepostet, das ist der Solarregler

                      paul53P 1 Reply Last reply
                      0
                      • A Offline
                        A Offline
                        acidsubway
                        wrote on last edited by 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 Reply Last reply
                        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
                          wrote on last edited by
                          #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 Reply Last reply
                          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
                            wrote on last edited by
                            #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 Reply Last reply
                            0
                            • A Offline
                              A Offline
                              acidsubway
                              wrote on last edited by
                              #14

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

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

                              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

                              492

                              Online

                              32.6k

                              Users

                              82.3k

                              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