Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Berechnung erst starten sobald mehrere Werte aktuell sind

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    723

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    5.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

Berechnung erst starten sobald mehrere Werte aktuell sind

Geplant Angeheftet Gesperrt Verschoben Blockly
21 Beiträge 7 Kommentatoren 836 Aufrufe 4 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • HomoranH Homoran

    @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

    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von paul53
    #12

    @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.

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    1 Antwort Letzte Antwort
    0
    • mickymM Offline
      mickymM Offline
      mickym
      Most Active
      schrieb am zuletzt editiert von mickym
      #13

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

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      1 Antwort Letzte Antwort
      0
      • mickymM mickym

        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. ;)

        OliverIOO Offline
        OliverIOO Offline
        OliverIO
        schrieb am zuletzt editiert von
        #14

        @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

        Meine Adapter und Widgets
        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
        Links im Profil

        1 Antwort Letzte Antwort
        0
        • OliverIOO OliverIO

          @christian23
          Nur mal eine Logik frage.
          Ab wann werden den die Werte alt und ein bereits als gemeldeter wert müsste dann wieder zurückgesetzt werden?
          Warum ist die Berechnung nicht zustandslos,
          Also es kann zu jedem Zeitpunkt mit allen Werten gerechnet werden egal wie alt/ aktuell sie sind?
          Ich fürchte wenn du dein beschriebenes Problem gelöst hast, wird ein neues auftauchen das mein beschriebenes Szenario zur Grundlage hat.

          Aber zu dieser Lösung.
          ich würde es über ein bit register lösen.
          du nimmst eine variable oder datenpunkt und setzt ihn auf 0. das passiert auch immer nachdem deine berechnung erfolgt ist.
          jeder wert auf den du wartest ist ein bit in diesem wert, also

          2**0 für datenpunkt 1
          2**1 für datenpunkt 2
          2**2 für datenpunkt 3
          2**3 für datenpunkt 4
          

          und sofort
          jedem dieser positionen 0,1,2,3 ordnest du einen datenpunkt zu
          wenn sich nun ein wert ändert, setzt du das entsprechende bit
          mit folgender operation, hier am beispiel dem 4.datenpunkt
          in register mekrst du die den aktuellen meldestatus

          register |=2**3
          

          wenn du auf alle 4 werte wartest, dann prüfst du bei jeder Meldung dann am Ende ob register einen gewissen wert überschreitet, also

          if (register>= (2**0+2**1+2**2+2**3)) {
            //hier dann deine berechnung
          }
          

          Anmerkungen
          Für den Ausdruck 2**0+2**1+2**2+2**3 kannst du auch den berechneten Wert hinschreiben also in diesem Fall 15

          den ** operator aus javascript kennst du in der mathematik normalerweise als ^ Operator, dieser hat in javascript aber eine andere bedeutung

          C Offline
          C Offline
          Christian23
          schrieb am zuletzt editiert von
          #15

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

          A 1 Antwort Letzte Antwort
          0
          • C Christian23

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

            A Offline
            A Offline
            Andersmacher
            schrieb am zuletzt editiert von
            #16

            @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.

            ioBroker auf Raspi4B 8GB Debian(12) 64Bit

            1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @mickym sagte: alle Werte mit einer JOIN Node in einem Objekt sammelt. Erst wenn die Anzahl der Werte/Eigenschaften voll ist, wird dieses Objekt weitergegeben.

              Die Idee ist nicht schlecht, nur dass Objekte in Blockly schlecht unterstützt werden, so dass man besser ein Array verwendet.

              Bild_2022-09-28_132733790.png

              MatzebhvM Offline
              MatzebhvM Offline
              Matzebhv
              schrieb am zuletzt editiert von Matzebhv
              #17

              @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

              paul53P 1 Antwort Letzte Antwort
              0
              • MatzebhvM 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

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #18

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

                Ja, result ist das Ergebnis einer beliebigen Berechnung.

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                MatzebhvM 1 Antwort Letzte Antwort
                0
                • paul53P paul53

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

                  Ja, result ist das Ergebnis einer beliebigen Berechnung.

                  MatzebhvM Offline
                  MatzebhvM Offline
                  Matzebhv
                  schrieb am zuletzt editiert von
                  #19

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

                  Gruß
                  Matze

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • MatzebhvM Matzebhv

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

                    Gruß
                    Matze

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #20

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

                    Ja.

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    MatzebhvM 1 Antwort Letzte Antwort
                    1
                    • paul53P paul53

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

                      Ja.

                      MatzebhvM Offline
                      MatzebhvM Offline
                      Matzebhv
                      schrieb am zuletzt editiert von
                      #21

                      @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 Antwort Letzte Antwort
                      0

                      Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                      Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                      Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                      Registrieren Anmelden
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      558

                      Online

                      32.7k

                      Benutzer

                      82.6k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe