Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. 1 DP von mehreren wird nicht aktualisiert [gelöst]

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    1 DP von mehreren wird nicht aktualisiert [gelöst]

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

      @devdracon sagte: warum das nicht funktioniert?

      • Wert kann nur bei Einzel-Trigger verwendet werden.
      • Man kann keinen Datenpunkt einlesen unmittelbar nachdem er geschrieben wurde (asynchrone Abarbeitung von "aktualisiere")

      Besser mit zwei getrennten Triggern:

      Bild_2022-12-07_120049504.png

      Codierknecht 1 Reply Last reply Reply Quote 1
      • devdracon
        devdracon @devdracon last edited by devdracon

        so funktioniert das jetzt, wie es soll:

        das nachfolgende Blockly ist falsch, nachfolgende Posts beachten!

        Bildschirm­foto 2022-12-07 um 12.12.34.png

        Danke an alle die sich beteiligt haben!

        paul53 2 Replies Last reply Reply Quote 0
        • paul53
          paul53 @devdracon last edited by paul53

          @devdracon sagte: so funktioniert das jetzt, wie es soll

          Nein, die beiden Variablen enthalten stets den identischen Wert!
          Außerdem wird ein Objekt mit einem String verglichen.

          devdracon 1 Reply Last reply Reply Quote 0
          • Codierknecht
            Codierknecht Developer Most Active @paul53 last edited by

            @paul53 sagte in 1 DP von mehreren wird nicht aktualisiert:

            Wert kann nur bei Einzel-Trigger verwendet werden.

            Sicher?
            Die einzelnen Objekte werden doch nur für das Abonnieren des Events benötigt.
            Bei Auslösung ist obj vorhanden - und das ist das jeweils auslösende Objekt, für das auch der Wert ermittelt werden kann.

            on({id: [].concat(['0_userdata.0.xxx']).concat(['0_userdata.0.Anwesenheit.yyy']), change: "ne"}, async function (obj) {
            });
            

            Funktioniert bei mir jedenfalls bisher einwandfrei 😉

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

              @codierknecht sagte: Sicher?

              Ja, zumindest dann, wenn der Wert des Trigger-Datenpunktes zu weiteren Berechnungen verwendet wird. Man kann nicht unterscheiden, von welchem Datenpunkt Wert kommt.

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

                @paul53 kannst du das näher erläutern? ich sehe den fehler nicht

                paul53 Codierknecht 2 Replies Last reply Reply Quote 0
                • paul53
                  paul53 @devdracon last edited by paul53

                  @devdracon sagte: kannst du das näher erläutern?

                  Habe ich bereits:

                  @paul53 sagte in 1 DP von mehreren wird nicht aktualisiert [gelöst]:

                  die beiden Variablen enthalten stets den identischen Wert!

                  Es wird nicht unterschieden, von welchem Datenpunkt Wert stammt. Oder anders: Die Variable Wert wird mit identischem Wert auf zwei Variablen aufgeteilt.

                  Codierknecht devdracon 2 Replies Last reply Reply Quote 0
                  • Codierknecht
                    Codierknecht Developer Most Active @paul53 last edited by

                    @paul53
                    Ich habe da mal was zusammengeklöppelt.
                    Je nachdem welches Objekt verändert wird, erhalte ich schon den korrekten Wert.
                    Was nicht geht, ist das Ermitteln des Gerätenamens usw.

                    639473af-23e6-4872-b689-d8a7cc50e54f-image.png

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

                      @paul53 verstehe. ich habe mir den inhalt der Variablen in ein debug schreiben lassen - du hast recht. wie würde ich das korrekt ändern müssen?

                      s.u. ,denke ich. Post war nahezu zeitgleich

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

                        @codierknecht sagte: Je nachdem welches Objekt verändert wird, erhalte ich schon den korrekten Wert.

                        Ja, aber man weiß nicht, zu wem er gehört, es sein denn, man wertet zusätzlich die ID aus, etwa so:

                        Bild_2022-12-07_123142350.png

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

                          @devdracon sagte: wie würde ich das korrekt ändern müssen?

                          Wie hier gezeigt.

                          1 Reply Last reply Reply Quote 0
                          • Codierknecht
                            Codierknecht Developer Most Active @devdracon last edited by

                            @devdracon
                            Mach das was @paul53 vorgeschlagen hat: Verwende für jedes Deiner 2 Objekte einen separaten Trigger.
                            Du triggerst auf 2 Objekte und musst die in der Ereignisbehandlung wieder unterscheiden.
                            Das wird extrem unübersichtlich!

                            08c2cddf-56b1-4671-96b8-4f9fb01b2beb-image.png

                            1 Reply Last reply Reply Quote 0
                            • Codierknecht
                              Codierknecht Developer Most Active @paul53 last edited by

                              @paul53 sagte in 1 DP von mehreren wird nicht aktualisiert [gelöst]:

                              Ja, aber man weiß nicht, zu wem er gehört ...

                              Das ist natürlich korrekt.
                              Dann habe ich Dich lediglich falsch verstanden.

                              es sein denn, man wertet zusätzlich die ID aus, etwa so

                              Und das ist wieder unnötiger Aufwand.

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

                                @codierknecht sagte: Und das ist wieder unnötiger Aufwand.

                                Deshalb besser zwei getrennte Trigger.

                                Codierknecht 1 Reply Last reply Reply Quote 0
                                • Codierknecht
                                  Codierknecht Developer Most Active @paul53 last edited by Codierknecht

                                  @paul53 sagte in 1 DP von mehreren wird nicht aktualisiert [gelöst]:

                                  Deshalb besser zwei getrennte Trigger.

                                  Und damit wären wir wieder bei meinem Lieblingsthema: CleanCode und "Separation of concerns"
                                  https://clean-code-developer.de/die-grade/orangener-grad/#Separation_of_Concerns_SoC
                                  Wenn man "Klasse" mit "Trigger" ersetzt, gilt auch:
                                  https://clean-code-developer.de/die-grade/orangener-grad/#Single_Responsibility_Principle_SRP

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

                                    @devdracon sagte: das nachfolgende Blockly ist falsch

                                    Wie sieht die Änderung aus?

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

                                      @paul53 ...das ist das geänderte Blockly:

                                      Bildschirm­foto 2022-12-08 um 09.35.16.png

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      713
                                      Online

                                      32.0k
                                      Users

                                      80.5k
                                      Topics

                                      1.3m
                                      Posts

                                      4
                                      23
                                      494
                                      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