Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Hilfe setState und getState Kommando mit Variablen

    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

    Hilfe setState und getState Kommando mit Variablen

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

      Hallo zusammen,

      ich baue gerade einen Teil meiner Scripte und Homematic Programme um.

      Hierfür wäre es sinnvoll wenn ich teilweise bei setState oder getState keine feste ID oder Namen verwende sondern diesen aus Variablen zusammenbaue.

      z.B.

      setState("idCount" + VdM + "E", (getState("javascript.0.Manuell.Systemvariable.Strom." + dJ + ".eCount" + VdM + dJ + "E").val));
      
      

      Die Variablen sind alle vorhanden zumindest werden mir Sie über log(VdM + dJ) ausgegeben.

      z.B.

      VdM (Langname des Vormonats im Moment also September)

      dJ (Jahr in Langform im Moment also 2018)

      das setState soll so aussehen:

      setState(idCountSeptemberE)

      das getState soll so aussehen:

      getState("javascript.0.Manuell.Systemvariable.Strom.2018.eCountSeptember2018E").val

      Vermute ist ein Problem mit den Anführungszeichen, aber ich sehe den Fehler nicht.

      Habe auch keine Ahnung wie ich mir das mal anzeigen lassen kann mit aufgelösten Variablen.

      Hoffe Ihr könnt mir helfen.

      Danke

      Gruß Zippolighter

      1 Reply Last reply Reply Quote 0
      • X
        Xyolyp last edited by

        Auf den ersten Blick sehe ich den Fehler auch nicht.

        So kannst du dir die Zeichenketten mit den Variablen aufgelöst anzeigen lassen.

        console.log("idCount" + VdM + "E");
        console.log("javascript.0.Manuell.Systemvariable.Strom." + dJ + ".eCount" + VdM + dJ + "E");
        
        1 Reply Last reply Reply Quote 0
        • apollon77
          apollon77 last edited by

          Du kannst variablen namen (ich nehme an idCountSeptemberE soll einer sein) nicht so dynamisch bauen und dann direkt benutzen. Wenn Du es so baust ist es eine Zeichenkette

          1 Reply Last reply Reply Quote 0
          • D
            dwm last edited by

            Was ist das idCountSeptemberE? Eine Variable?

            Möchtest Du quasi "doppelt indirekt" den Namen der Variablen aus Strings zusammenbauen?

            Das wüsste ich jetzt auch ned, wie man das macht… würd ich glaub ich auch eher mit nem Array lösen.

            So, wie Du's schreibst versucht er die Daten nach "javascript.0.idCountSeptemberE" zu schreiben (den es vmtl. nicht gibt).

            1 Reply Last reply Reply Quote 0
            • Z
              Zippolighter last edited by

              Ja das ist korrekt, das sind variablen.

              Also schon mal verstanden das es als String verwendet. Jemand eine Idee wie ich einen Variablen Namen dynamisch bauen kann.

              1 Reply Last reply Reply Quote 0
              • P
                pix last edited by

                Hallo,

                wie es apollon77 schon sagt, wird beim Zusammenbau eine Zeichenkette daraus. Deshalb kannst du keinen Variablen Namen zusammenbauen. Dukannst aber den Objektnamen mit Adapter.Instanz.Objektname dynamisch so zusammenbauen. Beim getState() hast du das ja gemacht. Genauso musst du es beim setState() machen.

                Pix

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

                Support us

                ioBroker
                Community Adapters
                Donate

                932
                Online

                31.7k
                Users

                79.9k
                Topics

                1.3m
                Posts

                5
                6
                1736
                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