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. Blockly
  5. Variable in ID-Namen verwenden?

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    324

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

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

Variable in ID-Namen verwenden?

Geplant Angeheftet Gesperrt Verschoben Blockly
blockly
62 Beiträge 6 Kommentatoren 7.7k Aufrufe 9 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.
  • HomoranH Homoran

    Besteht eigentlich in Blockly die Möglichkeit Zustände von IDs variabel abzufragen.
    Voraussetzung ist natürlich, dass die IDs (oder die Namen??) systematisch benannt sind.

    Ich habe für jeden Raum das gleiche Skkript und würde gerne nach dem Kopiern nur den Raumnamen in einer Variable ändern:

    Rollladensteuerung_Blockly01.png

    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von paul53
    #3

    @Homoran sagte:

    Ich habe für jeden Raum das gleiche Skkript und würde gerne nach dem Kopiern nur den Raumnamen in einer Variable ändern

    Da wirst Du wohl auf natives Javascript umsteigen müssen, denn Blockly verwendet meist Select ID zum Zuordnen von IDs. Schau Dir mal meine Skripte in Deiner Doku an, dann siehst Du, wie einfach es mit getIdByName() geht.

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    HomoranH 1 Antwort Letzte Antwort
    0
    • paul53P paul53

      @Homoran sagte:

      Ich habe für jeden Raum das gleiche Skkript und würde gerne nach dem Kopiern nur den Raumnamen in einer Variable ändern

      Da wirst Du wohl auf natives Javascript umsteigen müssen, denn Blockly verwendet meist Select ID zum Zuordnen von IDs. Schau Dir mal meine Skripte in Deiner Doku an, dann siehst Du, wie einfach es mit getIdByName() geht.

      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von Homoran
      #4

      Danke Paul!

      @paul53 sagte in Variable in ID-Namen verwenden?:

      wie einfach

      :rolling_on_the_floor_laughing:

      ich mache ja schon langsam Fortschritte.

      Das Rollladenprojekt sollte mir mal komplexere Abläufe vor die Augen führen.

      Ich habe weniger die Probleme mit dem nachvollziehen, als mit der Erstellung der richtigen Befehle und deren Syntax.

      Das ist wie bei einer Fremdsprache - verstehen geht noch, aber selber richtig sprechen ist wesentlich schwerer

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      1 Antwort Letzte Antwort
      0
      • paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #5

        Vorschlag: Erstelle das Skript für einen Raum in Blockly, kopiere das erzeugte Javascript (ohne die letzte Zeile) in ein neues Javascript und passe die IDs unter Verwendung von getIdByName() an. Nach erfolgreichem Test kannst Du dieses Skript als Kopier-Vorlage für die weiteren Räume verwenden.

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        HomoranH 1 Antwort Letzte Antwort
        1
        • paul53P paul53

          Vorschlag: Erstelle das Skript für einen Raum in Blockly, kopiere das erzeugte Javascript (ohne die letzte Zeile) in ein neues Javascript und passe die IDs unter Verwendung von getIdByName() an. Nach erfolgreichem Test kannst Du dieses Skript als Kopier-Vorlage für die weiteren Räume verwenden.

          HomoranH Nicht stören
          HomoranH Nicht stören
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von Homoran
          #6

          @paul53

          Danke!
          Das werde ich mal versuchen.

          Aber erst das Blockly für einen Raum mit allen Optionen (Fenstergriff, Urlaub, Kino...) pimpen ;-)

          Und als nächste Stufe kommt dann das iterieren in einem Skript ;-)

          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

          1 Antwort Letzte Antwort
          0
          • paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #7

            Anmerkung: Die Namen müssen für getIdByName() eindeutig sein, d.h. es darf kein weiteres Objekt mit diesem Namen existieren.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            HomoranH 1 Antwort Letzte Antwort
            0
            • paul53P paul53

              Anmerkung: Die Namen müssen für getIdByName() eindeutig sein, d.h. es darf kein weiteres Objekt mit diesem Namen existieren.

              HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von Homoran
              #8

              @paul53
              Klar - werde auch noch einiges umbenennen müssen, resp. komplett neu machen, wenn ich das Grundgerüst erweitere.
              Habe zum Beispiel bereits im Wohnzimmer die Balkon-Tür und das Fenster.
              Räume und unter WZ noch Tür und Fenster.
              Die Struktur müsste dann wieder einheitlich sein, auch wenn es nur einen Rolladen gibt müsste es dann Raum - Fenster - states sein

              Im Endeffekt soll es nur noch ein Skript werden, das diese DP nacheinander abarbeitet.
              Aber das ist Zukuunftsmusik

              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              1 Antwort Letzte Antwort
              0
              • HomoranH Homoran

                Besteht eigentlich in Blockly die Möglichkeit Zustände von IDs variabel abzufragen.
                Voraussetzung ist natürlich, dass die IDs (oder die Namen??) systematisch benannt sind.

                Ich habe für jeden Raum das gleiche Skkript und würde gerne nach dem Kopiern nur den Raumnamen in einer Variable ändern:

                Rollladensteuerung_Blockly01.png

                rantanplanR Offline
                rantanplanR Offline
                rantanplan
                schrieb am zuletzt editiert von
                #9

                @Homoran sagte in Variable in ID-Namen verwenden?:

                Besteht eigentlich in Blockly die Möglichkeit Zustände von IDs variabel abzufragen.
                Voraussetzung ist natürlich, dass die IDs (oder die Namen??) systematisch benannt sind.

                Ich habe für jeden Raum das gleiche Skkript und würde gerne nach dem Kopiern nur den Raumnamen in einer Variable ändern:

                Werte von einer ID-Variablen abfragen geht leider (noch) nicht in Blockly.
                Werte setzen/verändern aber schon.
                Ich stand vor der gleichen Problematik bei meiner Heizungssteuerung. Jede Menge Räume und alle einzeln steuerbar.
                Da die Logik in jedem Raum gleich ist und ich grundsätzlich ein "fauler Hund" bin, wollte ich die Scripte einfach kopieren.

                Damit ich nicht jedes Script komplett überarbeiten musste, habe ich eine "Initialisierung" Funktion eingebaut.
                Dort werden alle raumspezifischen Daten in lokale Variablen gesetzt. Wenn der Trigger auslöst, wird als erstes die Initialisierung aufgerufen.
                Somit habe ich nur eine Stelle an der ich die Parameter anpassen muss.
                Init_001.png

                Und hier der "schreibe" Baustein mit dem man ID's, die in einer Variablen stehen, ändern kann.
                Init_002.png

                Rantanplan

                CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                HomoranH 1 Antwort Letzte Antwort
                2
                • rantanplanR rantanplan

                  @Homoran sagte in Variable in ID-Namen verwenden?:

                  Besteht eigentlich in Blockly die Möglichkeit Zustände von IDs variabel abzufragen.
                  Voraussetzung ist natürlich, dass die IDs (oder die Namen??) systematisch benannt sind.

                  Ich habe für jeden Raum das gleiche Skkript und würde gerne nach dem Kopiern nur den Raumnamen in einer Variable ändern:

                  Werte von einer ID-Variablen abfragen geht leider (noch) nicht in Blockly.
                  Werte setzen/verändern aber schon.
                  Ich stand vor der gleichen Problematik bei meiner Heizungssteuerung. Jede Menge Räume und alle einzeln steuerbar.
                  Da die Logik in jedem Raum gleich ist und ich grundsätzlich ein "fauler Hund" bin, wollte ich die Scripte einfach kopieren.

                  Damit ich nicht jedes Script komplett überarbeiten musste, habe ich eine "Initialisierung" Funktion eingebaut.
                  Dort werden alle raumspezifischen Daten in lokale Variablen gesetzt. Wenn der Trigger auslöst, wird als erstes die Initialisierung aufgerufen.
                  Somit habe ich nur eine Stelle an der ich die Parameter anpassen muss.
                  Init_001.png

                  Und hier der "schreibe" Baustein mit dem man ID's, die in einer Variablen stehen, ändern kann.
                  Init_002.png

                  HomoranH Nicht stören
                  HomoranH Nicht stören
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von Homoran
                  #10

                  @rantanplan sagte in Variable in ID-Namen verwenden?:

                  Damit ich nicht jedes Script komplett überarbeiten musste, habe ich eine "Initialisierung" Funktion eingebaut.

                  That's it!!!!

                  So was wollte ich haben!
                  Aber auf die Idee, die GANZE Id mitzugeben bin ich nicht gekommen

                  Danke!

                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  1 Antwort Letzte Antwort
                  0
                  • rantanplanR Offline
                    rantanplanR Offline
                    rantanplan
                    schrieb am zuletzt editiert von
                    #11

                    Zitat Homoran

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    :relaxed: :relaxed: :relaxed:

                    Rantanplan

                    CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                    HomoranH 1 Antwort Letzte Antwort
                    0
                    • rantanplanR rantanplan

                      Zitat Homoran

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      :relaxed: :relaxed: :relaxed:

                      HomoranH Nicht stören
                      HomoranH Nicht stören
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von
                      #12

                      @rantanplan

                      Success!

                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                      1 Antwort Letzte Antwort
                      0
                      • paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von paul53
                        #13

                        Die Blöcke "schreibe", "binde direct_oid_src" und "Falls Objekt" sind die einzigen Blöcke, an die die Datenpunkt-ID auch als String übergeben werden kann. Es fehlt ein entsprechender Block zum Einlesen (getState()).
                        So etwas ist in Blockly möglich:
                        Blockly_Trigger_getIdByName.JPG
                        Die Javascript-Funktion ist ganz einfach:

                        return getIdByName(name);
                        

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        rantanplanR 2 Antworten Letzte Antwort
                        0
                        • paul53P paul53

                          Die Blöcke "schreibe", "binde direct_oid_src" und "Falls Objekt" sind die einzigen Blöcke, an die die Datenpunkt-ID auch als String übergeben werden kann. Es fehlt ein entsprechender Block zum Einlesen (getState()).
                          So etwas ist in Blockly möglich:
                          Blockly_Trigger_getIdByName.JPG
                          Die Javascript-Funktion ist ganz einfach:

                          return getIdByName(name);
                          
                          rantanplanR Offline
                          rantanplanR Offline
                          rantanplan
                          schrieb am zuletzt editiert von
                          #14

                          @paul53 sagte in Variable in ID-Namen verwenden?:

                          ..... Es fehlt ein entsprechender Block zum Einlesen (getState()).

                          Ja, den hätte ich ja auch gerne. Ein issue dazu ist aber mal "abgeblockt" worden.
                          issue 154

                          Rantanplan

                          CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                          HomoranH 1 Antwort Letzte Antwort
                          0
                          • rantanplanR rantanplan

                            @paul53 sagte in Variable in ID-Namen verwenden?:

                            ..... Es fehlt ein entsprechender Block zum Einlesen (getState()).

                            Ja, den hätte ich ja auch gerne. Ein issue dazu ist aber mal "abgeblockt" worden.
                            issue 154

                            HomoranH Nicht stören
                            HomoranH Nicht stören
                            Homoran
                            Global Moderator Administrators
                            schrieb am zuletzt editiert von
                            #15

                            @rantanplan
                            Das Issue ist noch offen - ich schreib da mal was rein ;-)

                            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                            1 Antwort Letzte Antwort
                            0
                            • paul53P paul53

                              Die Blöcke "schreibe", "binde direct_oid_src" und "Falls Objekt" sind die einzigen Blöcke, an die die Datenpunkt-ID auch als String übergeben werden kann. Es fehlt ein entsprechender Block zum Einlesen (getState()).
                              So etwas ist in Blockly möglich:
                              Blockly_Trigger_getIdByName.JPG
                              Die Javascript-Funktion ist ganz einfach:

                              return getIdByName(name);
                              
                              rantanplanR Offline
                              rantanplanR Offline
                              rantanplan
                              schrieb am zuletzt editiert von
                              #16

                              @paul53 sagte in Variable in ID-Namen verwenden?:

                              So etwas ist in Blockly möglich:

                              Grundsächlich eine gute Idee.

                              Viel, viel schöner wäre es aber hier.
                              Wert.png
                              Dies würde vieles vereinfachen.

                              Diesem Baustein konnte ich seine Funktion noch nicht entlocken.
                              attribut.png

                              Ich hatte gehofft damit geht es. Produziere aber nur Errors.

                              Rantanplan

                              CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                              paul53P 1 Antwort Letzte Antwort
                              0
                              • rantanplanR rantanplan

                                @paul53 sagte in Variable in ID-Namen verwenden?:

                                So etwas ist in Blockly möglich:

                                Grundsächlich eine gute Idee.

                                Viel, viel schöner wäre es aber hier.
                                Wert.png
                                Dies würde vieles vereinfachen.

                                Diesem Baustein konnte ich seine Funktion noch nicht entlocken.
                                attribut.png

                                Ich hatte gehofft damit geht es. Produziere aber nur Errors.

                                paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von
                                #17

                                @rantanplan sagte:

                                Diesem Baustein konnte ich seine Funktion noch nicht entlocken.

                                Wo hast Du den gefunden ? Ich finde den Block nicht (Version 3.6.4).

                                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                rantanplanR 1 Antwort Letzte Antwort
                                0
                                • thewhoboxT Offline
                                  thewhoboxT Offline
                                  thewhobox
                                  schrieb am zuletzt editiert von
                                  #18

                                  Wenn ich das richtig verstanden habe, dann bräuchtet Ihr einen Block so wie hier?
                                  164b5008-4b6e-4cd9-a0f6-caa48324806d-grafik.png
                                  (Hab ich mal manuell hinzugefügt, noch ohne Funktion)

                                  Meine Adapter: emby | discovery
                                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                  rantanplanR 1 Antwort Letzte Antwort
                                  0
                                  • paul53P paul53

                                    @rantanplan sagte:

                                    Diesem Baustein konnte ich seine Funktion noch nicht entlocken.

                                    Wo hast Du den gefunden ? Ich finde den Block nicht (Version 3.6.4).

                                    rantanplanR Offline
                                    rantanplanR Offline
                                    rantanplan
                                    schrieb am zuletzt editiert von
                                    #19

                                    @paul53 sagte in Variable in ID-Namen verwenden?:

                                    @rantanplan sagte:

                                    Diesem Baustein konnte ich seine Funktion noch nicht entlocken.

                                    Wo hast Du den gefunden ? Ich finde den Block nicht (Version 3.6.4).

                                    Ich teste gerade die 4.1.7. Ist irgend wann bei 4.x.x aufgetaucht.

                                    Rantanplan

                                    CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                                    1 Antwort Letzte Antwort
                                    0
                                    • thewhoboxT thewhobox

                                      Wenn ich das richtig verstanden habe, dann bräuchtet Ihr einen Block so wie hier?
                                      164b5008-4b6e-4cd9-a0f6-caa48324806d-grafik.png
                                      (Hab ich mal manuell hinzugefügt, noch ohne Funktion)

                                      rantanplanR Offline
                                      rantanplanR Offline
                                      rantanplan
                                      schrieb am zuletzt editiert von
                                      #20

                                      @thewhobox sagte in Variable in ID-Namen verwenden?:

                                      Wenn ich das richtig verstanden habe, dann bräuchtet Ihr einen Block so wie hier?
                                      164b5008-4b6e-4cd9-a0f6-caa48324806d-grafik.png
                                      (Hab ich mal manuell hinzugefügt, noch ohne Funktion)

                                      Jepp.

                                      Rantanplan

                                      CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                                      1 Antwort Letzte Antwort
                                      0
                                      • thewhoboxT Offline
                                        thewhoboxT Offline
                                        thewhobox
                                        schrieb am zuletzt editiert von thewhobox
                                        #21

                                        Okay, falls ich es zum laufen bringe soll ich dann ein Pull Request auf Github für ioBroker.javascript machen?
                                        @apollon77

                                        Oder lieber den Code hier posten damit es jeder selbst hinzufügen kann?

                                        @paul53 Ist die funktion getIdByName() global oder von dir selbst erstellt. Ansonsten könnte man dafür auch ein eigenes Block-Element erstellen.

                                        Meine Adapter: emby | discovery
                                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                        rantanplanR paul53P 2 Antworten Letzte Antwort
                                        0
                                        • thewhoboxT thewhobox

                                          Okay, falls ich es zum laufen bringe soll ich dann ein Pull Request auf Github für ioBroker.javascript machen?
                                          @apollon77

                                          Oder lieber den Code hier posten damit es jeder selbst hinzufügen kann?

                                          @paul53 Ist die funktion getIdByName() global oder von dir selbst erstellt. Ansonsten könnte man dafür auch ein eigenes Block-Element erstellen.

                                          rantanplanR Offline
                                          rantanplanR Offline
                                          rantanplan
                                          schrieb am zuletzt editiert von
                                          #22

                                          @thewhobox sagte in Variable in ID-Namen verwenden?:

                                          Okay, falls ich es zum laufen bringe

                                          Ein bisschen mehr Optimismus:relaxed:

                                          soll ich dann ein Pull Request auf Github für ioBroker.javascript machen?

                                          Wäre, glaub ich, der richtige Weg

                                          Kann man auch noch andere Baustein-Wünsche an Dich richten?
                                          (Vooorsicht mit der Antwort:relaxed: :relaxed: :relaxed: )

                                          Rantanplan

                                          CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                                          thewhoboxT 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

                                          619

                                          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