Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • 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. Hardware
  4. IOBroker Anbindung an einen Kostal Plenticore

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.0k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

IOBroker Anbindung an einen Kostal Plenticore

Geplant Angeheftet Gesperrt Verschoben Hardware
1.3k Beiträge 83 Kommentatoren 459.9k Aufrufe 72 Watching
  • Ä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.
  • StrathColeS StrathCole

    @homeuser was hast du denn im Adapter bei max MinSoC eingetragen? Mehr als 8-10% sollten es nicht sein.

    U Offline
    U Offline
    ukl
    schrieb am zuletzt editiert von
    #1131

    @strathcole sagte in IOBroker Anbindung an einen Kostal Plenticore:

    @homeuser was hast du denn im Adapter bei max MinSoC eingetragen? Mehr als 8-10% sollten es nicht sein.

    @homeuser sagte in IOBroker Anbindung an einen Kostal Plenticore:

    Gestern war ein guter Tag (viel Sonne). Für heute ist extrem wenig Sonne in der Vorhersage. Heute Nacht wurde der Speicher nur bis 40% entladen und der restliche Nachtbedarf aus dem Netz geholt.
    Ist dies das vorgesehene Verhalten? Wenn je, warum?

    Ist denn das Verhalten nicht in Ordnung, wenn die Prognose für die nächsten Tage sagt, dass sehr wenig oder keine Sonne scheint? Dann muss doch der minSoC relativ hoch sein (>20%) um die Zwangsladung für die nächsten Tage zu umgehen - dass ist doch der Sinn der Steuerung.
    Ein Wert von 8-10% für den max MinSoC ist doch viel zu klein, oder habe ich da etwas nicht verstanden?
    In der dunklen Jahreszeit gibt es doch schon mal mehrere Tage wo nichts von der Sonne kommt und das regelt doch der Adapter mit der dynamischen minSoC Anpassung - @strathcole ist so richtig?

    TRINA_HoneyM_330-340W: 9,86kwp, Plentcore Plus 8.5, BYD HVS10.2

    StrathColeS 1 Antwort Letzte Antwort
    0
    • U ukl

      @strathcole sagte in IOBroker Anbindung an einen Kostal Plenticore:

      @homeuser was hast du denn im Adapter bei max MinSoC eingetragen? Mehr als 8-10% sollten es nicht sein.

      @homeuser sagte in IOBroker Anbindung an einen Kostal Plenticore:

      Gestern war ein guter Tag (viel Sonne). Für heute ist extrem wenig Sonne in der Vorhersage. Heute Nacht wurde der Speicher nur bis 40% entladen und der restliche Nachtbedarf aus dem Netz geholt.
      Ist dies das vorgesehene Verhalten? Wenn je, warum?

      Ist denn das Verhalten nicht in Ordnung, wenn die Prognose für die nächsten Tage sagt, dass sehr wenig oder keine Sonne scheint? Dann muss doch der minSoC relativ hoch sein (>20%) um die Zwangsladung für die nächsten Tage zu umgehen - dass ist doch der Sinn der Steuerung.
      Ein Wert von 8-10% für den max MinSoC ist doch viel zu klein, oder habe ich da etwas nicht verstanden?
      In der dunklen Jahreszeit gibt es doch schon mal mehrere Tage wo nichts von der Sonne kommt und das regelt doch der Adapter mit der dynamischen minSoC Anpassung - @strathcole ist so richtig?

      StrathColeS Offline
      StrathColeS Offline
      StrathCole
      schrieb am zuletzt editiert von
      #1132

      @ukl Im Grunde hast du schon recht, aber das Thema ist leider sehr schwierig.
      Es kommt sehr darauf an, wie dein Wechselrichter/deine Batterie die Zwangsladung steuert, also ab welcher Prozentzahl und wie viel Prozent durch die Selbstentladung in der Nacht flöten gehen.

      Bei mir reicht in der Regel 8%, damit über Nacht nicht unter 5% entladen wird. Aber wenn der Speicher kleiner ist, dann könnte es auch sein, dass eine Einstellung von 10% oder auch 15% sinnvoll ist.
      Am besten wäre, einmal zu beobachten, um wie viel % der Speicher in der Nacht entlädt, ohne dass Strom entnommen wird. Dann kann man den Wert in der Konfig sinnvoll setzen.

      Zur Info: Bei mir sind es ca. 3% Entladung in der ganz dunklen Jahreszeit bei einer Kapazität von 8,9kWh. Also etwa 300W in der Nacht.

      SolarWatt-Anlage mit 9,6 kWp – KOSTAL Plenticore Plus 10 – BYD B-Box HV 8,96 – Viessmann Vitocal 333g – Zehnder ComfoD 350 (Comfoair 350) mit RS232-Ethernet-Konverter

      1 Antwort Letzte Antwort
      0
      • DiginixD Diginix

        @gjo K.a. ob Flot, Grafana usw. bereits Grafen zeichnen wenn die Werte der X Achse aus der Zukunft stammen.

        G Offline
        G Offline
        gjo
        schrieb am zuletzt editiert von gjo
        #1133

        @diginix image.png

        der pv forecast adapter stellt dafür eine JSONGraph / JSONTable zur Vergügung
        evtl ist das hier auch integrierbar ... fände ich mehr als klasse.

        StrathColeS 2 Antworten Letzte Antwort
        0
        • G gjo

          @diginix image.png

          der pv forecast adapter stellt dafür eine JSONGraph / JSONTable zur Vergügung
          evtl ist das hier auch integrierbar ... fände ich mehr als klasse.

          StrathColeS Offline
          StrathColeS Offline
          StrathCole
          schrieb am zuletzt editiert von
          #1134

          @gjo Schaue mir die API mal an, ob die nicht auch direkt integrierbar wäre.

          SolarWatt-Anlage mit 9,6 kWp – KOSTAL Plenticore Plus 10 – BYD B-Box HV 8,96 – Viessmann Vitocal 333g – Zehnder ComfoD 350 (Comfoair 350) mit RS232-Ethernet-Konverter

          1 Antwort Letzte Antwort
          0
          • H Offline
            H Offline
            HomeUser
            schrieb am zuletzt editiert von
            #1135

            Hallo,

            gestern abend habe ich mal per Browser auf den Wechselrichter geschaut. Da war komischerweise kein Eintrag beim min. SoC gewählt:
            5db5878c-b0e2-45fc-ab5b-1bde6d003209-image.png

            Jetzt sind wohl neue Werte gesetzt und alles ist wieder okay:
            e6efff3d-4eb4-440d-a511-ae658c11a620-image.png

            StrathColeS 1 Antwort Letzte Antwort
            0
            • H HomeUser

              Hallo,

              gestern abend habe ich mal per Browser auf den Wechselrichter geschaut. Da war komischerweise kein Eintrag beim min. SoC gewählt:
              5db5878c-b0e2-45fc-ab5b-1bde6d003209-image.png

              Jetzt sind wohl neue Werte gesetzt und alles ist wieder okay:
              e6efff3d-4eb4-440d-a511-ae658c11a620-image.png

              StrathColeS Offline
              StrathColeS Offline
              StrathCole
              schrieb am zuletzt editiert von
              #1136

              @homeuser Nein, das ist normal. Das Interface vom WR kann nur 5%-Schritte. Ich kann aber auch z. B. 8% setzen im Adapter, dann ist die Anzeige im UI des WR leer.

              SolarWatt-Anlage mit 9,6 kWp – KOSTAL Plenticore Plus 10 – BYD B-Box HV 8,96 – Viessmann Vitocal 333g – Zehnder ComfoD 350 (Comfoair 350) mit RS232-Ethernet-Konverter

              1 Antwort Letzte Antwort
              0
              • H Offline
                H Offline
                HomeUser
                schrieb am zuletzt editiert von
                #1137

                Hallo,

                nach und nach verstehe ich mehr, was wie gedacht ist und warum.

                Trotzdem habe ich wieder eine neue Frage:
                Neben unserem Haus steht quer ein höheres Haus. Im Sommer ist das kein Problem, aber bei der aktuell niedrig stehenden Sonne verschwindet unsere Anlage im Laufe des Nachmittags im Schatten.
                Lernt die Regelung so etwas auch? Wenn nein, kann ich etwas einstellen, um das in der Regelung zu berücksichtigen?
                In den vergangenen Tagen war am Ende des Tages der Speicher zweimal nur zu 90% voll und ich vermute, dass das an unserem "früheren Sonnenuntergang liegt".

                StrathColeS 1 Antwort Letzte Antwort
                0
                • H HomeUser

                  Hallo,

                  nach und nach verstehe ich mehr, was wie gedacht ist und warum.

                  Trotzdem habe ich wieder eine neue Frage:
                  Neben unserem Haus steht quer ein höheres Haus. Im Sommer ist das kein Problem, aber bei der aktuell niedrig stehenden Sonne verschwindet unsere Anlage im Laufe des Nachmittags im Schatten.
                  Lernt die Regelung so etwas auch? Wenn nein, kann ich etwas einstellen, um das in der Regelung zu berücksichtigen?
                  In den vergangenen Tagen war am Ende des Tages der Speicher zweimal nur zu 90% voll und ich vermute, dass das an unserem "früheren Sonnenuntergang liegt".

                  StrathColeS Offline
                  StrathColeS Offline
                  StrathCole
                  schrieb am zuletzt editiert von
                  #1138

                  @homeuser sagte in IOBroker Anbindung an einen Kostal Plenticore:

                  In den vergangenen Tagen war am Ende des Tages der Speicher zweimal nur zu 90% voll und ich vermute, dass das an unserem "früheren Sonnenuntergang liegt".

                  Das wäre natürlich möglich. Allerdings hat das mit der (Adapter-)Steuerung nicht sooo viel zu tun, denn sie begrenzt nicht die Ladung. Sie begrenzt nur die Entladung. Daher ist es irrelevant, ob du z. B. am Morgen bis 10% entladen hast und den Tag über auf 90% kommst oder nur bis 20% entlädst und dann auf 100% kommst. Ersteres wäre mir sogar lieber, sonst besteht das Risiko, dass ich unnötig einspeise.

                  SolarWatt-Anlage mit 9,6 kWp – KOSTAL Plenticore Plus 10 – BYD B-Box HV 8,96 – Viessmann Vitocal 333g – Zehnder ComfoD 350 (Comfoair 350) mit RS232-Ethernet-Konverter

                  H 1 Antwort Letzte Antwort
                  0
                  • G gjo

                    @diginix image.png

                    der pv forecast adapter stellt dafür eine JSONGraph / JSONTable zur Vergügung
                    evtl ist das hier auch integrierbar ... fände ich mehr als klasse.

                    StrathColeS Offline
                    StrathColeS Offline
                    StrathCole
                    schrieb am zuletzt editiert von StrathCole
                    #1139

                    @gjo Ich habe mir bei meiner Anlage den Forecast mal angesehen.
                    Bisher bin ich nicht so überzeugt insgesamt.

                    Meine Beobachtung (Werte in kWh):

                    Tag | PVForecast | Plenticore Adapter | Realertrag
                    1   |       38,9 |               18,8 |       35,9
                    2   |       15,2 |                5,0 |        2,6
                    3   |       32,3 |               15,1 |       21,7
                    4   |       22,8 |               30,5 |       35,7
                    5   |       17,7 |               10,2 |       18,4
                    6   |       40,0 |               27,4 |       34,1
                    7   |       44,3 |               23,2 |       15,6
                    8   |       11,8 |                1,8 |        3,5
                    9   |       12,9 |                4,9 |        4,9
                    10  |       21,9 |                3,4 |        1,3
                    11  |       12,3 |                2,9 |        1,7
                    12  |        8,7 |                4,2 |        4,3
                    13  |        9,3 |                7,0 |       12,4
                    14  |        7,4 |                3,4 |        3,4
                    15  |       30,0 |               15,6 |       11,9
                    16  |       14,0 |                2,7 |        3,0
                    17  |       12,5 |                7,4 |        5,5
                    

                    Wie man sieht, liegt PVForecast oft extrem daneben und eher zu hoch, was für meine automatische Steuerung problematisch wäre. Die Vorhersage des Adapters selbst ist auch nicht perfekt, aber passt für mich einfach viel besser, daher haber ich zumindest derzeit keine Notwendigkeit, PVForecast zu integrieren. Sorry.

                    Liebe Grüße

                    SolarWatt-Anlage mit 9,6 kWp – KOSTAL Plenticore Plus 10 – BYD B-Box HV 8,96 – Viessmann Vitocal 333g – Zehnder ComfoD 350 (Comfoair 350) mit RS232-Ethernet-Konverter

                    G 1 Antwort Letzte Antwort
                    0
                    • StrathColeS StrathCole

                      @gjo Ich habe mir bei meiner Anlage den Forecast mal angesehen.
                      Bisher bin ich nicht so überzeugt insgesamt.

                      Meine Beobachtung (Werte in kWh):

                      Tag | PVForecast | Plenticore Adapter | Realertrag
                      1   |       38,9 |               18,8 |       35,9
                      2   |       15,2 |                5,0 |        2,6
                      3   |       32,3 |               15,1 |       21,7
                      4   |       22,8 |               30,5 |       35,7
                      5   |       17,7 |               10,2 |       18,4
                      6   |       40,0 |               27,4 |       34,1
                      7   |       44,3 |               23,2 |       15,6
                      8   |       11,8 |                1,8 |        3,5
                      9   |       12,9 |                4,9 |        4,9
                      10  |       21,9 |                3,4 |        1,3
                      11  |       12,3 |                2,9 |        1,7
                      12  |        8,7 |                4,2 |        4,3
                      13  |        9,3 |                7,0 |       12,4
                      14  |        7,4 |                3,4 |        3,4
                      15  |       30,0 |               15,6 |       11,9
                      16  |       14,0 |                2,7 |        3,0
                      17  |       12,5 |                7,4 |        5,5
                      

                      Wie man sieht, liegt PVForecast oft extrem daneben und eher zu hoch, was für meine automatische Steuerung problematisch wäre. Die Vorhersage des Adapters selbst ist auch nicht perfekt, aber passt für mich einfach viel besser, daher haber ich zumindest derzeit keine Notwendigkeit, PVForecast zu integrieren. Sorry.

                      Liebe Grüße

                      G Offline
                      G Offline
                      gjo
                      schrieb am zuletzt editiert von
                      #1140

                      @strathcole
                      Hi, das passt für mich. Es macht aus meiner Sicht auf wenig Sinn wieder eine neue Forecast-Quelle zu nehmen.

                      Meinst du es ist möglich die Forecast Daten des Plenticore-Adapters als Json Tabelle/Graph mit auszugeben? Wie ich das verstehe liegen die Daten ja alle vor und würde so eine Visualisierung der zu erwartenden PV-Erträge ermöglichen. Quasi wie in dem Bild im ursprünglichen Post zu miner Frage. image.png

                      Für nicht Batterie Nutzer gibt es so die Möglichkeit Großverbraucher (Waschmaschine, Trocker, Spühlmaschine) nach dem optimiert zu starten.

                      Gruß

                      StrathColeS H 2 Antworten Letzte Antwort
                      0
                      • G gjo

                        @strathcole
                        Hi, das passt für mich. Es macht aus meiner Sicht auf wenig Sinn wieder eine neue Forecast-Quelle zu nehmen.

                        Meinst du es ist möglich die Forecast Daten des Plenticore-Adapters als Json Tabelle/Graph mit auszugeben? Wie ich das verstehe liegen die Daten ja alle vor und würde so eine Visualisierung der zu erwartenden PV-Erträge ermöglichen. Quasi wie in dem Bild im ursprünglichen Post zu miner Frage. image.png

                        Für nicht Batterie Nutzer gibt es so die Möglichkeit Großverbraucher (Waschmaschine, Trocker, Spühlmaschine) nach dem optimiert zu starten.

                        Gruß

                        StrathColeS Offline
                        StrathColeS Offline
                        StrathCole
                        schrieb am zuletzt editiert von
                        #1141

                        @gjo Ich müsste mal schauen. Das Problem ist, dass ich noch ein Problem in der Vorhersage habe. Im Grunde korrigiert der Adapter über den Tag die Vorhersage immer wieder, aber wird dann immer "falscher". Ich beachte daher im Grunde nur den Wert, den er so ca. ~6-9 Uhr morgens hat.
                        Ich weiß noch nicht, woran das liegt und konnte es noch nicht untersuchen.

                        Die historischen Daten der Vorhersagen speichert der Adapter nicht, daher kann ich solch eine Tabelle nicht ausgeben. Er speichert allerdings die Stundenwerte für den aktuellen Tag (nur wie gesagt spinnt da der Adapter im Tagesverlauf).

                        SolarWatt-Anlage mit 9,6 kWp – KOSTAL Plenticore Plus 10 – BYD B-Box HV 8,96 – Viessmann Vitocal 333g – Zehnder ComfoD 350 (Comfoair 350) mit RS232-Ethernet-Konverter

                        1 Antwort Letzte Antwort
                        0
                        • StrathColeS StrathCole

                          @homeuser sagte in IOBroker Anbindung an einen Kostal Plenticore:

                          In den vergangenen Tagen war am Ende des Tages der Speicher zweimal nur zu 90% voll und ich vermute, dass das an unserem "früheren Sonnenuntergang liegt".

                          Das wäre natürlich möglich. Allerdings hat das mit der (Adapter-)Steuerung nicht sooo viel zu tun, denn sie begrenzt nicht die Ladung. Sie begrenzt nur die Entladung. Daher ist es irrelevant, ob du z. B. am Morgen bis 10% entladen hast und den Tag über auf 90% kommst oder nur bis 20% entlädst und dann auf 100% kommst. Ersteres wäre mir sogar lieber, sonst besteht das Risiko, dass ich unnötig einspeise.

                          H Offline
                          H Offline
                          HomeUser
                          schrieb am zuletzt editiert von
                          #1142

                          @strathcole said in IOBroker Anbindung an einen Kostal Plenticore:
                          [...]

                          Das wäre natürlich möglich. Allerdings hat das mit der (Adapter-)Steuerung nicht sooo viel zu tun, denn sie begrenzt nicht die Ladung. Sie begrenzt nur die Entladung. Daher ist es irrelevant, ob du z. B. am Morgen bis 10% entladen hast und den Tag über auf 90% kommst oder nur bis 20% entlädst und dann auf 100% kommst. Ersteres wäre mir sogar lieber, sonst besteht das Risiko, dass ich unnötig einspeise.

                          Jetzt bin ich verwirrt. Ich dachte, dass das Hauptziel ist, dass der Speicher möglichst dann geladen wird, wenn "zu viel" Strom da ist. Wie geht das, wenn nur die Entladung begrenzt wird?
                          Oder bedeutet das, dass wenn die Ladung aktiv ist, dies von der Kostal-Logik gesteuert wird, aber diese Logik zwischendurch "ausgeschaltet" wird, damit sie z.B. nicht zu früh voll lädt.

                          H 1 Antwort Letzte Antwort
                          0
                          • G gjo

                            @strathcole
                            Hi, das passt für mich. Es macht aus meiner Sicht auf wenig Sinn wieder eine neue Forecast-Quelle zu nehmen.

                            Meinst du es ist möglich die Forecast Daten des Plenticore-Adapters als Json Tabelle/Graph mit auszugeben? Wie ich das verstehe liegen die Daten ja alle vor und würde so eine Visualisierung der zu erwartenden PV-Erträge ermöglichen. Quasi wie in dem Bild im ursprünglichen Post zu miner Frage. image.png

                            Für nicht Batterie Nutzer gibt es so die Möglichkeit Großverbraucher (Waschmaschine, Trocker, Spühlmaschine) nach dem optimiert zu starten.

                            Gruß

                            H Offline
                            H Offline
                            HomeUser
                            schrieb am zuletzt editiert von
                            #1143

                            @gjo said in IOBroker Anbindung an einen Kostal Plenticore:

                            Meinst du es ist möglich die Forecast Daten des Plenticore-Adapters als Json Tabelle/Graph mit auszugeben?

                            Ich habe mir hierfür ein Script geschrieben, das zyklisch ausgeführt wird. Es nimmt den dann gerade aktuellen Forecast (über alle Stunden des aktuellen Tages und Folgetages) und schreibt ihn als JSON in ein Datenobjekt. Das kann ich dann nehmen und in einer Tabelle ausgeben.
                            Wenn das hilft, kann ich das Skript posten.

                            G 1 Antwort Letzte Antwort
                            0
                            • H HomeUser

                              @gjo said in IOBroker Anbindung an einen Kostal Plenticore:

                              Meinst du es ist möglich die Forecast Daten des Plenticore-Adapters als Json Tabelle/Graph mit auszugeben?

                              Ich habe mir hierfür ein Script geschrieben, das zyklisch ausgeführt wird. Es nimmt den dann gerade aktuellen Forecast (über alle Stunden des aktuellen Tages und Folgetages) und schreibt ihn als JSON in ein Datenobjekt. Das kann ich dann nehmen und in einer Tabelle ausgeben.
                              Wenn das hilft, kann ich das Skript posten.

                              G Offline
                              G Offline
                              gjo
                              schrieb am zuletzt editiert von
                              #1144

                              @homeuser
                              Genau sowas habe ich mir vorgestellt. Wenn du das teilen könntest …
                              Vielen Dank
                              Gruß

                              H 1 Antwort Letzte Antwort
                              0
                              • StrathColeS Offline
                                StrathColeS Offline
                                StrathCole
                                schrieb am zuletzt editiert von
                                #1145

                                Würde empfehlen, das dann nur einmal am Tag zwischen 6 und 8 auszuführen, bis ich das Problem gelöst habe.

                                SolarWatt-Anlage mit 9,6 kWp – KOSTAL Plenticore Plus 10 – BYD B-Box HV 8,96 – Viessmann Vitocal 333g – Zehnder ComfoD 350 (Comfoair 350) mit RS232-Ethernet-Konverter

                                StrathColeS 1 Antwort Letzte Antwort
                                0
                                • G gjo

                                  @homeuser
                                  Genau sowas habe ich mir vorgestellt. Wenn du das teilen könntest …
                                  Vielen Dank
                                  Gruß

                                  H Offline
                                  H Offline
                                  HomeUser
                                  schrieb am zuletzt editiert von
                                  #1146

                                  @gjo said in IOBroker Anbindung an einen Kostal Plenticore:

                                  @homeuser
                                  Genau sowas habe ich mir vorgestellt. Wenn du das teilen könntest …
                                  Vielen Dank
                                  Gruß

                                  Disclaimer und Erklärung:
                                  Ich bin kein Javascript-Entwickler. Vielleicht sind manche Dinge daher sehr unschön gelöst. Außerdem ist es geschrieben nach dem Motto: Hauptsache es klappt.
                                  UpdateJson(): Der erste Teil der Schleife erstellt ein Json aus den Forecast-Daten. Der zweite konsolidiert das etwas, um eine leicht verständliche Ansicht für den Rest der Familie zu haben.
                                  UpdateFreeEnergy(): Berechnet wie viel Strom im Moment gerade übrig ist. Der "Moment" sind die letzten 10 Minuten, wobei die letzten drei doppelt gewichtet werden.

                                  Ich habe mal alles drin gelassen, falls es nützlich ist. Wenn nicht, ist es ja einfach zu löschen :-)

                                  schedule ("*/1 * * * *", UpdatePlenticore)
                                  
                                  function UpdatePlenticore() {
                                      // free energy must be updated first because it is used by UpdateJson()
                                      UpdateFreeEnergy();
                                      UpdateJson();
                                  }
                                  
                                  
                                  function UpdateJson() {
                                      let data = [];
                                      let consolidatedData = [];
                                      let time2;
                                      let power;
                                      let generated;
                                      let c = 0; // used to group always 3 hours in one
                                      let timeNow = new Date(Date.now());
                                      let consolidatedPower = 0;
                                      let consolidatedStars = 0;
                                      let consolidatedTimeEnd = timeNow.getHours(); // default: if no full period is consolidated, start with now
                                  
                                      // set value for now (based on the calculated currently free energy)
                                      let freeEnergy = getState('0_userdata.0.Plenticore.FreeEnergy').val;
                                      consolidatedData.push({'time' : 'jetzt','power' : Math.round(freeEnergy) + " Wh", 'stars' : ((freeEnergy-200)/500)}); 
                                  
                                      // Day 1
                                      data.length = 0;
                                      for (let i = 1; i <= 20; i++) {
                                          let forecastHour = "plenticore.0.forecast.day1.power." + i + "h"
                                  
                                          // Day 1
                                          if (existsState(forecastHour + '.time')) {
                                              let time  = new Date(getState(forecastHour + '.time').val);
                                  
                                              // convert hourly forecast to JSON
                                              time2 = time.toLocaleTimeString();
                                              power = getState(forecastHour + '.power').val;
                                              if (existsState(forecastHour + '.generated')) {
                                                  generated = getState(forecastHour + '.generated').val;
                                              } else {
                                                  generated = 0;
                                              }
                                              data.push({'time' : time2,'power' : Math.round(power), 'generated' : Math.round(generated)});
                                  
                                              // consolidate to timespan and quality (JSON)
                                              //
                                              // check if the period is in the future (don't show forecast for past hours)
                                              if (time.getHours() > timeNow.getHours()) {
                                  
                                                  consolidatedPower += power;
                                                  if ( (c % 3) == 2) {
                                                      consolidatedTimeEnd = time.getHours();
                                                      time2 = (time.getHours()-2) + " - " + consolidatedTimeEnd + " Uhr";
                                                      consolidatedStars = Math.round(consolidatedPower / 2000); // translate power in stars
                                                      consolidatedData.push({'time' : time2,'power' : Math.round(consolidatedPower) + " Wh", 'stars' : consolidatedStars}); 
                                                      consolidatedPower = 0; // rest fo next timespan
                                                  }
                                                  c++;
                                              }
                                          }
                                      }
                                  
                                      // check if there a partially consolidated period pending
                                      if ( (c % 3) == 1) { 
                                          time2 = (consolidatedTimeEnd + 1) + " Uhr";
                                  
                                          consolidatedStars = Math.round(consolidatedPower / (2000/3)); // translate power in stars; use number of remaining items as factor
                                          consolidatedData.push({'time' : time2,'power' : Math.round(consolidatedPower) + " Wh", 'stars' : consolidatedStars}); 
                                      } else if ( (c % 3) == 2) { 
                                          time2 = (consolidatedTimeEnd + 1) + " - " + (consolidatedTimeEnd + 2) + " Uhr";
                                  
                                          consolidatedStars = Math.round(consolidatedPower / ((2000*2)/3)); // translate power in stars; use number of remaining items as factor
                                          consolidatedData.push({'time' : time2,'power' : Math.round(consolidatedPower) + " Wh", 'stars' : consolidatedStars}); 
                                      }
                                  
                                      setState('0_userdata.0.Plenticore.ForecastDay1', JSON.stringify(data), true);
                                      setState('0_userdata.0.Plenticore.ConsolidatedDay1', JSON.stringify(consolidatedData), true);
                                  
                                      // Day 2
                                      c = 0; // used to group always 3 hours in one
                                      consolidatedPower = 0;
                                      consolidatedStars = 0;
                                      consolidatedTimeEnd = 0;
                                  
                                      data.length = 0;
                                      consolidatedData.length = 0;
                                  
                                      for (let i = 1; i <= 20; i++) {
                                          let forecastHour = "plenticore.0.forecast.day2.power." + i + "h"
                                  
                                          // Day 1
                                          if (existsState(forecastHour + '.time')) {
                                              let time  = new Date(getState(forecastHour + '.time').val);
                                  
                                              // convert hourly forecast to JSON
                                              time2 = time.toLocaleTimeString();
                                              power = getState(forecastHour + '.power').val;
                                              data.push({'time' : time2,'power' : Math.round(power)})
                                  
                                              // consolidate to timespan and quality (JSON)
                                              consolidatedPower += power;
                                              if ( (c % 3) == 2) {
                                                  consolidatedTimeEnd = time.getHours();
                                                  time2 = (time.getHours()-2) + " - " + consolidatedTimeEnd + " Uhr";
                                                  consolidatedStars = Math.round(consolidatedPower / 2000); // translate power in stars
                                                  consolidatedData.push({'time' : time2,'power' : Math.round(consolidatedPower) + " Wh", 'stars' : consolidatedStars}); 
                                                  consolidatedPower = 0; // rest fo next timespan
                                              }
                                              c++;
                                          }
                                      }
                                      if ( (c % 3) != 0) { // not all hours are pushed to the consolidation
                                          time2 = (consolidatedTimeEnd + 1) + " - " + (consolidatedTimeEnd + 1 + (c % 3) ) + " Uhr";
                                  
                                          consolidatedStars = Math.round(consolidatedPower / 2000); // translate power in stars
                                          consolidatedData.push({'time' : time2,'power' : Math.round(consolidatedPower) + " Wh", 'stars' : consolidatedStars}); 
                                          consolidatedPower = 0; // rest fo next timespan
                                      }
                                  
                                      setState('0_userdata.0.Plenticore.ForecastDay2', JSON.stringify(data), true);
                                      setState('0_userdata.0.Plenticore.ConsolidatedDay2', JSON.stringify(consolidatedData), true);
                                  
                                  }
                                  
                                  // Save free watt of past N minutes; calc average
                                  function UpdateFreeEnergy() {
                                      let freeEnergy = 0;
                                      let batterySoc = 0;
                                      const pastMinutes = 10;
                                  
                                      // with forst call, create the array are set values to 0
                                      if ( typeof UpdateFreeEnergy.pastValues == 'undefined' ) {
                                              UpdateFreeEnergy.pastIndex = 0;
                                              UpdateFreeEnergy.pastValues= [];    
                                  
                                          for (let i = 0; i < pastMinutes; i++) {
                                              UpdateFreeEnergy.pastValues[i] = 0;
                                          }
                                      }
                                  
                                      // calculate the current free value
                                      freeEnergy = getState('plenticore.0.devices.local.Pv_P').val;
                                      freeEnergy -= getState('plenticore.0.devices.local.Home_P').val;
                                  
                                      if (freeEnergy < 0) {
                                          freeEnergy = 0;
                                      }
                                      // put into array
                                      UpdateFreeEnergy.pastValues[UpdateFreeEnergy.pastIndex] = freeEnergy;
                                  
                                      // calc average of past values
                                      for (let i = 0; i < pastMinutes; i++) {
                                          //for the 3 most current values double the impact
                                          if ( (i == UpdateFreeEnergy.pastIndex) || (i == (UpdateFreeEnergy.pastIndex + pastMinutes - 1) % pastMinutes)  || (i == (UpdateFreeEnergy.pastIndex + pastMinutes - 2) % pastMinutes) ){
                                              freeEnergy = freeEnergy + 2 * UpdateFreeEnergy.pastValues[i];
                                          } else {
                                              freeEnergy = freeEnergy + UpdateFreeEnergy.pastValues[i];
                                          }
                                      }
                                      freeEnergy = freeEnergy / (pastMinutes + 3);  // +3 for the doubled impact of the the 3 most current values
                                  
                                      // if the battery is below the defined minimum, the battery has priority; so there is no free energy
                                      // recommendation: 
                                      //    Use same value as in the settings of the plenticore adapter for "minimaler SoC zur Aktivierung des Batteriemanagements".
                                      //    The plenticore adapter stops charging a little before the limit. So the value should be 2-3% lower.
                                      batterySoc = getState('plenticore.0.devices.local.battery.SoC').val;
                                      if (batterySoc <= 12) {
                                          freeEnergy = 0;
                                      }
                                  
                                      // save calculated average 
                                      setState('0_userdata.0.Plenticore.FreeEnergy', freeEnergy, true);
                                  
                                      // inc counter for cyclic buffer
                                      UpdateFreeEnergy.pastIndex = (UpdateFreeEnergy.pastIndex + 1) % pastMinutes;
                                  }
                                  
                                  G 1 Antwort Letzte Antwort
                                  1
                                  • StrathColeS StrathCole

                                    Würde empfehlen, das dann nur einmal am Tag zwischen 6 und 8 auszuführen, bis ich das Problem gelöst habe.

                                    StrathColeS Offline
                                    StrathColeS Offline
                                    StrathCole
                                    schrieb am zuletzt editiert von
                                    #1147

                                    @strathcole So, ich habe jetzt im git eine neue Version (nur dort), bei der ich die Vorhersage für den aktuellen Tag nur noch bis Sonnenaufgang aktualisiere.

                                    SolarWatt-Anlage mit 9,6 kWp – KOSTAL Plenticore Plus 10 – BYD B-Box HV 8,96 – Viessmann Vitocal 333g – Zehnder ComfoD 350 (Comfoair 350) mit RS232-Ethernet-Konverter

                                    H 1 Antwort Letzte Antwort
                                    0
                                    • H Offline
                                      H Offline
                                      HME
                                      schrieb am zuletzt editiert von
                                      #1148

                                      @StrathCole: Ich bekomme immer folgenden Warning im iobroker Protokoll angezeigt:

                                      plenticore.0
                                      2021-11-30 16:12:16.165 warn Failed starting plenticore adapter (login sequence failed). Trying again in 30 seconds.
                                      plenticore.0
                                      2021-11-30 16:12:16.164 warn Login failed with code 0:
                                      plenticore.0
                                      2021-11-30 16:12:16.163 warn API request failed with error {"errno":"ECONNREFUSED","code":"ECONNREFUSED","syscall":"connect","address":"192.168.178.20","port":80}

                                      Was mache ich falsch? Falsch PW?

                                      Freundlichen Gruß
                                      HME

                                      StrathColeS 1 Antwort Letzte Antwort
                                      0
                                      • H HME

                                        @StrathCole: Ich bekomme immer folgenden Warning im iobroker Protokoll angezeigt:

                                        plenticore.0
                                        2021-11-30 16:12:16.165 warn Failed starting plenticore adapter (login sequence failed). Trying again in 30 seconds.
                                        plenticore.0
                                        2021-11-30 16:12:16.164 warn Login failed with code 0:
                                        plenticore.0
                                        2021-11-30 16:12:16.163 warn API request failed with error {"errno":"ECONNREFUSED","code":"ECONNREFUSED","syscall":"connect","address":"192.168.178.20","port":80}

                                        Was mache ich falsch? Falsch PW?

                                        Freundlichen Gruß
                                        HME

                                        StrathColeS Offline
                                        StrathColeS Offline
                                        StrathCole
                                        schrieb am zuletzt editiert von
                                        #1149

                                        @hme Hi, der Fehler bedeutet, dass auf der IP Adresse kein Port 80 verfügbar ist. Entweder ist es die falsche IP oder eine Firewall blockt Port 80 oder der WR lauscht nicht auf Port 80.

                                        SolarWatt-Anlage mit 9,6 kWp – KOSTAL Plenticore Plus 10 – BYD B-Box HV 8,96 – Viessmann Vitocal 333g – Zehnder ComfoD 350 (Comfoair 350) mit RS232-Ethernet-Konverter

                                        H 1 Antwort Letzte Antwort
                                        -1
                                        • StrathColeS StrathCole

                                          @hme Hi, der Fehler bedeutet, dass auf der IP Adresse kein Port 80 verfügbar ist. Entweder ist es die falsche IP oder eine Firewall blockt Port 80 oder der WR lauscht nicht auf Port 80.

                                          H Offline
                                          H Offline
                                          HME
                                          schrieb am zuletzt editiert von
                                          #1150

                                          @strathcole many thx. Tatsächlich hab ich bei der Portfreigabe realisieren müssen, dass zwei Geräte die selbe IP nutzen...

                                          Nice support. :)

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          767

                                          Online

                                          32.5k

                                          Benutzer

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