Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Berechnung erst starten sobald mehrere Werte aktuell sind

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Berechnung erst starten sobald mehrere Werte aktuell sind

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

      @paul53 sagte in Berechnung erst starten sobald mehrere Werte aktuell sind:

      @mickym sagte: wenn der letzte Wert mal ganz ausfällt und am nächsten Zyklus als Erstes meldet

      Es sind verschiedene Geräte, die in unterschiedlichen Zeitabständen senden, also gibt es keinen Zyklus in dem Sinne. Das Gerät mit der niedrigster Sendefrequenz bestimmt i.d.R. den Zyklus.

      Richtig, das Gerät mit der niedrigsten Sendefrequenz bestimmt den Zyklus. 🙂 - Ich hatte ja nur mal den Fall geschildert, dass wenn dieses Gerät mal gar nichts meldet, man dann ggf. den Zyklus resetten müsste, um quasi den Zyklus "beieinander" zu behalten.

      1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @OliverIO last edited by mickym

        @oliverio, @paul53 Na am Prinzip ist das nun egal, ob ich es über ein Bitregister, ein Array und Index oder ein Objekt mit Eigenschaften lösen.

        Das Prinzip ist doch in allen 3 Fällen das Gleiche, das gewartet wird bis alles vollständig ist. 😉

        1 Reply Last reply Reply Quote 0
        • OliverIO
          OliverIO @mickym last edited by

          @mickym sagte in Berechnung erst starten sobald mehrere Werte aktuell sind:

          Nein die JOIN Node funktioniert

          ich weiß wie die join node funktioniert.
          in meinem ersten absatz wollte ich nur darauf hinweisen, warum nicht zu jedem zeit die werte zur Berechnung verwendet werden können.
          Das was ihr im folgenden Beschrieben habt mit, der kürzeste Zyklus bestimmt die Berechnung entspricht ja dem was ich gesagt habe, das bei jeder Änderung die Berechnung durchgeführt werden kann.

          In meinem 2.Absatz habe ich versucht einen javascript lösungsweg aufzuzeigen, falls er nicht node red verwenden will.

          1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active last edited by

            Super: Dann haben wir jetzt für alle 3 am häufigsten benutzten Logikmaschinen eine Lösung. 😉 -
            Ich denke aber - @paul53's Lösung wird wahrscheinlich siegen. 😉 - Der TE hat es ja in die Blockly Rubrik gestellt. 🙂

            😁 - So was sollten wir öfter machen. 😉

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

              @paul53 sagte:

              @mickym sagte: wenn der letzte Wert mal ganz ausfällt und am nächsten Zyklus als Erstes meldet

              Es sind verschiedene Geräte, die in unterschiedlichen Zeitabständen senden, also gibt es keinen Zyklus in dem Sinne. Das Gerät mit der niedrigsten Sendefrequenz bestimmt i.d.R. den Zyklus.

              und selbst wenn dann nur noch seltener gerechnet wird müssen die Werte nicht passen.
              ich rechne nur den Hausverbrauch aus Smartmeter und Wechselrichter.
              dazu startet die Abfrage des Wechselrichter wenn der Smartmeter liefert.

              Bei stark wechselnder Bewölkung habe ich dann falsche Verbrauchswerte

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

                @homoran sagte: müssen die Werte nicht passen.

                Richtig. Aber die Wahrscheinlichkeit ist höher, dass die Werte zueinander passen - vor allem dann, wenn ein Gerät mit hoher Frequenz (alle 2 s) sendet. Wenn das langsame Gerät allerdings intern eine zeitliche Mittelwertbildung vornimmt, müsste diese für das schnelle Gerät nachgebildet werden.

                1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active last edited by mickym

                  Ich finde den Median eh viel besser, als die Mittelwertbildung - da damit einfach Ausreißer besser ausgefiltert werden.

                  1 Reply Last reply Reply Quote 0
                  • OliverIO
                    OliverIO @mickym last edited by

                    @mickym sagte in Berechnung erst starten sobald mehrere Werte aktuell sind:

                    Der TE hat es ja in die Blockly

                    ach herrjeh, dann hätt ich ja nix schreiben müssen, leider nicht gesehen

                    1 Reply Last reply Reply Quote 0
                    • C
                      Christian23 @OliverIO last edited by

                      @oliverio
                      Herzlichen Dank für die Info. Ich werde es probieren, damit umzusetzen. 👍

                      A 1 Reply Last reply Reply Quote 0
                      • A
                        Andersmacher @Christian23 last edited by

                        @christian23 Ich möchte mich in Eure Diskussion nicht einmischen, aber einen kurzen Hinweis geben:
                        Seid Ihr sicher, daß das Problem (nur) an unterschiedlichen Zeitpunkten/Laufzeiten für Berechnungen in Euren Skripten liegt?
                        Ich meine mich zu erinnern (finde ihn aber momentan nicht), daß es bereits einen Thread zu dieser Problematik gibt, der als Ursache die MOD-Bus-Abfrage der PV-Werte aus dem WR nennt. Zu mindest bei mir ist das auch so:
                        Die Rückgabewerte einer Modbusabfrage des WR beinhalten Werte, die (zumindest teilweise) aus unterschiedlichen Meßperioden innerhalb des WR stammen, je nach dem, wann genau die Modbusabfrage gestartet wurde. Das Problem tritt aus meiner Sicht also bereits beim Beschreiben der Modbusregister im WR auf. Ich habe nicht in Erinnerung, daß es dafür damals eine Lösung gab.

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

                          @paul53 Moin, ich versuche grade dein Blockly zu verstehen. An welcher Stelle des Blockly wird denn die Variable "result" befüllt? Oder fehlt hier die Berechnung der Werte?

                          Gruß
                          Matze

                          blockly.png

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

                            @matzebhv sagte: Oder fehlt hier die Berechnung der Werte?

                            Ja, result ist das Ergebnis einer beliebigen Berechnung.

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

                              @paul53 Danke für deine Antwort. Die Berechnung würde an Stelle des Kommentar stehen, oder? Bin bei Schleifen nicht wirklich sattelfest.

                              Gruß
                              Matze

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

                                @matzebhv sagte: Die Berechnung würde an Stelle des Kommentar stehen, oder?

                                Ja.

                                Matzebhv 1 Reply Last reply Reply Quote 1
                                • Matzebhv
                                  Matzebhv @paul53 last edited by

                                  @paul53 Das Blockly funktioniert wesentlich besser als die Mittelwertbildung, die ich bis jetzt benutzt habe. Danke für den Denkanstoß, deine Beispiele sind immer absolut Lehrreich!
                                  Gruß
                                  Matze

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  785
                                  Online

                                  32.0k
                                  Users

                                  80.5k
                                  Topics

                                  1.3m
                                  Posts

                                  7
                                  21
                                  746
                                  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