Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Hilfe setState und getState Kommando mit Variablen

NEWS

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

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

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

Hilfe setState und getState Kommando mit Variablen

Hilfe setState und getState Kommando mit Variablen

Scheduled Pinned Locked Moved Skripten / Logik
6 Posts 5 Posters 1.8k 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.
  • Z Offline
    Z Offline
    Zippolighter
    wrote on last edited by
    #1

    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
    0
    • X Offline
      X Offline
      Xyolyp
      wrote on last edited by
      #2

      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
      0
      • apollon77A Online
        apollon77A Online
        apollon77
        wrote on last edited by
        #3

        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

        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
        1 Reply Last reply
        0
        • D Offline
          D Offline
          dwm
          wrote on last edited by
          #4

          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
          0
          • Z Offline
            Z Offline
            Zippolighter
            wrote on last edited by
            #5

            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
            0
            • P Offline
              P Offline
              pix
              wrote on last edited by
              #6

              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

              ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

              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

              475

              Online

              32.4k

              Users

              81.3k

              Topics

              1.3m

              Posts
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
              ioBroker Community 2014-2025
              logo
              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Recent
              • Tags
              • Unread 0
              • Categories
              • Unreplied
              • Popular
              • GitHub
              • Docu
              • Hilfe