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. Error/Bug
  4. Variablen mit "states" -> Probleme mit Rega und "jqui select value"

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    13
    1
    147

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

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

Variablen mit "states" -> Probleme mit Rega und "jqui select value"

Scheduled Pinned Locked Moved Error/Bug
12 Posts 3 Posters 2.0k Views
  • 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.
  • V Offline
    V Offline
    vegetto
    wrote on last edited by
    #1

    Hallo,

    vielen Dank für iobroker! Es ist unglablich, wie gut so ein junges hobby Projekt funktioniert. Ihr macht es wirklich toll und deswegen möchte ich auch zum iobroker wechseln :D

    ich habe letzter Woche iobroker auf ein Rasberry installiert und versuche langsamer meine Programe von dem CCU2 zum iobroker umzuziehen. Da das ein bisschen dauern wird, möchte ein "homeState" CCU2 System Variable in iobroker spiegeln so, dass ich in meinem iobroker Scripte nicht das Rega Variable benutzen muss. So kann ich später das rega Instanz löschen und das CCU2 mit dem Homematic raspberrry Adapter ersetzen.

    Das spiegeln wollte ich so machen:

    on("hm-rega.0.2134"/*homeState*/,"homeState");
    on("homeState,"hm-rega.0.2134"/*homeState*/);
    
    

    und dann in vis mit Hilfe von einem jqui select value widget, das Value zu zeigen und zu ändern. Leider habe ich einige Probleme getroffen, die vermutlich zu tun haben, dass homeState ein Variable mit states ist:

    ! { "common": { "name": "homeState", "type": "number", "role": "state", "min": 0, "max": 3, "read": true, "write": true, "states": { "0": "sleeping", "1": "awakeBeforeWork", "2": "empty", "3": "awake" } }, "native": { "Name": "homeState", "TypeName": "VARDP", "DPInfo": "", "ValueUnit": "", "ValueList": "sleeping;awakeBeforeWork;empty;awake", "ValueType": 16, "ValueSubType": 29, "ValueMin": null, "ValueMax": null }, "acl": { "object": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1638 }, "_id": "hm-rega.0.2134", "type": "state" } !

    Hier sind die Probleme:

    <list type="decimal">4. Wenn ich in in ioadmin das Value von homeState sehe, ist sie eine Zahl (object.common.type="number" so es passt, denke ich). Wenn ich aber sie dort per Hand ändere, dann wird das neue Wert als string gespeichert und auch als String an dem CCU2 gesendet. Das CCU2 erkennt das Wert nicht und setzt das State immer zu 0.

    1. Mit einem jqui select value Widget kann ich das Wert des Variable ändern aber das neues Wert wird nicht gezeigt: das widget zeigt immer "Sleeping". Das widget habe ich so definiert:

      ! [{"tpl":"tplJquiSelectList","data":{"oid":"hm-rega.0.2134","visibility-cond":"==","visibility-val":1,"values":"0;1;2;3","texts":"Sleeping;AwakeBeforeWork;Empty;Awake","height":"150"},"style":{"left":"481px","top":"122px"},"widgetSet":"jqui"}] !

    2. Das local Variable zeigt auch ein falsches Wert in dem jqui select value Widget. Ich habe das Variable so definiert:

    >! ````
    {
      "common": {
        "name": "homeState",
        "type": "number",
        "read": true,
        "write": true,
        "role": "state",
        "states": {
          "0": "sleeping",
          "1": "awakeBeforeWork",
          "2": "empty",
          "3": "awake"
        },
        "min": 0,
        "max": 3
      },
      "native": {},
      "type": "state",
      "_id": "javascript.0.homeState",
      "acl": {
        "object": 1638,
        "state": 1638
      }
    }
    >! ````
    und das Widget so:
    
    >! ````
    [{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.homeState","visibility-cond":"==","visibility-val":1,"values":"sleeping;awakeBeforeWork;empty;awake","texts":"Sleeping;AwakeBeforeWork;Empty;Awake","height":"150","open":true,"name":"homeState"},"style":{"left":9,"top":"49px","width":"221px","height":"30px"},"widgetSet":"jqui"}]
    >! ````
    Das Wert wird in dem Variable als String gespeichert. Ich bin jetzt nicht sicher, ob man am ende solche "enums" als String oder Zahl gespeichert werden sollten…
    
    1 Reply Last reply
    0
    • paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #2

      Bis zur Version 0.6.3 von ioBroker.Admin hat sich die Auswahl eines anderen Zustandes im Reiter "Zustände" bei Multistate-Datenpunkten so ausgewirkt, dass````
      var x = getState(id).val;

      
      In der neuen Version 0.6.4 ändert sich nach Zustandsänderung im Reiter "Zustände" der Wert nicht, d.h. die Auswahl hat keinen Einfluss auf das Ergebnis von getState(id).val; der vorher per setState(id, val) gesetzte Wert bleibt erhalten.

      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
      • BluefoxB Offline
        BluefoxB Offline
        Bluefox
        wrote on last edited by
        #3

        Wie sieht dein Datenpunkt aus?

        1 Reply Last reply
        0
        • V Offline
          V Offline
          vegetto
          wrote on last edited by
          #4

          Vielen Dank für deine Antwort paul53!

          Mit Version 0.6.4 funktioniert wunderbar: ich kann in iobroker.admin das Wert für die multi-state Werte und sie bleiben Zahlen. Damit wird die System Variablen in rega richtig gespeichert.

          Damit kann ich jetzt sehr einfach meine gespiegelte iobroker Variablen in sync halten:

          addVariableSync("hm-rega.0.2134"/*homeState*/);
          addVariableSync("hm-rega.0.2735"/*homeStatePreview*/);
          
          function addVariableSync(objId) {
              var obj = getObject(objId);
              var objVal = getState(objId).val;
              var objName = obj.common.name;
          
              //Create and set local variable
              createState(objName, objVal, false, obj.common);
              setState(objName, objVal);
          
              //Update local variable when CCU variable changes
              on(objId,objName);
          
              //Update CCU variable when local variable changes
              on(objName,objId);
          }
          
          

          Das Problem mit dem jqui - Select ValueList ist aber geblieben: ich kann die Variablen aktualizieren aber das Widget reflektiert, die Änderungen nicht…

          [{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.homeState","visibility-cond":"==","visibility-val":1,"values":"0;1;2;3","texts":"Sleeping;AwakeBeforeWork;Empty;Awake","height":"150","open":false,"name":"homeState"},"style":{"left":9,"top":"49px","width":"221px","height":"30px"},"widgetSet":"jqui"}]
          
          

          Btw: was macht eingentlich das Common -> Open Option?

          1 Reply Last reply
          0
          • V Offline
            V Offline
            vegetto
            wrote on last edited by
            #5

            @Bluefox:

            Wie sieht dein Datenpunkt aus? `

            Meinst Du das Rega oder Javascript Datenpunkt? Das Rega Datenpunkt ist meinem erste Post (erste "Spolier"). Hier ist das javascript Datenpunkt:

            {
              "common": {
                "name": "homeState",
                "type": "number",
                "read": true,
                "write": true,
                "role": "state",
                "states": {
                  "0": "sleeping",
                  "1": "awakeBeforeWork",
                  "2": "empty",
                  "3": "awake"
                },
                "min": 0,
                "max": 3
              },
              "native": {},
              "type": "state",
              "_id": "javascript.0.homeState",
              "acl": {
                "object": 1638,
                "state": 1638
              }
            }
            
            
            1 Reply Last reply
            0
            • paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by
              #6

              @Bluefox:

              Wie sieht dein Datenpunkt aus? `
              So:

              {
                "common": {
                  "name": "Wochenprogramm",
                  "role": "",
                  "type": "number",
                  "desc": "Auswahl Wochenprogramm für Wandthermostate",
                  "states": "0:Normalwoche;1:Woche 1;2:Woche 2",
                  "min": 0,
                  "max": 2,
                  "def": 0,
                  "read": true,
                  "write": true
                },
                "native": {},
                "acl": {
                  "object": 1638,
                  "owner": "system.user.admin",
                  "ownerGroup": "system.group.administrator",
                  "state": 1638
                },
                "_id": "javascript.0.Wochenprogramm",
                "type": "state"
              }
              

              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
              • V Offline
                V Offline
                vegetto
                wrote on last edited by
                #7

                @paul53:

                {
                  "states": "0:Normalwoche;1:Woche 1;2:Woche 2",
                
                ```` `  
                

                Sollte es nicht ein Objectt statt ein String sein?

                "states": {"0":"Normalwoche","1":"Woche 1","2":"Woche 2"
                
                
                1 Reply Last reply
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  wrote on last edited by
                  #8

                  @vegetto:

                  Sollte es nicht ein Objectt statt ein String sein? `
                  Beide Versionen sind möglich (http://www.trirand.com/jqgridwiki/doku.php?id=wiki:common_rules).

                  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
                  • BluefoxB Offline
                    BluefoxB Offline
                    Bluefox
                    wrote on last edited by
                    #9

                    @paul53:

                    @Bluefox:

                    Wie sieht dein Datenpunkt aus? `
                    So:

                    {
                      "common": {
                        "name": "Wochenprogramm",
                        "role": "",
                        "type": "number",
                        "desc": "Auswahl Wochenprogramm für Wandthermostate",
                        "states": "0:Normalwoche;1:Woche 1;2:Woche 2",
                        "min": 0,
                        "max": 2,
                        "def": 0,
                        "read": true,
                        "write": true
                      },
                      "native": {},
                      "acl": {
                        "object": 1638,
                        "owner": "system.user.admin",
                        "ownerGroup": "system.group.administrator",
                        "state": 1638
                      },
                      "_id": "javascript.0.Wochenprogramm",
                      "type": "state"
                    }
                    ```` `  
                    

                    Es war noch ein Fehler drin. /opt/iobroker/node_modules/iobroker.admin/www/js/adminStates.js, Zeile 208

                    Aus

                        var parts = s.split(':');
                    
                    

                    bitte das machen

                    var parts = s****[v]****.split(':');

                    1 Reply Last reply
                    0
                    • BluefoxB Offline
                      BluefoxB Offline
                      Bluefox
                      wrote on last edited by
                      #10

                      @paul53:

                      @vegetto:

                      Sollte es nicht ein Objectt statt ein String sein? Beide Versionen sind möglich ([http://www.trirand.com/jqgridwiki/doku.php?id=wiki:common_rules](http://www.trirand.com/jqgridwiki/doku.php?id=wiki:common_rules)).
                      Ehrlich gesagt, es geht hier nicht um jqGrid, sondern um ioBroker. Aber genau für dich habe ich das in admin ermöglicht. Ich empfehle trotzdem ein Object zu benutzen.

                      1 Reply Last reply
                      0
                      • paul53P Offline
                        paul53P Offline
                        paul53
                        wrote on last edited by
                        #11

                        @Bluefox:

                        var parts = s[v].split(':'); `
                        Danke, damit funktioniert es. Es wird jetzt zwar der Wert im Reiter "Zustände" angezeigt und nicht mehr der aktuelle Zustandstext wie vorher. Bei Änderung des Wertes im Reiter "Zustände" werden die Zustandstexte zur Auswahl angeboten, was o.k. ist.

                        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
                        • V Offline
                          V Offline
                          vegetto
                          wrote on last edited by
                          #12

                          Paul,

                          hast Du ein jqui - select valuelist für dieses Datenpunkt? Wie sieht es bei Dir die "Values" und "Text" Feldern?

                          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

                          520

                          Online

                          32.7k

                          Users

                          82.4k

                          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