Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. gelöst-common.states in dp-object setzen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    gelöst-common.states in dp-object setzen

    This topic has been deleted. Only users with topic management privileges can see it.
    • liv-in-sky
      liv-in-sky last edited by liv-in-sky

      habe das schon mal gemacht aber irgendwie funkioniert das nicht mehr

      nutze das um common.states zu schreiben in einen werteliste datenpunkt

      let obj = getObject("0_userdata.0.Rookie.holdData");
       obj.common.states=valueListObjDp;
       setObject("0_userdata.0.Rookie.holdData", obj);
      

      valueListObjDp ist:

      0:📁Alben;1:📁Best of;2:📁Sampler;3:📁X-Mas;
      

      raw sieht so aus:
      Image 1.png

      was nicht funktioniert:

        log( getObject("0_userdata.0.Rookie.holdData").common.states[getState("0_userdata.0.Rookie.holdData").val])  
      

      weiß jemand ahnung, wo der fehler liegt

      das ganze habe ich auch mal mit einem neuen werteliste dp gemacht - also nicht das object geändert (also den standard gelassen( "states": "0:zero;1:one;2:two;3:three;4:four;5:five")) sondern versucht den namen (z.b. "three") auszulesen - da funktioniert es auch nicht

       log( "--------"+getObject("0_userdata.0.Rookie.test").common.states[3])
      
      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @liv-in-sky last edited by

        @liv-in-sky sagte: valueListObjDp ist:

        Verwende besser die Objekt-Notation.

        let valueListObjDp = {
           0: '📁Alben',
           1: '📁Best of', 
           2: '📁Sampler',
           3: '📁X-Mas'
        };
        
        liv-in-sky 2 Replies Last reply Reply Quote 0
        • liv-in-sky
          liv-in-sky @paul53 last edited by

          @paul53 mein problem damit ist, dass 0 1 2 3 auch von einer variable kommt - wie kann ich das in eineschleife einbauen - mit valueListObjDp.push geht ja nicht

          das ganze sieht so aus:

            let werteliste="";let wertelisteName=""; let valueListObjDp=''
              for(let a=0;a<ergebnisJson.length; a++){
                                                      werteliste=werteliste+ergebnisJson[a].nummer+";"
                                                      wertelisteName=wertelisteName+ergebnisJson[a].file+ergebnisJson[a].anzeige+";"
                                                      valueListObjDp=valueListObjDp + `${ergebnisJson[a].nummer}:${ergebnisJson[a].file+ergebnisJson[a].anzeige};`
                                                       }
                                                   
                                                     // valueListObjDp=valueListObjDp+"}"
                                                      log(valueListObjDp)
                                                      let obj = getObject("0_userdata.0.Rookie.holdData");
                                                      obj.common.states=valueListObjDp;
                                                      setObject("0_userdata.0.Rookie.holdData", obj);
                                                      setState("0_userdata.0.Rookie.werteliste",werteliste);
                                                      setState("0_userdata.0.Rookie.wertelisteNamen",wertelisteName)
          

          steh voll auf dem schlauch 😞

          wenn ich das als string so erzeuge, steht der wert dann so im raw und funktioniert auch nicht - wegen anführunszeichen

          "{  0: '📁Alben',   1: '📁Best of',    2: '📁Sampler',   3: '📁X-Mas'}"
          
          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @liv-in-sky last edited by paul53

            @liv-in-sky sagte: valueListObjDp=valueListObjDp + ${ergebnisJson[a].nummer}:${ergebnisJson[a].file+ergebnisJson[a].anzeige};

            Das ist eine String-Verkettung. Mit Objekten geht man anders um:

            let valueListObjDp = {};
            
            valueListObjDp[a] = xyz;
            
            liv-in-sky 1 Reply Last reply Reply Quote 1
            • liv-in-sky
              liv-in-sky @paul53 last edited by

              @paul53 vielleicht sollte ich noch erwähnen, dass diese auswahl bei jedem scriptdurchlauf eine andere wird - ich möchte damit eine struktur wie ein filesystem durchgehen. wenn also ein wert ausgewählt ist, wird die nächste ebene in die states geladen - bis man etwas endgültig auswählt

              danke - ich probier das mal aus

              1 Reply Last reply Reply Quote 0
              • liv-in-sky
                liv-in-sky @paul53 last edited by

                @paul53 tausend dank - das war's

                Image 3.png

                1 Reply Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky last edited by

                  @paul53

                  so sieht z.b die nächste ebene aus - gibt es da eigentlich ein limit - also wenn z.b 100 objecte drin liegen gibt es 100 states ?

                  Image 4.png

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  995
                  Online

                  31.8k
                  Users

                  80.0k
                  Topics

                  1.3m
                  Posts

                  javascript
                  2
                  7
                  128
                  Loading More Posts
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes
                  Reply
                  • Reply as topic
                  Log in to reply
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                  The ioBroker Community 2014-2023
                  logo