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

NEWS

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

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

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

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

Geplant Angeheftet Gesperrt Verschoben Error/Bug
12 Beiträge 3 Kommentatoren 1.9k Aufrufe
  • Ä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.
  • V Offline
    V Offline
    vegetto
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • BluefoxB Offline
        BluefoxB Offline
        Bluefox
        schrieb am zuletzt editiert von
        #3

        Wie sieht dein Datenpunkt aus?

        1 Antwort Letzte Antwort
        0
        • V Offline
          V Offline
          vegetto
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • V Offline
            V Offline
            vegetto
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • V Offline
                V Offline
                vegetto
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  0
                  • BluefoxB Offline
                    BluefoxB Offline
                    Bluefox
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    0
                    • BluefoxB Offline
                      BluefoxB Offline
                      Bluefox
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      0
                      • paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        0
                        • V Offline
                          V Offline
                          vegetto
                          schrieb am zuletzt editiert von
                          #12

                          Paul,

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

                          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

                          822

                          Online

                          32.4k

                          Benutzer

                          81.5k

                          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