Skip to content
  • 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
  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.1k

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

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

Hilfe setState und getState Kommando mit Variablen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
6 Beiträge 5 Kommentatoren 1.8k 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.
  • Z Offline
    Z Offline
    Zippolighter
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • X Offline
      X Offline
      Xyolyp
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • apollon77A Offline
        apollon77A Offline
        apollon77
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • D Offline
          D Offline
          dwm
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • Z Offline
            Z Offline
            Zippolighter
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • P Offline
              P Offline
              pix
              schrieb am zuletzt editiert von
              #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 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

              597

              Online

              32.4k

              Benutzer

              81.4k

              Themen

              1.3m

              Beiträge
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
              ioBroker Community 2014-2025
              logo
              • Anmelden

              • Du hast noch kein Konto? Registrieren

              • Anmelden oder registrieren, um zu suchen
              • Erster Beitrag
                Letzter Beitrag
              0
              • Aktuell
              • Tags
              • Ungelesen 0
              • Kategorien
              • Unreplied
              • Beliebt
              • GitHub
              • Docu
              • Hilfe