Skip to content
  • Home
  • 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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Wie kann ich in TypeScript "Variablen zusammenfassen"

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Wie kann ich in TypeScript "Variablen zusammenfassen"

Geplant Angeheftet Gesperrt Verschoben JavaScript
9 Beiträge 2 Kommentatoren 667 Aufrufe 2 Watching
  • Ä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.
  • M Offline
    M Offline
    M_aus_B
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen :)

    ich bin noch recht neu was die Erfahrungen mit TypScript angeht und habe daher eine (vermutlich) recht einfache Frage bei der ich aber nicht weiterkomme:

    Und zwar möchte ich gern in einer "Hauptvariablen" (A) mehrere "Untervariablen" (a,b,c,...) zusammenfassen und diese dann über die "Punktnotation" aufrufen und verarbeiten.

    Also zB. würde ich gern über "console.log(A.c)" den Inhalt der Variable c (welche unter "A" gruppiert ist) ausgeben.

    Bei Matlab gibt es dafür den Variablentyp "Strukturvariable" - das ist halt sehr praktisch wenn die Variablen (a,b,c,...) immer gleich heißen - dann kann man die über die übergeordnete Variable unterscheiden und muss nicht so viele unterschiedliche Variablennamen erfinden :)

    Ich würde mich freuen wenn mir jemand einen "Startpunkt" geben kann von wo aus ich dann weiterkomme - oder vlt auch ein kleines Minimalbeispiel? :)

    Vielen Dank :)

    haus-automatisierungH 1 Antwort Letzte Antwort
    0
    • M M_aus_B

      Hallo zusammen :)

      ich bin noch recht neu was die Erfahrungen mit TypScript angeht und habe daher eine (vermutlich) recht einfache Frage bei der ich aber nicht weiterkomme:

      Und zwar möchte ich gern in einer "Hauptvariablen" (A) mehrere "Untervariablen" (a,b,c,...) zusammenfassen und diese dann über die "Punktnotation" aufrufen und verarbeiten.

      Also zB. würde ich gern über "console.log(A.c)" den Inhalt der Variable c (welche unter "A" gruppiert ist) ausgeben.

      Bei Matlab gibt es dafür den Variablentyp "Strukturvariable" - das ist halt sehr praktisch wenn die Variablen (a,b,c,...) immer gleich heißen - dann kann man die über die übergeordnete Variable unterscheiden und muss nicht so viele unterschiedliche Variablennamen erfinden :)

      Ich würde mich freuen wenn mir jemand einen "Startpunkt" geben kann von wo aus ich dann weiterkomme - oder vlt auch ein kleines Minimalbeispiel? :)

      Vielen Dank :)

      haus-automatisierungH Offline
      haus-automatisierungH Offline
      haus-automatisierung
      Developer Most Active
      schrieb am zuletzt editiert von
      #2

      @m_aus_b das ist einfach ein Objekt in Javascript

      🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
      🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
      📚 Meine inoffizielle ioBroker Dokumentation

      M 1 Antwort Letzte Antwort
      0
      • haus-automatisierungH haus-automatisierung

        @m_aus_b das ist einfach ein Objekt in Javascript

        M Offline
        M Offline
        M_aus_B
        schrieb am zuletzt editiert von
        #3

        @haus-automatisierung Hallo Matthias :) Vielen Dank für deine schnelle Antwort das es hier in Richtung Objekt geht hab ich mir schon gedacht - daher ist hier ja auch TS "die richtige" Sprache denke ich.

        Ich hab auch schon mit dem Typ "class" ein bisschen rumgespielt, aber so richtig ist das noch nicht das was ich brauche (glaube ich). Ich könnte mir zwar eine Klasse mit verschiedenen Parametern definieren, allerdings benötige ich dann doch für jede "Klasse" eine eigene Definition weil ich immer unterschiedlich viele Parameter je Klasse habe (wovon viele Parameter aber den gleichen Namen haben). Und ich will ja nicht Parameter in einer Klasse definieren die ich gar nicht brauche. Außerdem hätte ich auch gern drei "Ebenen" wenn das geht. Also so nach dem Motto "A.e.c = WR1_input_PVa_U"

        Toll wäre wenn ich dann die Variablen so in der Art verwenden könnte:

        "A.e.c = getState('modbus.0.inputRegisters.30959_PVa_U').val;"
        bzw:
        "A.e.c * A.e.d = A.e.e; "

        Ich habe übrigens schon dank deinem iobroker-Masterkurs so einiges mit dem iobroker über Blockly realisiert - das funktioniert echt gut und macht auch Spaß! Da ich aber auch schon einige Erfahrung in der CoDeSys-Programmierung mit ST ("Strukturierter Text") habe, schätze ich die Möglichkeiten von Scripten schon sehr und will mich daher jetzt mal etwas mehr mit ts beschäftigen. - Falls du da auch vor hast mal einen Kurs anzubieten?! :)

        Grüße aus Berlin - der Micha :wave:

        haus-automatisierungH 1 Antwort Letzte Antwort
        0
        • M M_aus_B

          @haus-automatisierung Hallo Matthias :) Vielen Dank für deine schnelle Antwort das es hier in Richtung Objekt geht hab ich mir schon gedacht - daher ist hier ja auch TS "die richtige" Sprache denke ich.

          Ich hab auch schon mit dem Typ "class" ein bisschen rumgespielt, aber so richtig ist das noch nicht das was ich brauche (glaube ich). Ich könnte mir zwar eine Klasse mit verschiedenen Parametern definieren, allerdings benötige ich dann doch für jede "Klasse" eine eigene Definition weil ich immer unterschiedlich viele Parameter je Klasse habe (wovon viele Parameter aber den gleichen Namen haben). Und ich will ja nicht Parameter in einer Klasse definieren die ich gar nicht brauche. Außerdem hätte ich auch gern drei "Ebenen" wenn das geht. Also so nach dem Motto "A.e.c = WR1_input_PVa_U"

          Toll wäre wenn ich dann die Variablen so in der Art verwenden könnte:

          "A.e.c = getState('modbus.0.inputRegisters.30959_PVa_U').val;"
          bzw:
          "A.e.c * A.e.d = A.e.e; "

          Ich habe übrigens schon dank deinem iobroker-Masterkurs so einiges mit dem iobroker über Blockly realisiert - das funktioniert echt gut und macht auch Spaß! Da ich aber auch schon einige Erfahrung in der CoDeSys-Programmierung mit ST ("Strukturierter Text") habe, schätze ich die Möglichkeiten von Scripten schon sehr und will mich daher jetzt mal etwas mehr mit ts beschäftigen. - Falls du da auch vor hast mal einen Kurs anzubieten?! :)

          Grüße aus Berlin - der Micha :wave:

          haus-automatisierungH Offline
          haus-automatisierungH Offline
          haus-automatisierung
          Developer Most Active
          schrieb am zuletzt editiert von
          #4

          @m_aus_b Am besten schreibst Du mal genau, was Du vor hast. Eine Klasse ist ja wieder etwas ganz anderes.

          Außerdem hätte ich auch gern drei "Ebenen" wenn das geht. Also so nach dem Motto "A.e.c = WR1_input_PVa_U"

          Das kann man so definieren.

          const A = {
            e: {
              c: getState('modbus.0.inputRegisters.30959_PVa_U').val,
            },
          };
          
          log(A.e.c);
          
          // ändern
          A.e.c = 123;
          
          log(A.e.c);
          

          Mit TypeScript könnte man die Struktur aber noch besser beschreiben (was Datentypen angeht usw).

          🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
          🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
          📚 Meine inoffizielle ioBroker Dokumentation

          M 1 Antwort Letzte Antwort
          0
          • haus-automatisierungH haus-automatisierung

            @m_aus_b Am besten schreibst Du mal genau, was Du vor hast. Eine Klasse ist ja wieder etwas ganz anderes.

            Außerdem hätte ich auch gern drei "Ebenen" wenn das geht. Also so nach dem Motto "A.e.c = WR1_input_PVa_U"

            Das kann man so definieren.

            const A = {
              e: {
                c: getState('modbus.0.inputRegisters.30959_PVa_U').val,
              },
            };
            
            log(A.e.c);
            
            // ändern
            A.e.c = 123;
            
            log(A.e.c);
            

            Mit TypeScript könnte man die Struktur aber noch besser beschreiben (was Datentypen angeht usw).

            M Offline
            M Offline
            M_aus_B
            schrieb am zuletzt editiert von
            #5

            @haus-automatisierung ah cool - das geht auf jeden Fall schon genau in die Richtung was ich meine! :)

            Was habe ich genau vor - ich will aktuell vor allem das Batterielademanagement der Speicherbatterie nach meinen Wünschen steuern. Das ist leider bei dem SMA_STP_SE-WR nicht ganz so komfortabel wie es sein könnte weil ich nicht einfach nur die "maximale Ladeleistung" der Batterie vorgeben kann. (ein entsprechendes Modbusregister gibt es zwar - das funktioniert aber leider nicht). Daher bleibt nur die Möglichkeit die Wirkleistung vorzugeben - dabei muss man dann aber dafür sorgen das zB. nicht aus dem Netz geladen wird...

            Lange Rede kurzer Sinn ;) - ich bin aktuell dabei alle möglichen Daten erstmal in einer übersichtlichen Struktur einzulesen um dann im nächsten Schritt verschiedene Berechnungen damit auszuführen.

            Das Beispiel von grade kann ich vlt noch etwas genauer darstellen:

            "WR_1.input.PVa_U = getState('modbus.0.inputRegisters.30959_PVa_U').val;"

            Kannst du mir noch erklären wie das ganze mit ts dann aussehen würde? Gibt es für diese Art der Struktur eigentlich einen speziellen Namen?

            Das ist am Anfang für mich immer ein bisschen das Problem das ich einfach oft nicht weiß was ich eigentlich genau Fragen muss um zu meiner Lösung zu kommen :thinking_face:

            Daher riesen Dank das du da sovielen "noobs" wie mir weiterhilfst! :)

            haus-automatisierungH 1 Antwort Letzte Antwort
            0
            • M M_aus_B

              @haus-automatisierung ah cool - das geht auf jeden Fall schon genau in die Richtung was ich meine! :)

              Was habe ich genau vor - ich will aktuell vor allem das Batterielademanagement der Speicherbatterie nach meinen Wünschen steuern. Das ist leider bei dem SMA_STP_SE-WR nicht ganz so komfortabel wie es sein könnte weil ich nicht einfach nur die "maximale Ladeleistung" der Batterie vorgeben kann. (ein entsprechendes Modbusregister gibt es zwar - das funktioniert aber leider nicht). Daher bleibt nur die Möglichkeit die Wirkleistung vorzugeben - dabei muss man dann aber dafür sorgen das zB. nicht aus dem Netz geladen wird...

              Lange Rede kurzer Sinn ;) - ich bin aktuell dabei alle möglichen Daten erstmal in einer übersichtlichen Struktur einzulesen um dann im nächsten Schritt verschiedene Berechnungen damit auszuführen.

              Das Beispiel von grade kann ich vlt noch etwas genauer darstellen:

              "WR_1.input.PVa_U = getState('modbus.0.inputRegisters.30959_PVa_U').val;"

              Kannst du mir noch erklären wie das ganze mit ts dann aussehen würde? Gibt es für diese Art der Struktur eigentlich einen speziellen Namen?

              Das ist am Anfang für mich immer ein bisschen das Problem das ich einfach oft nicht weiß was ich eigentlich genau Fragen muss um zu meiner Lösung zu kommen :thinking_face:

              Daher riesen Dank das du da sovielen "noobs" wie mir weiterhilfst! :)

              haus-automatisierungH Offline
              haus-automatisierungH Offline
              haus-automatisierung
              Developer Most Active
              schrieb am zuletzt editiert von
              #6

              @m_aus_b sagte in Wie kann ich in TypeScript "Variablen zusammenfassen":

              Kannst du mir noch erklären wie das ganze mit ts dann aussehen würde?

              Du gehst ganz schön viele Schritte auf einmal. Schau Dir doch erstmal die Basis JavaScript-Syntax an und löse dort dein Problem. Wenn Du damit fit bist, dann kannst Du das immer noch auf TS migrieren und die Vorteile kennenlernen.

              Ansonsten würde ich erstmal jede Menge JavaScript-Tutorials durcharbeiten (die Syntax und deine Anforderung hat ja nix mit dem ioBroker zu tun). Sonst hängst Du immer wieder.

              🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
              🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
              📚 Meine inoffizielle ioBroker Dokumentation

              M 1 Antwort Letzte Antwort
              0
              • haus-automatisierungH haus-automatisierung

                @m_aus_b sagte in Wie kann ich in TypeScript "Variablen zusammenfassen":

                Kannst du mir noch erklären wie das ganze mit ts dann aussehen würde?

                Du gehst ganz schön viele Schritte auf einmal. Schau Dir doch erstmal die Basis JavaScript-Syntax an und löse dort dein Problem. Wenn Du damit fit bist, dann kannst Du das immer noch auf TS migrieren und die Vorteile kennenlernen.

                Ansonsten würde ich erstmal jede Menge JavaScript-Tutorials durcharbeiten (die Syntax und deine Anforderung hat ja nix mit dem ioBroker zu tun). Sonst hängst Du immer wieder.

                M Offline
                M Offline
                M_aus_B
                schrieb am zuletzt editiert von
                #7

                @haus-automatisierung Ja das stimmt natürlich - ich habe mir da natürlich auch schon so einiges angeschaut. Da ich mit ST und Matlab aber schon auch so meine Erfahrungen in der Programmierung und Strukturierung von Code habe, wollte ich da soein paar Dinge mit denen ich gute Erfahrungen gemacht habe "mitnehmen".

                Wie gesagt - das Lademanagement habe ich ja aktuell mit Blockly am laufen - und das funktioniert ja auch ganz gut. Ich hab also keinen Druck das jetzt unbedingt mit ts umzusetzen. An js "stört" mich halt das hier nur eine schwache Typisierung gegeben ist und es ist schon toll was in ts zB. mit "class" so geht.

                haus-automatisierungH 1 Antwort Letzte Antwort
                0
                • M M_aus_B

                  @haus-automatisierung Ja das stimmt natürlich - ich habe mir da natürlich auch schon so einiges angeschaut. Da ich mit ST und Matlab aber schon auch so meine Erfahrungen in der Programmierung und Strukturierung von Code habe, wollte ich da soein paar Dinge mit denen ich gute Erfahrungen gemacht habe "mitnehmen".

                  Wie gesagt - das Lademanagement habe ich ja aktuell mit Blockly am laufen - und das funktioniert ja auch ganz gut. Ich hab also keinen Druck das jetzt unbedingt mit ts umzusetzen. An js "stört" mich halt das hier nur eine schwache Typisierung gegeben ist und es ist schon toll was in ts zB. mit "class" so geht.

                  haus-automatisierungH Offline
                  haus-automatisierungH Offline
                  haus-automatisierung
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #8

                  @m_aus_b sagte in Wie kann ich in TypeScript "Variablen zusammenfassen":

                  was in ts zB. mit "class" so geht.

                  Das geht in JS aber auch alles :)

                  🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                  🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                  📚 Meine inoffizielle ioBroker Dokumentation

                  M 1 Antwort Letzte Antwort
                  0
                  • haus-automatisierungH haus-automatisierung

                    @m_aus_b sagte in Wie kann ich in TypeScript "Variablen zusammenfassen":

                    was in ts zB. mit "class" so geht.

                    Das geht in JS aber auch alles :)

                    M Offline
                    M Offline
                    M_aus_B
                    schrieb am zuletzt editiert von
                    #9

                    @haus-automatisierung ja da hab ich wohl noch viel zu lernen :)

                    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

                    459

                    Online

                    32.5k

                    Benutzer

                    81.7k

                    Themen

                    1.3m

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

                    • Du hast noch kein Konto? Registrieren

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