Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Schreibzugriff auf (Objekt-)Attribute in Blockly

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Schreibzugriff auf (Objekt-)Attribute in Blockly

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @legro last edited by

      @legro sagte: schreibend auf den im Adressfeld (als String) gespeicherten Datenpunkt mittels Blockly schreibend zugreifen kann

      Das geht mit dem Block "schreibe".

      @legro sagte in Schreibzugriff auf (Objekt-)Attribute in Blockly:

      Rollladen in Gruppen verwalten.

      Dafür sind in ioBroker die Aufzählungen gedacht. Eine Aufzählung enthält die zugewiesenen IDs in common.members. Der $Selektor kann zur Auswahl der IDs einer Aufzählung dienen.

      L 1 Reply Last reply Reply Quote 0
      • L
        legro @paul53 last edited by legro

        @paul53

        Vielen Dank für deine Unterstützung.

        Ich kann nur vermuten, dass du ggf. diesen Block meinst ..
        e89b3a43-7bac-48b3-91ad-f98118894bce-image.png

        Aber wie gebe ich hier die Zieladresse ein? Datenpunkt des Aktors liegt mir doch nur als String vor.

        Die Aufzählungen aus Blockly möchte ich aus zwei Gründen nicht verwenden. Zum einen möchte ich mich endlich in JavaScript vertiefen, zum anderen fehlt mir in den Aufzählungen die Möglichkeit einzelne Objekte hinzuzufügen oder zu löschen - oder habe ich die bloß nicht gefunden?

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

          @legro sagte: wie gebe ich hier die Zieladresse ein?

          Blockly_temp.JPG

          @legro sagte in Schreibzugriff auf (Objekt-)Attribute in Blockly:

          Möglichkeit einzelne Objekte hinzuzufügen oder zu löschen - oder habe ich die bloß nicht gefunden?

          Die Funktionen zum Verändern (setObject) in "enum.functions.rollos" unter common.members liefert der Javascript-Adapter.

          const idEnum = 'enum.functions.rollos';
          const obj = getObject(idEnum);
          const members = obj.common.members; // Array mit IDs
          // Hinzufügen oder löschen von IDs in members
          setObject(idEnum, obj);
          
          L 1 Reply Last reply Reply Quote 0
          • L
            legro @paul53 last edited by legro

            @paul53

            Wie ich oben schrieb: Ich möchte zum Üben dieses Projekt in der skizzierten Weise durchziehen.

            Mithin habe ich bloß die eine Frage: Könnte man auf das Attribut „objAddr“ eines Rollladen-Objektes schreibend zugreifen?

            So sieht meine Test-View aus. Mit den +/- Buttons kann man Rollladen in die Gruppen hinzufügen oder löschen.

            c271c2e1-3c8f-45c2-b2b8-a9068b70115d-image.png

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

              @legro sagte: auf das Attribut „objAddr“ eines Rollladen-Objektes schreibend zugreifen?

              Blockly_temp.JPG

              Neues Objekt (wie im ersten Beitrag gezeigt):

              Blockly_temp.JPG

              Diese Blöcke stehen seit JS-Version 7.9.0 zur Verfügung.

              L 1 Reply Last reply Reply Quote 0
              • L
                legro @paul53 last edited by

                @paul53

                Erst einmal: Vielen Dank für deine tatkräftige Unterstützung!

                Wenn ich dich und das Ganze richtig verstanden habe, sollte ich mein Ziel doch auch (noch) kürzer erreichen, indem ich ..

                99ab0016-5024-4df0-8907-9a9a825a1aba-image.png

                .. kodiere. Der Datenpunkt Grp01_Position_01 enthält den Wert, den ich in den Datenpunkt objAddr schreiben möchte.

                Oder liege ich (mal wieder voll) daneben?

                Ich stelle mir das Ganze wie folgt vor ..

                Der rechte Block liefert an den linken Block die Adresse des zu steuernden Datenpunktes des Rollladens, die im Attribut objAddr des Rollladen-Objektes enthalten ist. Der linke Block sorgt nun dafür, dass der Wert aus dem Datenpunkt Grp01_Position_01 in den Datenpunkt des Rollladens geschrieben wird.

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

                  @legro sagte: Grp01_Position_01 enthält den Wert, den ich in den Datenpunkt objAddr schreiben möchte.

                  Passt so.

                  L 1 Reply Last reply Reply Quote 0
                  • L
                    legro @paul53 last edited by legro

                    @paul53 sagte in Schreibzugriff auf (Objekt-)Attribute in Blockly:

                    Passt so.

                    Langsam verstehe ich nun doch das Ganze.😊 Nach vier Jahren wurde es höchste Zeit, dass ich endlich einmal mit JavaScript beginne. Blockly ist ja für den Einstieg schon eine feine Sache, aber man kommt doch schnell an dessen Grenzen.

                    Nun bitte nochmals zu den Kodierungen. Sind meine Vorstellungen richtig, wenn ich davon ausgehe, dass in deinem Vorschlag ..

                    • .. der erste (grüne) Block den Wert des Attributs des Objektes neu schreibt/füllt.
                    • .. der zweite (grüne) Block einen Datenpunkt im Objektbaum anlegt mit der Bezeichnung aus der Variable name.
                    • .. mein Lösungsvorschlag einen nur temporär existierenden Datenpunkt (ohne Bezeichnung) erzeugt, der nach dem Schreibvorgang wieder gelöscht wird.

                    Wo finde ich diese grünen Blöcke?

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

                      @legro sagte: der erste (grüne) Block den Wert des Attributs des Objektes neu schreibt/füllt.

                      Ja, ein existierender Wert wird überschrieben, ein nicht existierendes Attribut des Javascript-Objektes wird erzeugt.

                      @legro sagte in Schreibzugriff auf (Objekt-)Attribute in Blockly:

                      der zweite (grüne) Block einen Datenpunkt im Objektbaum anlegt mit der Bezeichnung aus der Variable name.

                      Nein: Es handelt sich um ein Javascript-Objekt, das erzeugt wird in der Form

                      var obj = {
                          objAddr: 'Objekt-ID',
                          Name: 'Objekt-Name'
                      };
                      

                      Das hat nichts mit ioBroker-Objekten zu tun!

                      @legro sagte in Schreibzugriff auf (Objekt-)Attribute in Blockly:

                      mein Lösungsvorschlag einen nur temporär existierenden Datenpunkt (ohne Bezeichnung) erzeugt, der nach dem Schreibvorgang wieder gelöscht wird.

                      Es wird kein Datenpunkt erzeugt, sondern in einen Datenpunkt geschrieben, der bereits existieren muss.

                      @legro sagte in Schreibzugriff auf (Objekt-)Attribute in Blockly:

                      Wo finde ich diese grünen Blöcke?

                      Bei mir sind sie hellbraun und erst ab Javascript-Version 7.9.0 verfügbar (ich nutze Version 8.3.0).

                      Blockly_Objekte.JPG

                      L 1 Reply Last reply Reply Quote 1
                      • L
                        legro @paul53 last edited by legro

                        @paul53

                        Da habe ich ja richtig Glück gehabt, dass ich in dir einen sehr guten Kenner von ioBroker und JavaScript angetroffen habe.👍

                        Ich habe die letzte Version aus dem stable repository 7.8.0. Hierin sind diese Blöcke (noch) nicht vorhanden. Es fehlt in dieser Version das gesamte Register Objekte.

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

                          @legro sagte: Es fehlt in dieser Version das gesamte Register Objekte.

                          Ja, 7.9.0 > 7.8.0.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate
                          FAQ Cloud / IOT
                          HowTo: Node.js-Update
                          HowTo: Backup/Restore
                          Downloads
                          BLOG

                          485
                          Online

                          31.9k
                          Users

                          80.3k
                          Topics

                          1.3m
                          Posts

                          2
                          12
                          516
                          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