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

      @Habedere Bau mal ein Log in das Skript ein, um zu sehen, ob der Trigger funktioniert.

      const urlDst  = 'http://192.168.178.3:8082/set/'; // IP anpassen !
      
      on(/^mbus\.0\.LUG-6757819\d\.data\..+/, function(dp) {
         log(dp.id + ': ' dp.state.val);
         request(urlDst + dp.id + '?value=' + dp.state.val);
      });
      
      H 1 Reply Last reply Reply Quote 0
      • H
        Habedere @paul53 last edited by

        @paul53 sagte in Heizlastanalyse mit WMZ + Simulierung WP:

        const urlDst = 'http://192.168.178.3:8082/set/'; // IP anpassen ! on(/^mbus.0.LUG-6757819\d.data..+/, function(dp) { log(dp.id + ': ' dp.state.val); request(urlDst + dp.id + '?value=' + dp.state.val); });

        Inkl. Log gabs eine Fehlermeldung...
        Aber nach Anpassung des ursprünglichen Skripts hat es gepasst 🙂
        Den Port hatte ich bereits vorher getestet.
        Aber mit nur einem Skript und ohne der 0 scheints zu funktionieren.
        Da ich meine Flot Graphen direkt aus der Datenbank lese muss ich diese wohl auch nicht anpassen.

        Seltsamerweise werden aber nicht alle Daten exakt geloggt wie am OPi - siehe im Vergleich oben:
        Bild Text

        Aber danke schon mal viel mals 🙂
        Werde den Analytics Adapter nochmal probieren und prüfen ob das Summe-Blockly funktioniert.

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

          @Habedere sagte:

          werden aber nicht alle Daten exakt geloggt wie am OPi

          Der Trigger reagiert nur auf Wertänderungen. Werte, die konstant bleiben, werden also nicht vom OPi gesendet.

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

            @paul53 sagte in Heizlastanalyse mit WMZ + Simulierung WP:

            @Habedere sagte:

            werden aber nicht alle Daten exakt geloggt wie am OPi

            Der Trigger reagiert nur auf Wertänderungen. Werte, die konstant bleiben, werden also nicht vom OPi gesendet.

            Ahh das gibt Sinn - ich seh es an mittlerweile an den Werten wie z.B. OnTime ist heute um einen Tag gestiegen.
            Nun kann ich allerdings bei keinen Objekten die SQL-Einstellung über den Schraubenschlüssel durch führen. Neustart vom SQL-Adapter hat auch nicht geholfen... Die Daten werden aber fleißig geloggt - auch die der WMZ. Mal sehen ob ich da noch was finde...
            Der Analytics wird auch nicht angezeigt - nur History, obwohl der Adapter deaktiviert ist.

            EDIT: Jetzt geht´s plötzlich wieder! Bin jetzt von einer englischen Instanz wieder in einer deutschen gelandet^^ Weiß der Geier was ich hier mache, aber es funktioniert 🙂

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

              Hab das Script nochmal angepasst mit den echten Werten der Objekte 🙂

              Also so:
              Bild Text

              Evtl. hab ich dich falsch verstanden 🙂

              Läuft schon mal 🙂

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

                @Habedere sagte:

                mit den echten Werten der Objekte

                Wenn man Wert als eine Eigenschaft des Triggerdatenpunktes (unter Blöcke Trigger) nimmt, ist das ebenfalls der echte Wert des Datenpunktes.

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

                  @paul53
                  Servus,
                  irgendwie seltsam - im großen und ganzen funktioniert die Variablen Rechnung - außer einer der Wert hat 0
                  Er summiert fleißig, aber wenn ein Heizkreis aus ist, schreibt er einen höheren Wert als der zweite Kreis alleine...

                  Bild Text

                  paul53 1 Reply Last reply Reply Quote 0
                  • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            680
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

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