Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Programmablauf in Blockly sequenziell oder parallel?

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Programmablauf in Blockly sequenziell oder parallel?

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

      @martinp said in Programmablauf in Blockly sequenziell oder parallel?:

      Wieso nutzt Du überhaupt zwei Trigger auf denselben Datenpunkt?

      Das ist eine gute Frage, ist historisch so gewachsen. Hab's tatsächlich nicht gemerkt. Ist jetzt geändert, Danke!

      Habe jetzt die Zählerauswertung und PV Auswertung in ein Blockly eingefügt (deshalb mal "steuere" und mal "aktualisiere") was denkst Du klappt das so, dass erst der Zähler ausgewertet wird und dann die Berechnung läuft? Ich wollte die Berechnung nicht nach Verbrauch triggern, dann dann aktualisiert es sich dauernd. Der Trigger nach dem Zählerstand, ist da etwas langsamer.

      ![0_1730197386581_chrome_X3a3Suoqjv.png](Uploading 0%)

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

        Internet war kurz weg, jetzt ist alles was ich zuvor geschrieben habe weg. 😢

        Konvertiert, habe ich nur für alle Fälle, falls die Werte nicht als Zahl kommen. Kann man eigentlich weg lassen. Variable wollte ich nicht nutzen, da dann diese nur im Skript intern verwendbar ist und der Wert von Zwischenergebnis (mit meinen Kenntnissen) nicht sichtbar ist.

        Habe jetzt zwei Skripte zusammengefügt und den doppelten Trigger gelöscht. Die Berechnung möchte ich dennoch nicht nach aktuellem Zählerwert starten, sondern nach Zählerstand. Das ist deutlich seltener als der aktuelle Verbrauch.

        Melde mich wieder wenn Internet sich stabilisiert hat.

        Codierknecht 1 Reply Last reply Reply Quote 0
        • A
          AXMLM last edited by

          Internet war kurz weg, jetzt ist alles was ich zuvor geschrieben habe weg. 😢

          Konvertiert, habe ich nur für alle Fälle, falls die Werte nicht als Zahl kommen. Kann man eigentlich weg lassen. Variable wollte ich nicht nutzen, da dann diese nur im Skript intern verwendbar ist und der Wert von Zwischenergebnis (mit meinen Kenntnissen) nicht sichtbar ist.

          Habe jetzt zwei Skripte zusammengefügt und den doppelten Trigger gelöscht. Die Berechnung möchte ich dennoch nicht nach aktuellem Zählerwert starten, sondern nach Zählerstand. Das ist deutlich seltener als der aktuelle Verbrauch.

          Melde mich wieder wenn Internet sich stabilisiert hat.

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

            @axmlm sagte in Programmablauf in Blockly sequenziell oder parallel?:

            der Wert von Zwischenergebnis (mit meinen Kenntnissen) nicht sichtbar ist

            fdc2c0a6-512d-4977-af3e-58b2f91aec67-image.png
            Oder etwas ausführlicher:

            cb6e348b-d2b6-4761-a174-f32d48539a1b-image.png

            Für sowas Datenpunkte zu verbraten ist ineffizient.
            Es sei denn, man braucht die an anderer Stelle wirklich mal.

            1 Reply Last reply Reply Quote 1
            • A
              AXMLM last edited by

              oh je, jetzt sind 2 Posts doppelt und einer unvollständig.

              1 Reply Last reply Reply Quote 0
              • A
                AXMLM last edited by AXMLM

                So, jetzt mit dem Screenshot:

                Konvertiert, habe ich nur für alle Fälle, falls die Werte nicht als Zahl kommen. Kann man eigentlich weg lassen. Variable wollte ich nicht nutzen, da dann diese nur im Skript intern verwendbar ist und der Wert von Zwischenergebnis (mit meinen Kenntnissen) nicht sichtbar ist.

                Habe jetzt zwei Skripte zusammengefügt und den doppelten Trigger gelöscht. Die Berechnung möchte ich dennoch nicht nach aktuellem Zählerwert starten, sondern nach Zählerstand. Das ist deutlich seltener als der aktuelle Verbrauch.

                auch habe ich Zählerauswertung und PV-Berechnungen in einen Skript reinkopiert. Deshalb der Mix aus "steuere" und "aktualisiere". Steuere hat bei der Zählerauswerrtung nicht funktioniert.

                chrome_X3a3Suoqjv.png

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

                  @axmlm sagte in Programmablauf in Blockly sequenziell oder parallel?:

                  Deshalb der Mix aus "steuere" und "aktualisiere". Steuere hat bei der Berechnung nicht funktioniert.

                  Das ergibt keinen Sinn und kann nicht sein. Du weißt schon wie ioBroker arbeitet und was es mit dem „bestätigt“-Flag auf sich hat?

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

                    @haus-automatisierung said in Programmablauf in Blockly sequenziell oder parallel?:

                    @axmlm sagte in Programmablauf in Blockly sequenziell oder parallel?:

                    Deshalb der Mix aus "steuere" und "aktualisiere". Steuere hat bei der Berechnung nicht funktioniert.

                    Das ergibt keinen Sinn und kann nicht sein. Du weißt schon wie ioBroker arbeitet und was es mit dem „bestätigt“-Flag auf sich hat?

                    Das weiß ich tatsächlich nicht. Fakt ist, das Steuere nicht funktioniert hat, und aktualisiere schon. Bin natürlich bei der Recherche auf "Flags" und "betätigt" gestoßen, habe es aber nicht verstanden.

                    EDIT: habe mein Post oben aktualisiert Steuere hat bei Auswertung des Zählers nicht funktioniert.

                    Homoran haus-automatisierung A 3 Replies Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @AXMLM last edited by

                      @axmlm aktualisieren schreibt den Wert (in eigene Datenpunkte) bestätigt.
                      Damit ist alles fertig.

                      steuere schreibt den Wert unbestätigt.
                      Das sagt dem Adapter der das Gerät steuert, dass es was zu tun gibt.
                      Wenn der mit der Steuerung fertig ist, setzt er drn Flag auf bestätigt.
                      Damit ist alles fertig

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

                        @axmlm sagte in Programmablauf in Blockly sequenziell oder parallel?:

                        Fakt ist, das Steuere nicht funktioniert hat, und aktualisiere schon.

                        Fakt ist, dass beide Trigger auf "egal" stehen und somit die Logik in jedem Fall ausgeführt wird.

                        Ist das nicht so, bitte ich um eine genaue Fehlerbeschreibung mit einem reproduzierbaren Beispiel, damit das gelöst werden kann.

                        1 Reply Last reply Reply Quote 0
                        • A
                          AXMLM @Homoran last edited by

                          @homoran said in Programmablauf in Blockly sequenziell oder parallel?:

                          @axmlm aktualisieren schreibt den Wert (in eigene Datenpunkte) bestätigt.
                          Damit ist alles fertig.

                          steuere schreibt den Wert unbestätigt.
                          Das sagt dem Adapter der das Gerät steuert, dass es was zu tun gibt.
                          Wenn der mit der Steuerung fertig ist, setzt er drn Flag auf bestätigt.
                          Damit ist alles fertig

                          Danke für die Erklärung, diese habe ich schon bei der Erstellung von meinem Skript so gelesen und nicht verstanden. Habe sie jetzt langsam gelesen, aber sorry verstanden habe ich es immer noch nicht. Bzw. den Sinn dieser Unterscheidung.

                          Bin aus der Mechaniker Ecke. Wenn Schraube fest ist, ist sie fest. Ich brauche keine Rückmeldung von der Schraube dass der Drehmomentschlüssel geklickt hat. Mir reicht, dass der Drehmomentschlüssel klickt. In der Programmierung ist es etwas anders, dort ist man viel detaillierter in den Schritten und prüft vieles nach.

                          Homoran 1 Reply Last reply Reply Quote 0
                          • A
                            AXMLM @AXMLM last edited by

                            @axmlm said in Programmablauf in Blockly sequenziell oder parallel?:

                            @haus-automatisierung said in Programmablauf in Blockly sequenziell oder parallel?:

                            @axmlm sagte in Programmablauf in Blockly sequenziell oder parallel?:

                            Deshalb der Mix aus "steuere" und "aktualisiere". Steuere hat bei der Berechnung nicht funktioniert.

                            Das ergibt keinen Sinn und kann nicht sein. Du weißt schon wie ioBroker arbeitet und was es mit dem „bestätigt“-Flag auf sich hat?

                            Das weiß ich tatsächlich nicht. Fakt ist, das Steuere nicht funktioniert hat, und aktualisiere schon. Bin natürlich bei der Recherche auf "Flags" und "betätigt" gestoßen, habe es aber nicht verstanden.

                            EDIT: habe mein Post oben aktualisiert Steuere hat bei Auswertung des Zählers nicht funktioniert.

                            alles gut, Logik wird ausgeführt. wie gesagt, mir laufen die berechnete Werte auseinander, aber ich weiß noch nicht warum. Mein erster Verdacht war, dass die Berechnung der Werte nach zufallsreihenfolge erfolgt. Wir haben jetzt geklärt, dass die Abarbeitung der Sequenzen innerhalb eines Triggers sequentiell erfolgt. Skript ist jetzt zusammengeführt und optimiert.

                            Als nächstes muss ich herausfinden, ob der Fehler im Skript, oder in der Berechnung liegt, oder ich einen Gedankenfehler habe.

                            1 Reply Last reply Reply Quote 0
                            • A
                              AXMLM last edited by AXMLM

                              Ich verstehe nicht, warum meine Berechnung die historische Werte ins negative verschiebt.

                              der Richtige Wert ist 113€ das ist der Totale input an Geld über die gesamte laufzeit der Anlage.

                              aber der Adapter schreibt bei Jahreswert und bei Monatswert 99€ und Start bei -13€. Die -13€ gehen weiter nach unten. Vor 3 Tagen standen da -5€ und das verstehe ich nicht.

                              chrome_5Ghcf3S2fy.png

                              1 Reply Last reply Reply Quote 0
                              • A
                                AXMLM last edited by

                                Hier ist das Problem sichtbar

                                Total ist kleiner als MOnat

                                chrome_IxkugNXa7M.png

                                1 Reply Last reply Reply Quote 0
                                • Homoran
                                  Homoran Global Moderator Administrators @AXMLM last edited by Homoran

                                  @axmlm sagte in Programmablauf in Blockly sequenziell oder parallel?:

                                  Wenn Schraube fest ist, ist sie fest. Ich brauche keine Rückmeldung von der Schraube dass der Drehmomentschlüssel geklickt hat.

                                  wenn aber nur dein Kollege einen Drehmomentschlüssel hat, kannst du nur unkritische Schrauben festzurren.
                                  und du entscheidest selber alles ist fertig (ack=true)

                                  Bei kritischen Befestigungen rufst du den Kollegen (ack=false)
                                  Der nimmt den Drehmomentschlüssel bis es klickt
                                  Dann sagt er: alles ist fertig (ack=true)

                                  1 Reply Last reply Reply Quote 2
                                  • paul53
                                    paul53 @AXMLM last edited by

                                    @axmlm sagte:läuft aber irgendwie nicht rund.

                                    Kann es auch nicht, da Werte, die man in Datenpunkte schreibt, nicht gleich wieder eingelesen werden können, denn steuere / aktualisiere werden asynchron ausgeführt, sind also zum Zeitpunkt des Einlesens noch nicht fertig. Deshalb verwendet man Variablen.

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    747
                                    Online

                                    32.0k
                                    Users

                                    80.3k
                                    Topics

                                    1.3m
                                    Posts

                                    6
                                    20
                                    440
                                    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