Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. setObject() setzt keinen Default-Wert

    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

    setObject() setzt keinen Default-Wert

    This topic has been deleted. Only users with topic management privileges can see it.
    • Stabilostick
      Stabilostick last edited by Stabilostick

      Schreibt man das nicht so?

      createState(aFolder + ".Schaltzeit2", {
                                      name: "küche",
                                      type: "string",
                                      role: "state.blind",
                                      def:  "empty"
                                  });
      
      N 1 Reply Last reply Reply Quote 0
      • N
        neo4a @Stabilostick last edited by

        @Stabilostickin
        createState erzeugt den Datenpunkt in die Adapter-Hierarchie (z.B. "javascript.0"). Weil ich aber eine Adapter-unabhängige Struktur benutze, habe ich das mit setObject umsetzen müssen.

        Die Syntax aus meinem Demo-Script eignet sich für die Auslagerung in ein globales Script.

        1 Reply Last reply Reply Quote 0
        • OliverIO
          OliverIO @neo4a last edited by

          @neo4a das sehe ich in deinem Code Beispiel aber nicht. Das einzige Mal sehe ich das bei setstate und nicht bei setobject

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @neo4a last edited by

            @neo4a sagte:

            const aFolder  = "Rollo.Erdgeschoss.Kueche";
            

            Das funktioniert nicht, da zwischen dem ersten und dem zweiten Punkt eine Ziffer stehen muss, z.B. so

            const aFolder  = "meineDatenpunkte.0.Rollo.Erdgeschoss.Kueche";
            
            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @neo4a last edited by paul53

              @neo4a Dieses vereinfachte Skript (ohne enums)

              function createDp(id, common) {
                  if(!existsState(id)) {
                      var obj = {};
                      obj.type = 'state';
                      obj.native = {};
                      obj.common = common;
                      setObject(id, obj, function (err) {
                          if (err) log('Cannot write object: ' + err)
                          else {
                              var init = null;
                              if(common.def === undefined) {
                                  if(common.type === 'number') init = 0;
                                  if(common.type === 'boolean') init = false;
                                  if(common.type === 'string') init = '';
                              } else init = common.def;
                              setState(id, init);
                          }
                      });
                  }
              }
              
              const idDp = 'dp.0.Rollo.Erdgeschoss.Kueche';
              createDp(idDp + ".Schaltzeit2", {read: true, write: true, role: "state.blind", desc: "Schaltzeit2", type: "string", def: "empty" });
              

              funktioniert bei mir.

              createDP_Rollo.JPG

              EDIT(06.07.2020): Abfrage auf existsState(id) geändert.

              OliverIO N 2 Replies Last reply Reply Quote 0
              • OliverIO
                OliverIO @paul53 last edited by

                @paul53 ist getObject nicht asynchron? dann müsste alles nach getObject noch in den Callback von getObject gepackt werden.

                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @OliverIO last edited by paul53

                  @OliverIO sagte:

                  ist getObject nicht asynchron?

                  getObject() des JS-Adapters arbeitet synchron, wenn keine Callback-Funktion übergeben wird.

                  1 Reply Last reply Reply Quote 0
                  • N
                    neo4a @paul53 last edited by neo4a

                    @paul53
                    Nachdem ich keinen prinzipiellen Unterschied zwischen unseren Scripten erkennen konnte (bezogen auf den geschilderten Fehlerfall), habe ich mein Script noch einmal laufen lassen und musste feststellen, dass ohne jegliche Änderung das Problem verschwunden ist.

                    Mein Fehler:

                    // falsch:
                                this.setState(aID, aCommon.def);
                    // richtig
                                setState(aID, aCommon.def);
                    
                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @neo4a last edited by

                      @neo4a sagte:

                      Nachdem ich keinen prinzipiellen Unterschied zwischen unseren Scripten erkennen konnte

                      Der prinzipielle Unterschied ist die ID: Wenn zwischen dem ersten und zweiten Punkt keine Ziffer steht, gibt es regelmäßig Probleme.

                      N 1 Reply Last reply Reply Quote 0
                      • N
                        neo4a @paul53 last edited by

                        @paul53
                        Danke für den Hinweis. Ich benutze diese "ohne-Punkt-Hierarchie" nun seit mehreren Jahren. Wahrscheinlich habe ich nur Glückgehabt...

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate
                        FAQ Cloud / IOT
                        HowTo: Node.js-Update
                        HowTo: Backup/Restore
                        Downloads
                        BLOG

                        938
                        Online

                        31.9k
                        Users

                        80.2k
                        Topics

                        1.3m
                        Posts

                        setobject
                        4
                        13
                        1381
                        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