Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Auf Parameter des Parent Blocks zugreifen

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Auf Parameter des Parent Blocks zugreifen

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      AxelRHD2.0 last edited by AxelRHD2.0

      Es gibt Blöcke, welche einen Parameter erzeugen wie zum Beispiel:

      b8479f9e-f818-4c40-985c-9b8c6977839b-image.png

      getState('ID auswählen', async (err, state) => {
        let value = state.val;
      });
      

      oder
      12581015-aa2a-483a-8fac-07aaad3fe1a7-image.png

      getObjectAsync('ID auswählen').then(async (obj) => {
      });
      

      Mit welchen Blöcken kann ich hinterher auf die Variable value oder den Parameter obj zugreifen? Ich finde einfach nichts passendes.

      Danke & Gruß
      AXEL

      paul53 haus-automatisierung 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @AxelRHD2.0 last edited by paul53

        @axelrhd2-0 sagte: Mit welchen Blöcken kann ich hinterher auf die Variable value oder den Parameter obj zugreifen?

        Die Variablen gibt es nicht als vordefinierten Variablen-Block. Man muss sie mit identischem Bezeichner selbst erstellen.

        Blockly_temp.JPG

        ... wobei value ungünstig gewählt ist, denn das Ergebnis kann alles Mögliche enthalten.

        A 1 Reply Last reply Reply Quote 0
        • A
          AxelRHD2.0 @paul53 last edited by

          @paul53 sagte in Auf Paramter des Parent Blocks zugreifen:

          @axelrhd2-0 sagte: Mit welchen Blöcken kann ich hinterher auf die Variable value oder den Parameter obj zugreifen?

          Die Variablen gibt es nicht als vordefinierten Variablen-Block. Man muss sie mit identischem Bezeichner selbst erstellen.

          Blockly_temp.JPG

          ... wobei value ungünstig gewählt ist, denn das Ergebnis kann alles Mögliche enthalten.

          Danke für die schnelle Antwort. Ähnliches hatte ich auch schon im Sinn, aber Bedenken wegen dem Scoping. Habe jetzt zwei Wert vom Objekt ID angelegt und es funktioniert. Eigentlich auch klar, denn die Variablen werden mit let value auf Funktionsebene neu definiert.

          Gibt es andere sinnvolle Möglichkeiten, ein Objekt 'weiter oben' zu definieren und es in den untergeordneten Blocks zu vewenden?

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @AxelRHD2.0 last edited by paul53

            @axelrhd2-0 sagte: Gibt es andere sinnvolle Möglichkeiten, ein Objekt 'weiter oben' zu definieren und es in den untergeordneten Blocks zu vewenden?

            Was meinst du (Beispiel)?

            @axelrhd2-0 sagte in Auf Paramter des Parent Blocks zugreifen:

            Bedenken wegen dem Scoping.

            Lokale Variablen, wozu auch Funktionsparameter gehören, haben Vorrang vor globalen Variablen.

            1 Reply Last reply Reply Quote 0
            • haus-automatisierung
              haus-automatisierung Developer Most Active @AxelRHD2.0 last edited by

              @axelrhd2-0 Ich weiß ehrlich gesagt selbst nicht, warum es diese Blöcke überhaupt gibt (sind schon seit Jahren drin). Diese haben ja keine Vorteile gegenüber der "synchronen" Variante.

              In welchem Fall möchtest Du diese nutzen und weshalb?

              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @haus-automatisierung last edited by paul53

                @haus-automatisierung sagte: Diese haben ja keine Vorteile gegenüber der "synchronen" Variante.

                Außer den, dass sie nicht auf die Puffer der Javascript-Instanz angewiesen sind. Bei Blockly sehe ich darin allerdings auch keinen Sinn.
                Ob diese Blöcke wohl jemals verwendet wurden?

                A 1 Reply Last reply Reply Quote 0
                • A
                  AxelRHD2.0 @paul53 last edited by

                  @haus-automatisierung und @haus-automatisierung , der Hintergrund ist, dass ich stinkfaul bin... 😄

                  Wenn ich eine große Logik mit vielen Blöcken für z. B. einen bestimmten Raum aufgebaut habe und diesen danach auf den nächsten Raum kopiere, muss ich manuell alle Objekt IDs wieder ändern. Ich programmiere viel in Go, JS bekomme ich auch gerade noch so hin, aber ich mag einfach die übersichtliche Blockly Darstellung. Das kann ich dann auch noch nach einem halben Jahr oder länger schnell wieder erfassen. Aber wenn ich es richtig verstehe, schweben die einzelnen Datenpunkte bei ioBroker im freien Raum und sind nicht in hierarchische Objekte eingebetet (außer der ID in Textform, welche ja wie eine Objektnotation aussieht). Somit ist mein Gedanke wahrscheinlich gar nicht umsetzbar.

                  haus-automatisierung paul53 2 Replies Last reply Reply Quote 0
                  • haus-automatisierung
                    haus-automatisierung Developer Most Active @AxelRHD2.0 last edited by

                    @axelrhd2-0 sagte in Auf Paramter des Parent Blocks zugreifen:

                    Wenn ich eine große Logik mit vielen Blöcken für z. B. einen bestimmten Raum aufgebaut habe und diesen danach auf den nächsten Raum kopiere, muss ich manuell alle Objekt IDs wieder ändern

                    Ja gut, das musst man wohl machen 🙂 Sonst nimm doch diesen Block:

                    Screenshot 2024-06-05 at 13.18.12.png

                    1 Reply Last reply Reply Quote 1
                    • paul53
                      paul53 @AxelRHD2.0 last edited by paul53

                      @axelrhd2-0 sagte: diesen danach auf den nächsten Raum kopiere, muss ich manuell alle Objekt IDs wieder ändern.

                      Man kann auch IDs als Text konstruieren. Mit sinnvoller ID-Struktur unter "alias.0" und "0_userdata.0" lässt sich dann der Raum leicht (an einer Stelle) ändern.
                      Beispiel:

                      Blockly_temp.JPG

                      A 2 Replies Last reply Reply Quote 1
                      • A
                        AxelRHD2.0 @paul53 last edited by

                        Danke euch beiden. Das hilft mir sehr weiter!

                        1 Reply Last reply Reply Quote 0
                        • A
                          AxelRHD2.0 @paul53 last edited by

                          @paul53 sagte in Auf Paramter des Parent Blocks zugreifen:

                          @axelrhd2-0 sagte: diesen danach auf den nächsten Raum kopiere, muss ich manuell alle Objekt IDs wieder ändern.

                          Man kann auch IDs als Text konstruieren. Mit sinnvoller ID-Struktur unter "alias.0" und "0_userdata.0" lässt sich dann der Raum leicht (an einer Stelle) ändern.
                          Beispiel:

                          Blockly_temp.JPG

                          Dafür müsste dann aber jeder Raum in ein eigenes Script, oder? Denn hier werden globale Variablen verändert.

                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @AxelRHD2.0 last edited by paul53

                            @axelrhd2-0 sagte: Dafür müsste dann aber jeder Raum in ein eigenes Script, oder?

                            Ja. Das macht es übersichtlich.
                            Export des getesteten Skriptes, Import in neues Skript und Raum ändern. Das wars.

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            738
                            Online

                            32.0k
                            Users

                            80.4k
                            Topics

                            1.3m
                            Posts

                            blockly javascript
                            3
                            12
                            223
                            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