Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Visualisierung einer Viessmann Hybridheizung

    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

    Visualisierung einer Viessmann Hybridheizung

    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      legro @icebear last edited by

      @icebear sagte in Visualisierung einer Viessmann Hybridheizung:

      @legro

      Wenn du mir jetzt noch sagst ..

      Hast du aufgegeben? 😟

      Zugegeben, aller Anfang ist schwer, aber am Ende lohnt es sich. Wenn du die Sache mit den Temperaturen hinbekommen hast, wird es dir auch bei dem Rest gelingen.

      Also, wenn du Fragen hast, nur her damit.🙂

      M icebear 2 Replies Last reply Reply Quote 0
      • M
        MartyBr @legro last edited by

        @legro
        Hallo @legro , ich konnte dein Projekt erfolgreich umsetzen. Ich benutze noch das ältere Script, welches meanTmp und meanTemp in die Monatstabellen einträgt. So kann ich einfacher auf die Durchschnittstemperaturen zugreifen. Auch wenn diese in meanTmp enthalten sind.
        Tolles Projekt und gute Doku 👍

        L 1 Reply Last reply Reply Quote 1
        • L
          legro @MartyBr last edited by

          @martybr

          Vielen Dank für die Blumen!😊

          M 1 Reply Last reply Reply Quote 0
          • M
            MartyBr @legro last edited by

            @legro 👍

            1 Reply Last reply Reply Quote 0
            • icebear
              icebear @legro last edited by icebear

              @legro said in Visualisierung einer Viessmann Hybridheizung:

              Hast du aufgegeben?

              Ich bin kurz davor, auch wenn das normalerweise nicht meine Art ist.😞

              Ich bekomm es einfach nich hin, und ich verstehe nicht warum.
              Bis jetzt hab ich irgendwie alle Scripte usw. zum laufen gebracht, aber an den Triggern, da verzweifel ich.

              Ich glaub ich hab jetzt schon das forum, über die Suche, und Google leergesaugt aber es will einfach nich laufen.

              Egal welche DP's ich da eintrage es passiert einfach nix bis gar nix.

              Mein IOB ist eigentlich komplett auf dem neuesten Stand bis auf das letzte javascript-Adapter update.

              Fehlt bei mir vielleicht irgendein npm-module im javascript adapter?

              1 Reply Last reply Reply Quote 0
              • L
                legro last edited by

                @icebear sagte in Visualisierung einer Viessmann Hybridheizung:

                Ich bin kurz davor, auch wenn das normalerweise nicht meine Art ist.😞

                Ja, die Sache mit den Triggern hat mich auch ganz schön gefordert. War das Einrichten der Trigger kein Problem, so geriet ich bei deren Verwaltung ganz schön ins Schwitzen. So hatte ich anfangs (noch) keine Idee, wie man die Sache mit dem Tageswechsel hinbekommt.

                Aber, wie du siehst, ist die Lösung recht übersichtlich und kompakt geraten.

                Ohne dass du versuchst nachzuvollziehen, wie das Skipt hierzu arbeitet, ist es natürlich schwierig, es gezielt auf die eigenen Verhältnisse anzupassen. Mein Vorschlag: Gehe es Zeile für Zeile durch. Wenn‘s an einer Stelle klemmt: nachfragen!🙂

                icebear 1 Reply Last reply Reply Quote 0
                • icebear
                  icebear @legro last edited by

                  @legro said in Visualisierung einer Viessmann Hybridheizung:

                  Vorschlag: Gehe es Zeile für Zeile durch. Wenn‘s an einer Stelle klemmt: nachfragen!

                  So, ich bin glaub ich einen Schritt weiter 🤔 der Part der als erstes kommt bei den Triggern, also

                      //Gas
                      eventWP = on({id: 'modbus.0.inputRegisters.30073_Import_Energy', change: 'gt'}, function() {
                          let tmpWP = JSON.parse(getState(`0_userdata.0.Heizung.MonatsTabellen.${partsDatum.jahr}.${partsDatum.monat}.WP`).val)
                          let tmpWPKWh = JSON.parse(getState(`0_userdata.0.Heizung.MonatsTabellen.${partsDatum.jahr}.${partsDatum.monat}.WP_KWh`).val)
                   
                          tmpWP[Number(partsDatum.tag)-1] = Number((getState(`modbus.0.inputRegisters.30053_Total_System_Power`).val).toFixed(3))
                          tmpWPKWh[Number(Number(partsDatum.tag)-1)] = Number((getState(`modbus.0.inputRegisters.30073_Import_Energy`).val * Umrechnungsfaktor * Zustandszahl).toFixed(1))
                   
                          setState(`0_userdata.0.Heizung.MonatsTabellen.${partsDatum.jahr}.${partsDatum.monat}.WP`,JSON.stringify(tmpWP),true)
                          setState(`0_userdata.0.Heizung.MonatsTabellen.${partsDatum.jahr}.${partsDatum.monat}.WP_KWh`,JSON.stringify(tmpWPKWh),true)
                      })
                  

                  der schreibt jetzt auch was in die DP'S, siehe hier:

                  [
                    null,
                    null,
                    null,
                    null,
                    null,
                    null,
                    null,
                    null,
                    52.73
                  ]
                  

                  und

                  [
                    null,
                    null,
                    null,
                    null,
                    null,
                    null,
                    null,
                    null,
                    3909.9
                  ]
                  

                  aber halt nur der Part die anderen noch nicht.

                  Jetzt hab ich nochmal eine Frage, wo kommen den bei dir die Daten her?

                  Sind das DP's die einen Monatswert speichern und täglich fortlaufend aktualisiert werden, bis zum Ende des Monats und dann wieder auf '0' gesetzt werden?

                  Oder sind das DP's die den Tageswert aufzeichnen und dann am Tagesende zurückgesetzt werden und einen Monatswert aktualisieren?

                  L 1 Reply Last reply Reply Quote 0
                  • L
                    legro @icebear last edited by legro

                    @icebear sagte in Visualisierung einer Viessmann Hybridheizung:

                    Es scheint ja voranzugehen👍

                    Jetzt hab ich nochmal eine Frage, wo kommen den bei dir die Daten her?

                        //genHeizen
                        eventGH = on({id: `e3oncan.0.Vitocal.tree.1315_GeneratedCentralHeatingOutputMonthMatrix.CurrentMonth.${d}`, change: 'gt'}, () => {
                            let tmpGH = JSON.parse(getState(`0_userdata.0.Heizung.MonatsTabellen.${partsDatum.jahr}.${partsDatum.monat}.genHeizen`).val)
                            tmpGH[Number(partsDatum.tag)-1] = getState(`e3oncan.0.Vitocal.tree.1315_GeneratedCentralHeatingOutputMonthMatrix.CurrentMonth.${d}`).val
                            setState(`0_userdata.0.Heizung.MonatsTabellen.${partsDatum.jahr}.${partsDatum.monat}.genHeizen`,JSON.stringify(tmpGH),true)
                        })
                    

                    Die erste Zeile in obigem Codefragement beantwortet dir doch die Frage. Ich lese den Datenpunkt 1315 aus dem tree im e3oncan-Adapter aus. Der zugehörige Teil des Objektbaums schaut an dieser Stelle so aus .

                    fbc361e3-c60c-46d0-baa7-d557b86d4770-image.png

                    Sind das DP's die einen Monatswert speichern und täglich fortlaufend aktualisiert werden, bis zum Ende des Monats und dann wieder auf '0' gesetzt werden?

                    Die Wärmepumpe legt für den laufenden Monat für jeden Tag ein Verzeichnis an, das mit 01, 02, 03, 04, .. bezeichnet wird. Der Datenpunkt des aktuellen Tages dient sowohl als Auslöser für den Trigger als auch als Datenquelle. Die in dem String eingebettete Variable ${d} referenziert dabei den aktuellen Tag.

                    Wenn die anderen Trigger nicht funktionieren, dann stimmt etwas mit der Datenpunktadresse nicht oder der verwendete Datenpunkt ändert sich nicht.

                    Welche Wärmepumpe hast du? Wie ich sehe verwendest du MODBUS als Datenquelle. Viessmann Wärmepumpe habe doch gar keinen Modbus - oder liege ich falsch?

                    icebear 1 Reply Last reply Reply Quote 0
                    • icebear
                      icebear @legro last edited by

                      @legro said in Visualisierung einer Viessmann Hybridheizung:

                      Die in dem String eingebettete Variable ${d} referenziert dabei den aktuellen Tag.
                      Wenn die anderen Trigger nicht funktionieren, dann stimmt etwas mit der Datenpunkadresse nicht oder der verwendete Datenpunkt ändert sich nicht.

                      Jetzt haben wir glaub ich des Rätsels Lösung gefunden.
                      Da ich ja versucht habe dein Script auf meine Vaillant aroTHERM zu adaptieren, wird das wohl so nicht funktionieren.
                      Der Vaillant Adapter legt für den Tag und für den Monat einen Ordner an in dem der Wert für den Laufenden Tag oder Monat immer wieder aktualisiert wird. Am nächsten Tag oder Monat kommt dann wieder ein neuer Ordner usw. wobei der Ordner data01 immer der aktuelle ist

                      So wie hier:

                      vaillant.png

                      das kann ja dann so wie das Script geschrieben ist nicht funktionieren, wenn ich jetzt richtig verstanden hab

                      L 1 Reply Last reply Reply Quote 0
                      • L
                        legro @icebear last edited by legro

                        @icebear sagte in Visualisierung einer Viessmann Hybridheizung:

                        das kann ja dann so wie das Script geschrieben ist nicht funktionieren, wenn ich jetzt richtig verstanden hab

                        Wenn ich dich richtig verstehe, stehen die aktuellen Werte des laufenden Tages stets im Datenpunkt data01. Dann wird‘s doch sogar einfacher, da du die Akrobatik Tag für Tag auf ein anderes Verzeichnis zu triggern gar nicht nötig hast.☺

                        Allerdings finde ich die Datumsangaben etwas seltsam und verwirrend: Jahr.Tag.?? Üblich in Linux wäre doch wohl Jahr-Monat-TagThh:mm:ss

                        icebear 1 Reply Last reply Reply Quote 0
                        • icebear
                          icebear @legro last edited by icebear

                          @legro said in Visualisierung einer Viessmann Hybridheizung:

                          Wenn ich dich richtig verstehe, stehen die aktuellen Werte des laufenden Tages stets im Datenpunkt data01

                          Genau so ist es ! Hier siehst du wie es täglich geschrieben wird:

                          heating_day.png

                          Da siehst du halt Heute = data01 Verbrauch = 10.907KWh
                          Gestern = data02 Verbrauch = 12,789 KWH

                          Ja die Datumsangabe ist etwas seltsam.

                          L 1 Reply Last reply Reply Quote 0
                          • L
                            legro @icebear last edited by legro

                            @icebear

                            Dann musst du stets auf ..data01.value triggern. Du hast‘s gut.🙂 Ab 00:00 Uhr musst du bloß die Speicheradresse ändern.

                            Im zweiten Bild sieht man, dass doch die übliche Notation für Datum und Zeit verwendet wird.

                            icebear 1 Reply Last reply Reply Quote 0
                            • icebear
                              icebear @legro last edited by icebear

                              @legro said in Visualisierung einer Viessmann Hybridheizung:

                              Ab 00:00 Uhr musst du bloß die Speicheradresse ändern.

                              Äh, Bahnhof?

                              L 1 Reply Last reply Reply Quote 0
                              • L
                                legro @icebear last edited by legro

                                @icebear

                                Der Datenpunkt im Objektbaum innerhalb der Monatstabellen wechselt doch täglich. Siehe Zeile 6 oben im Codefragment!

                                icebear 1 Reply Last reply Reply Quote 0
                                • icebear
                                  icebear @legro last edited by

                                  @legro

                                  So, soweit ich das überblicke laufen jetzt die Daten täglich in die Tabellen.

                                  Hier nur mal exemplarisch primHeizen:

                                  [
                                    14.1,
                                    18.72,
                                    20.21,
                                    18.28,
                                    18.63,
                                    11.41,
                                    11.66,
                                    12.79,
                                    12.31,
                                    12.39,
                                    5.28
                                  ]
                                  

                                  Wie geht es denn jetzt weiter? Welches Script, oder wie bekomm ich denn jetzt die Daten in die Flexcharts?

                                  Ich hatte erstmal dieses

                                  //==================== Hilfsfunktionen ====================
                                   
                                  function listEntries(parentPath) {
                                  /*
                                      Diese Funktion wird gleich zweifach benötigt. Aufruf mit ..
                                      - "0_userdata.0.Heizung.MonatsTabellen" liefert die Ordner der Jahre in diesem Verzeichnis als Array
                                      - `0_userdata.0.Heizung.MonatsTabellen.${year)` liefert die Ordner der Monate des übergebenen Jahres als Array
                                  {1}
                                      VORSICHT: Damit all dies funktioniert, dürfen in den Verzeichnissen auch nur die gewünschten Daten vorhanden sein.
                                                Also im Verzeichnis "0_userdata.0.Heizung.MonatsTabellen" dürfen nur die Ordner der Jahre und 
                                                in `0_userdata.0.Heizung.MonatsTabellen.${year)` nur die Ordner der Monate vorhanden sein.
                                  

                                  genommen, das bringt mir aber den folgenden Fehler

                                  javascript.0	14:14:22.111	error	script.js.Energie_Strom.WP.Flexcharts.FlexchartTemp: SyntaxError: Unexpected end of JSON input
                                  javascript.0	14:14:22.111	error	at script.js.Energie_Strom.WP.Flexcharts.FlexchartTemp:172:22
                                  javascript.0	14:14:22.111	error	at script.js.Energie_Strom.WP.Flexcharts.FlexchartTemp:208:3
                                  

                                  Fragen über Fragen

                                  L 1 Reply Last reply Reply Quote 0
                                  • L
                                    legro @icebear last edited by

                                    @icebear

                                    Das Skript ist wohl das richtige. Der Fehler besagt, dass im JSON des ECharts etwas nicht stimmt. Das EChart kann mittels JSON.parse nicht ins RAM eingelesen werden.

                                    icebear 1 Reply Last reply Reply Quote 0
                                    • icebear
                                      icebear @legro last edited by icebear

                                      @legro

                                      Also wir reden ja von dem hier, oder:

                                      [
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": -1.13,
                                          "mean": 0,
                                          "max": 2
                                        },
                                        {
                                          "min": -0.77,
                                          "mean": 3.14,
                                          "max": 5.04
                                        },
                                        {
                                          "min": 2,
                                          "mean": 2.92,
                                          "max": 4.16
                                        },
                                        {
                                          "min": 1,
                                          "mean": 2.25,
                                          "max": 3.76
                                        },
                                        {
                                          "min": 0.23,
                                          "mean": 3.16,
                                          "max": 7.52
                                        },
                                        {
                                          "min": -0.18,
                                          "mean": 3.29,
                                          "max": 6.41
                                        },
                                        {
                                          "min": 0.29,
                                          "mean": 2.29,
                                          "max": 3.7
                                        },
                                        {
                                          "min": 3.29,
                                          "mean": 4,
                                          "max": 4.99
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        },
                                        {
                                          "min": 0,
                                          "mean": 0,
                                          "max": 0
                                        }
                                      ]
                                      

                                      Ich hab das auch mal bei 'json-parser-online' eingegeben, da sagt er mir das json ist valid.

                                      L 1 Reply Last reply Reply Quote 0
                                      • L
                                        legro @icebear last edited by legro

                                        @icebear

                                        Wie ich oben schrieb: Nicht das JSON mit den Daten verursacht den Fehler, sondern das in einem Datenpunkt abgelegte EChart dürfte hier die Misere verursachen.

                                        icebear 1 Reply Last reply Reply Quote 0
                                        • icebear
                                          icebear @legro last edited by

                                          @legro

                                          Ah, kapiert, aber da liegen nirgendwo irgendwelche echarts.
                                          Ich hab die ganze Ordnerstruktur von wo die Daten kommen ja komplett neu gemacht gemäß deiner Scripte.
                                          Da liegen nur die json Tabellen drin.

                                          Ich hab ja auch den echarts Adapter gar nicht installiert.

                                          L 1 Reply Last reply Reply Quote 0
                                          • L
                                            legro @icebear last edited by legro

                                            @icebear

                                            Du solltest dir nochmals die Erläuterungen zu meinem Vorgehen anschauen, die ich zu Beginn des ersten Beitrags beschrieben habe. Ohne, dass du dir hierüber den Überblick verschaffst, stocherst du nur allzu oft im Dunkeln rum.

                                            Wie dem auch sei, es geht offensichtlich voran.👍

                                            In Zeile 170 und 171 in dem von dir zitierten Skripts kannst du sehen, wo bei mir die ECharts im Objektbaum liegen. Du musst diese Adressen natürlich auf deine Gegebenheiten anpassen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            517
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            54
                                            2276
                                            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