Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Heizlastanalyse mit WMZ + Simulierung WP

    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

    Heizlastanalyse mit WMZ + Simulierung WP

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

      @Habedere sagte:

      wenn ein Heizkreis aus ist, schreibt er einen höheren Wert als der zweite Kreis alleine.

      Ist das wirklich so, oder sieht es im Flot-Chart nur so aus ?
      Poste bitte mal den vom Blockly erzeugten Javascript-Code ohne die letzte Zeile in Code tags.

      1 Reply Last reply Reply Quote 0
      • H
        Habedere last edited by Habedere

        Ja. Die einzelnen Zähler schreiben zwischen 00:00 und 02:00 Uhr jeweils Null Watt.
        Das Script schreibt 400.

        var Wert1, Wert2;
        
        /**
         * Beschreibe diese Funktion …
         */
        function Summe() {
          setState("javascript.0.Gesamtleistung_WMZ"/*Gesamtleistung_WMZ*/, (Wert1 + Wert2), true);
        }
        
        
        on({id: 'mbus.0.LUG-67578190.data.4-0-Current', change: "ne"}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          Wert1 = getState("mbus.0.LUG-67578190.data.4-0-Current").val;
          Summe();
        });
        on({id: 'mbus.0.LUG-67578194.data.4-0-Current', change: "ne"}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          Summe();
          Wert2 = getState("mbus.0.LUG-67578194.data.4-0-Current").val;
        });
        

        Ich hab mir im Flot (nicht die originalen Daten aus der Tabelle) nochmal die Werte etwas genauer angesehen - der rechnet auf jedenfalls nicht ganz korrekt.

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

          @Habedere

            Summe();
            Wert2 = getState("mbus.0.LUG-67578194.data.4-0-Current").val;
          

          Vertausche bitte die Reihenfolge: Summe unter setze Wert2 mit ...

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

            @paul53 sagte in Heizlastanalyse mit WMZ + Simulierung WP:

            @Habedere

              Summe();
              Wert2 = getState("mbus.0.LUG-67578194.data.4-0-Current").val;
            

            Vertausche bitte die Reihenfolge: Summe unter setze Wert2 mit ...

            Done - man wird sehen 🙂 hatte ich gar nicht bemerkt dass es zwei verschiedene Reihenfolgen waren.

            1 Reply Last reply Reply Quote 0
            • H
              Habedere last edited by Habedere

              Servus,
              sieht gut aus das letzte Script 🙂

              Weiter geht mit der anderen Baustelle..

              Bild Text

              Damit versuch ich die aktuelle Leistung der WMZ in Stromverbrauch einer Wärmepumpe um zu rechnen.
              WP_elektrisch=Leistung_Öl / COP

              Der COP ist abhängig von Außentemperatur und Vorlauftemperatur.
              Die Außentemperatur kann ich mithlife einer Funktion darstellen.
              In diesem Fall f(x) = 0x^3 + 0,014x^2 + 0,145x + 3,402
              Im ersten Versuch würde ich Werte für gezielte Vorlauftemperaturen generieren - in diesem Fall 35°
              Quelle:
              Bild Text

              Könnte das Script so funktionieren?
              Wie stelle ich die Quadratfunktion dar? Habe zwar das "10^X" gefunden - verstehe aber ehrlich gesagt die Verwendung nicht ganz.

              Kann ich den anfallenden Stromverbrauch bzw. Leistung in kWh umrechnen damit ich die Werte wieder mit dem Analytics Adapter loggen kann?

              EDIT: Also das Script funktioniert und scheint einigermaßen richtig zu rechnen 🙂 Hab nur noch eine Komma-Rundung eingebaut.
              Meine Formel scheint aber einen kleinen Haken zu haben - da muss ich nochmal ran. Alles in einer Formel zu rechnen klappt leider nicht 😞 In Richtung der beiden äußersten Temperaturwerte driften die errechneten COP-Werte leider extrem aus.
              Somit muss ich alle Temperaturbereiche einzeln abfragen...
              Die Frage zur Umrechnung bleibt.

              1 Reply Last reply Reply Quote 0
              • H
                Habedere last edited by Habedere

                @paul53
                Also das mit der Umrechnung zu kWh hat sich ja erledigt, da der Analytics das ja beherrscht - zumindest fast...

                Nochmal zu meinem Umrechnungsscript.
                Da die Gesamtfunktion etwas schwächelt muss ich die einzelnen Temperaturbereiche einzeln abfragen.

                Kann/soll ich das irgendwie in einem Script verhackstückeln?
                So würde der der Bereich zwischen 7° und 25° aussehen
                Bild Text

                Mit "sonst falls" erweitern?

                Noch ein kleines Problem...
                Und zwar springt die Pumpe für den NT Kreis alle paar Minuten an und generiert einen "Fake-Spitzenwert"
                Bild Text

                Das verfälscht die ganze Ansicht in Flot. Kann ich das irgendwie unterbinden?

                Bei der Gesamtberechnung kann ich es ja gem. deinem HInweis im anderen Thread anpassen:

                @paul53 sagte in [Neuer Adapter Beta 0.2.275] SourceAnalytix (Verbrauch Protokollierung von Strom/Gas/Flüssigkeiten):

                @007Schneiderlein Eigentlich sollte Dein Skript funktionieren. Einfacher geht es so:

                Blockly_Ausreisser_ausblenden.JPG

                Wert und vorheriger Wert sind Eigenschaften des Triggerdatenpunktes (unter Blöcke "Trigger").

                Hmm... glaube mein Versuch sieht nicht so gut aus...
                Denke die "größer als letztes" Abfrage sollte ich direkt in dem einzelnen Leistungsabfragebreich vom NT Kreis einbauen oder?

                Bild Text

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

                  @Habedere sagte:

                  Mit "sonst falls" erweitern?

                  Ja. Ich würde die Berechnung des Faktors in einem Aussentemperatur-Trigger machen und den Faktor als Variable an die Callback-Funktion des WMZ-Triggers übergeben. Die Aussentemperatur ändert sich nur langsam.

                  @Habedere sagte in Heizlastanalyse mit WMZ + Simulierung WP:

                  glaube mein Versuch sieht nicht so gut aus

                  Richtig. Mache die Abfrage in jedem Trigger getrennt. In eine Funktion gehört kein Trigger !

                  @Habedere sagte:

                  springt die Pumpe für den NT Kreis alle paar Minuten an und generiert einen "Fake-Spitzenwert"

                  Hast Du einen Datenpunkt, der den Betrieb der Pumpe anzeigt ? Wenn ja, dann trigger auf diesen Datenpunkt und erzeuge eine Sperrvariable, die nach einer kurzen Zeit (timeout) wieder zurück gesetzt wird.

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

                    @Habedere sagte:

                    die Pumpe für den NT Kreis alle paar Minuten an

                    Das sollte nicht sein ! Was verursacht dieses Verhalten ? Es ist doch sicherlich eine Mischkreispumpe ?

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

                      @paul53 sagte in Heizlastanalyse mit WMZ + Simulierung WP:

                      @Habedere sagte:

                      die Pumpe für den NT Kreis alle paar Minuten an

                      Das sollte nicht sein ! Was verursacht dieses Verhalten ? Es ist doch sicherlich eine Mischkreispumpe ?

                      Ja das gefällt mir auch nicht. Hier wurde vom Vorbesitzer rumgebastelt auf Einzelraumsteuerung.
                      Der Regler hierfür ist im EG. Wenn ich hier die Zeitschaltfunktion aktiviere entsteht das verhalten.
                      Das Problem ist aber nur vorhanden wenn lt. Regler bzw. Temperaturabfragung keine Heizung benötigt wird. Warum dass so ist kann ich mir nicht erklären...
                      Muss ich mal im Htd-Forum fragen.

                      Hier der neueste Versuch meines Scripts:
                      Bild Text

                      So besser? 🙂

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

                        @Habedere sagte:

                        So besser?

                        Ja.
                        Da die Funktion Summe() nur eine Anweisung und keine Verknüpfung von Variablen enthält, ist sie überflüssig: Die eine Anweisung kann auch direkt in den Trigger (anstelle Funktionsaufruf).

                        Die Und-Verknüpfungen mit Vergleich Aussentemperatur < x kann man sich sparen, denn sonst liefert die Bedingung schon, wenn man die Reihenfolge beachtet, wie Du es getan hast.

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

                          @paul53 sagte in Heizlastanalyse mit WMZ + Simulierung WP:

                          @Habedere sagte:

                          So besser?

                          Ja.
                          Da die Funktion Summe() nur eine Anweisung und keine Verknüpfung von Variablen enthält, ist sie überflüssig: Die eine Anweisung kann auch direkt in den Trigger (anstelle Funktionsaufruf).

                          Die Und-Verknüpfungen mit Vergleich Aussentemperatur < x kann man sich sparen, denn sonst liefert die Bedingung schon, wenn man die Reihenfolge beachtet, wie Du es getan hast.

                          Like this:
                          Bild Text

                          Danke nochmal für deine fleißige Unterstützung 🙂

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

                            @Habedere sagte:

                            Like this:

                            Nicht ganz:
                            falls AT >= 25
                            sonst falls AT >= 7
                            sonst falls AT >= 2
                            sonst falls AT >= -7
                            sonst falls AT >= -15
                            sonst

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

                              @paul53 sagte in Heizlastanalyse mit WMZ + Simulierung WP:

                              @Habedere sagte:

                              Like this:

                              Nicht ganz:
                              falls AT >= 25
                              sonst falls AT >= 7
                              sonst falls AT >= 2
                              sonst falls AT >= -7
                              sonst falls AT >= -15
                              sonst

                              Das hab ich mir fast gedacht, da du gezielt "<" erwähnt hast und die Reihenfolge.
                              Wobei mir die Logik dahinter nicht wirklich klar ist.
                              Es muss also immer in die gleiche Richtung laufen?
                              Also entweder alle mit > oder alle mit <?

                              Bild Text

                              EDIT: soll natürlich >= heißen!

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

                                @Habedere sagte:

                                Wobei mir die Logik dahinter nicht wirklich klar ist.

                                Beispiel:
                                falls AT >= 7 mache (AT >= 7 ist true)
                                sonst bedeutet: AT < 7 (AT >= 7 ist false)

                                1 Reply Last reply Reply Quote 0
                                • H
                                  Habedere last edited by

                                  Servus,
                                  also die Scripte funktionieren mittlerweile alles sehr gut würde ich sagen...

                                  Jetzt hätte ich noch eine neu Kombination gebraucht 🙂
                                  Und zwar habe ich mir kürzlich noch eine 23,5kWp PV-Anlage installiert.
                                  Nun möchte ich die anfallende Überschussleistung, welche aktuell eingespeist wird, von den benötigten Leistungen der einzelnen simulierten Wärmepumpen abziehen.

                                  Meine beiden Stromzähler kann ich mit dem Discovergyzähler auslesen.
                                  Hier sehe ich also die direkte Einspeiseleistung.

                                  Nun könnte ich das Script für den Wärmemengenzähler gesamt kopieren und die Einspeiseleistung abziehen.
                                  Aktuell stelle ich mir das so vor:

                                  Bild Text

                                  Wenn ich allerdings dann die Kosten mit dem SourceAnalytix aufzeichne, wird das ergebnis verfälscht!
                                  Denn der PV-Strom ist ja eigentlich nicht kostenlos!
                                  Dieser kostet mich zwischen 8 und 10,04 Cent - bin ich mir noch nicht ganz sicher welchen Wert ich da ansetzte. (Gestehungskosten vs. Einspeisevergütung)

                                  Hat jemand eine Idee wie ich das evtl. wieder raus filtern bzw. darstellen kann?

                                  H 1 Reply Last reply Reply Quote 0
                                  • H
                                    Habedere @Habedere last edited by Habedere

                                    @paul53
                                    Servus Paul,
                                    kannst du mir bitte nochmal zu der Vorgehensweise für "Simple API" einen Link schicken?
                                    Habe zu den WMZ noch einen Mbus Stromzähler dran, dessen werte ich vom OrangePi auf den Raspi schicken muss...
                                    Finde die verdammte Beschreibung nicht mehr 😞

                                    EDIT: Gerade gefunden^^

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    642
                                    Online

                                    31.8k
                                    Users

                                    80.0k
                                    Topics

                                    1.3m
                                    Posts

                                    blockly climate heating javascript monitoring
                                    2
                                    33
                                    1678
                                    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