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
    20
    1
    767

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

IOBroker Anbindung an einen Kostal Plenticore

Geplant Angeheftet Gesperrt Verschoben Hardware
1.3k Beiträge 83 Kommentatoren 458.4k 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.
  • U ukl-PV

    @StrathCole
    Dieses Scenario war bei mir auch schon immer so, deswegen macht es auch Sinn den minSoC im Winter auf höhere Werte zu setzen oder setzen zu lassen (durch den Adapter von StrathCole, nochmal danke an StrathCole für die Implementierung )

    Der "Aufladevorgang" bei SOC < minSOC ist aber wohl mindestens auf 8%, z.B. wenn der minSOC 5% ist und der SOC auf <5% sinkt, wird auf 8% vorrangig geladen, bzw. die berühmte Zwangsladung auf 8% angestoßen.

    Das letzte update der Batterie hat bei mir auch Änderungen im Verhalten gebracht, es scheint dass die SOC Berechnung besser, bzw. anders geworden ist.
    Was mir extrem auffällt, ist das die Berechnung der verschieden Energieflüsse sehr oft nicht passt
    z.B. Leistung der Strings, Leistung vom Wechselrichter, Leistung die in die Batterie zum aufladen geht, Netzeinspeisung. Die Summe sollte eigentlich bei 0 sein (abzüglich Eigenverbrauch). Im allgemeinen habe ich das eine differenz von 50W, aber jetzt ist es manchmal 100- 200W.

    T Offline
    T Offline
    tp1de
    schrieb am zuletzt editiert von tp1de
    #959

    @ukl-pv sagte in IOBroker Anbindung an einen Kostal Plenticore:

    Was mir extrem auffällt, ist das die Berechnung der verschieden Energieflüsse sehr oft nicht passt
    z.B. Leistung der Strings, Leistung vom Wechselrichter, Leistung die in die Batterie zum aufladen geht, Netzeinspeisung. Die Summe sollte eigentlich bei 0 sein (abzüglich Eigenverbrauch). Im allgemeinen habe ich das eine differenz von 50W, aber jetzt ist es manchmal 100- 200W.

    Ja das ist bei mir auch so.

    Ich habe übrigens versucht die Kostal-Logdaten aus dem Plenticore für die Vergangenheit einzulesen. Da tritt das gleiche "Phänomen" auf. Die Stromflüsse der 3 Strings passen oft nicht richtig zusammen. (String 3 = Batterie). D.h. ich tue mich schwer den Anteil der Batterienutzung beim Eigenverbrauch so zu berechnen, dass die Ergebnisse mit den Kostal Portalwerten (altes Portal) übereinstimmen. Mir ist noch nicht klar, wie Kostal das berechnet hat.

    GlasfaserG 1 Antwort Letzte Antwort
    0
    • T tp1de

      @ukl-pv sagte in IOBroker Anbindung an einen Kostal Plenticore:

      Was mir extrem auffällt, ist das die Berechnung der verschieden Energieflüsse sehr oft nicht passt
      z.B. Leistung der Strings, Leistung vom Wechselrichter, Leistung die in die Batterie zum aufladen geht, Netzeinspeisung. Die Summe sollte eigentlich bei 0 sein (abzüglich Eigenverbrauch). Im allgemeinen habe ich das eine differenz von 50W, aber jetzt ist es manchmal 100- 200W.

      Ja das ist bei mir auch so.

      Ich habe übrigens versucht die Kostal-Logdaten aus dem Plenticore für die Vergangenheit einzulesen. Da tritt das gleiche "Phänomen" auf. Die Stromflüsse der 3 Strings passen oft nicht richtig zusammen. (String 3 = Batterie). D.h. ich tue mich schwer den Anteil der Batterienutzung beim Eigenverbrauch so zu berechnen, dass die Ergebnisse mit den Kostal Portalwerten (altes Portal) übereinstimmen. Mir ist noch nicht klar, wie Kostal das berechnet hat.

      GlasfaserG Offline
      GlasfaserG Offline
      Glasfaser
      schrieb am zuletzt editiert von
      #960

      Ich bin demnächst auch beim Thema "Kostal " Photovoltaikanlage
      und bin auf diesen schönen Thread gestoßen , der zu einem Adapter gewachsen ist .
      .

      1.JPG
      Was mich wundert das der Themenersteller dafür am Anfang ein " -1 " immer noch hat .

      Ich habe ihn mal mit einer positiven Bewertung auf 0 gepuscht .

      Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

      DiginixD 1 Antwort Letzte Antwort
      0
      • GlasfaserG Glasfaser

        Ich bin demnächst auch beim Thema "Kostal " Photovoltaikanlage
        und bin auf diesen schönen Thread gestoßen , der zu einem Adapter gewachsen ist .
        .

        1.JPG
        Was mich wundert das der Themenersteller dafür am Anfang ein " -1 " immer noch hat .

        Ich habe ihn mal mit einer positiven Bewertung auf 0 gepuscht .

        DiginixD Offline
        DiginixD Offline
        Diginix
        schrieb am zuletzt editiert von
        #961

        @glasfaser IngoDB hat mit dem Adapter usw. nichts zu tun. Er war nur der thread opener.
        Theoretisch hätte Strathcole ab der ersten Version einen eigenen Thread aufmachen können und dort die "Likes" sammeln.
        Davon kann man sicher aber nichts kaufen. Hab eben suchen müssen wo du diese Anzeige her hast.

        ..:: So long! Tom ::..

        NUC7i3 (Ubuntu Proxmox VM) | Echo Dots 2+3. Gen | Xiaomi Sensoren | Mi Robot 1S | Yeelight | Sonoff | Shelly | H801 RGB | Gosund SP1 | NodeMCU+ESP32 | Kostal Plenticore PV+BYD | openWB

        StrathColeS 1 Antwort Letzte Antwort
        0
        • DiginixD Diginix

          @glasfaser IngoDB hat mit dem Adapter usw. nichts zu tun. Er war nur der thread opener.
          Theoretisch hätte Strathcole ab der ersten Version einen eigenen Thread aufmachen können und dort die "Likes" sammeln.
          Davon kann man sicher aber nichts kaufen. Hab eben suchen müssen wo du diese Anzeige her hast.

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

          @diginix @Glasfaser
          Ich hatte entsprechende Adapter-Test-Topics im Developer-Bereich eröffnet, aber da es hier auch um Themen abseits des eigentlichen Adapters geht, habe ich mich lieber hier beteiligt als das abzutrennen.

          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 Offline
            StrathColeS Offline
            StrathCole
            schrieb am zuletzt editiert von
            #963

            Übrigens gibt es von arteck einen Adapter für die BYD Box (die alte): https://github.com/arteck/iobroker.bydbatt

            Vorteil: Alle Infos über die Batterie inkl. Temperaturen und SoC mit 10teln usw.

            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
            • J joefarm

              Zur Info, falls es noch nicht bekannt ist:
              @arteck hat einen Adapter für die Byd geschrieben (Vielen Dank!!), der schon einmal einige Werte aus der HV-Box ausliest, v.a. die Zustände der einzelnen Zellen. Leider fehlen noch die Daten von der Seite "Statistics Information", die ich speziell interessant finde, weil man dann z.B. "Total Charge" und "Total Discharge" sehen kann.
              Leider sind meine Programmierkenntnisse nicht so großartig, sonst würde ich beim Implementieren mitmachen. Vielleicht kommt es ja noch...

              Verwendet den Adapter sonst schon jemand?

              DiginixD Offline
              DiginixD Offline
              Diginix
              schrieb am zuletzt editiert von
              #964

              @joefarm sagte in IOBroker Anbindung an einen Kostal Plenticore:

              Zur Info, falls es noch nicht bekannt ist:
              @arteck hat einen Adapter für die Byd geschrieben (Vielen Dank!!), der schon einmal einige Werte aus der HV-Box ausliest, v.a. die Zustände der einzelnen Zellen. Leider fehlen noch die Daten von der Seite "Statistics Information", die ich speziell interessant finde, weil man dann z.B. "Total Charge" und "Total Discharge" sehen kann.
              Leider sind meine Programmierkenntnisse nicht so großartig, sonst würde ich beim Implementieren mitmachen. Vielleicht kommt es ja noch...

              Verwendet den Adapter sonst schon jemand?

              Jo, wurde hier schon erwähnt. Bisher hatte ich meine BYD nur mal temporär im Netzwerk. Es gibt bisher nur ein LAN Kabel am WR. Entw. ich setz ein Switch oder ziehe vom Router ein zweites Kabel.
              Die BYD Werte haben ja sind rein informativen Charakter und helfen nicht bei Automatisierung?

              @StrathCole Hast du schon neue Erkenntnisse bzgl. der forecast Fehler mit JS-Controller 3.2?

              ..:: So long! Tom ::..

              NUC7i3 (Ubuntu Proxmox VM) | Echo Dots 2+3. Gen | Xiaomi Sensoren | Mi Robot 1S | Yeelight | Sonoff | Shelly | H801 RGB | Gosund SP1 | NodeMCU+ESP32 | Kostal Plenticore PV+BYD | openWB

              StrathColeS 1 Antwort Letzte Antwort
              0
              • DiginixD Diginix

                @joefarm sagte in IOBroker Anbindung an einen Kostal Plenticore:

                Zur Info, falls es noch nicht bekannt ist:
                @arteck hat einen Adapter für die Byd geschrieben (Vielen Dank!!), der schon einmal einige Werte aus der HV-Box ausliest, v.a. die Zustände der einzelnen Zellen. Leider fehlen noch die Daten von der Seite "Statistics Information", die ich speziell interessant finde, weil man dann z.B. "Total Charge" und "Total Discharge" sehen kann.
                Leider sind meine Programmierkenntnisse nicht so großartig, sonst würde ich beim Implementieren mitmachen. Vielleicht kommt es ja noch...

                Verwendet den Adapter sonst schon jemand?

                Jo, wurde hier schon erwähnt. Bisher hatte ich meine BYD nur mal temporär im Netzwerk. Es gibt bisher nur ein LAN Kabel am WR. Entw. ich setz ein Switch oder ziehe vom Router ein zweites Kabel.
                Die BYD Werte haben ja sind rein informativen Charakter und helfen nicht bei Automatisierung?

                @StrathCole Hast du schon neue Erkenntnisse bzgl. der forecast Fehler mit JS-Controller 3.2?

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

                @diginix Ich habe jetzt noch eine neue Version hochgeladen. Ob sie das Problem behebt, kann ich allerdings noch nicht sagen.

                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

                U DiginixD 2 Antworten Letzte Antwort
                0
                • StrathColeS StrathCole

                  @diginix Ich habe jetzt noch eine neue Version hochgeladen. Ob sie das Problem behebt, kann ich allerdings noch nicht sagen.

                  U Offline
                  U Offline
                  ukl-PV
                  schrieb am zuletzt editiert von
                  #966

                  @strathcole bei mir das das Problem mit dem Fehler behoben und das logfile ist jetzt sauber - Danke für das update

                  StrathColeS 1 Antwort Letzte Antwort
                  0
                  • U ukl-PV

                    @strathcole bei mir das das Problem mit dem Fehler behoben und das logfile ist jetzt sauber - Danke für das update

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

                    @ukl-pv sagte in IOBroker Anbindung an einen Kostal Plenticore:

                    @strathcole bei mir das das Problem mit dem Fehler behoben und das logfile ist jetzt sauber - Danke für das update

                    Ist es nach einem Neustart immer. Das Problem tritt immer erst nach dem Tageswechsel auf.

                    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

                      @diginix Ich habe jetzt noch eine neue Version hochgeladen. Ob sie das Problem behebt, kann ich allerdings noch nicht sagen.

                      DiginixD Offline
                      DiginixD Offline
                      Diginix
                      schrieb am zuletzt editiert von Diginix
                      #968

                      @strathcole Die reguläre 2.1.8 vom beta repo oder schon die 2.1.9 über GIT?

                      ..:: So long! Tom ::..

                      NUC7i3 (Ubuntu Proxmox VM) | Echo Dots 2+3. Gen | Xiaomi Sensoren | Mi Robot 1S | Yeelight | Sonoff | Shelly | H801 RGB | Gosund SP1 | NodeMCU+ESP32 | Kostal Plenticore PV+BYD | openWB

                      StrathColeS 1 Antwort Letzte Antwort
                      0
                      • DiginixD Diginix

                        @strathcole Die reguläre 2.1.8 vom beta repo oder schon die 2.1.9 über GIT?

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

                        @diginix git ist identisch mit 2.1.9 aktuell

                        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

                        DiginixD 1 Antwort Letzte Antwort
                        0
                        • StrathColeS StrathCole

                          @diginix git ist identisch mit 2.1.9 aktuell

                          DiginixD Offline
                          DiginixD Offline
                          Diginix
                          schrieb am zuletzt editiert von Diginix
                          #970

                          @strathcole in der GUI wird mir nur 2.1.8 angezeigt

                          Bin mal direkt auf 2.1.9 gesprungen. Morgen 8 Uhr wissen wir mehr.

                          ..:: So long! Tom ::..

                          NUC7i3 (Ubuntu Proxmox VM) | Echo Dots 2+3. Gen | Xiaomi Sensoren | Mi Robot 1S | Yeelight | Sonoff | Shelly | H801 RGB | Gosund SP1 | NodeMCU+ESP32 | Kostal Plenticore PV+BYD | openWB

                          StrathColeS 1 Antwort Letzte Antwort
                          0
                          • DiginixD Diginix

                            @strathcole in der GUI wird mir nur 2.1.8 angezeigt

                            Bin mal direkt auf 2.1.9 gesprungen. Morgen 8 Uhr wissen wir mehr.

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

                            @diginix sagte in IOBroker Anbindung an einen Kostal Plenticore:

                            @strathcole in der GUI wird mir nur 2.1.8 angezeigt

                            Es dauert immer etwas, bis die neuen Uploads auch in der GUI auftauchen.

                            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

                            DiginixD U 2 Antworten Letzte Antwort
                            0
                            • StrathColeS StrathCole

                              @diginix sagte in IOBroker Anbindung an einen Kostal Plenticore:

                              @strathcole in der GUI wird mir nur 2.1.8 angezeigt

                              Es dauert immer etwas, bis die neuen Uploads auch in der GUI auftauchen.

                              DiginixD Offline
                              DiginixD Offline
                              Diginix
                              schrieb am zuletzt editiert von
                              #972

                              @strathcole Wie auch immer. Mit 2.1.9 ist das Log heute ruhig. Ich will den Tag nicht vor dem Abend loben, aber sieht so aus als hättest du das Problem behoben.

                              Danke!

                              ..:: So long! Tom ::..

                              NUC7i3 (Ubuntu Proxmox VM) | Echo Dots 2+3. Gen | Xiaomi Sensoren | Mi Robot 1S | Yeelight | Sonoff | Shelly | H801 RGB | Gosund SP1 | NodeMCU+ESP32 | Kostal Plenticore PV+BYD | openWB

                              1 Antwort Letzte Antwort
                              0
                              • StrathColeS StrathCole

                                @diginix sagte in IOBroker Anbindung an einen Kostal Plenticore:

                                @strathcole in der GUI wird mir nur 2.1.8 angezeigt

                                Es dauert immer etwas, bis die neuen Uploads auch in der GUI auftauchen.

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

                                @strathcole , auch beim mir ist noch alles ruhig mit der neuen Version - bin aber noch auf 2.1.8 seit gestern

                                andere Sache, seit gestern vormittag (9:30) funktioniert die Wetter Vorhersage nicht mehr, es gibt keine updates.
                                Ich benutzte : "Current estimated max power with clouds and ....".
                                Hast Du eine Idee, wo ich schauen kann? Das update auf die 2.1.8. habe ich aber erst am nachmittag gemacht, d.h. es hat damit nix tu tun

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

                                StrathColeS 1 Antwort Letzte Antwort
                                0
                                • DiginixD Offline
                                  DiginixD Offline
                                  Diginix
                                  schrieb am zuletzt editiert von
                                  #974

                                  @ukl Ich nutze plenticore.0.forecast.current.power.skyvis aber alle 4 Vorhersagewerte werden bei mir aktualisiert.
                                  Aktuell aber auch alle mit dem max. möglichen Anlagewert weil keine Bewölkung.

                                  ..:: So long! Tom ::..

                                  NUC7i3 (Ubuntu Proxmox VM) | Echo Dots 2+3. Gen | Xiaomi Sensoren | Mi Robot 1S | Yeelight | Sonoff | Shelly | H801 RGB | Gosund SP1 | NodeMCU+ESP32 | Kostal Plenticore PV+BYD | openWB

                                  1 Antwort Letzte Antwort
                                  0
                                  • U ukl

                                    @strathcole , auch beim mir ist noch alles ruhig mit der neuen Version - bin aber noch auf 2.1.8 seit gestern

                                    andere Sache, seit gestern vormittag (9:30) funktioniert die Wetter Vorhersage nicht mehr, es gibt keine updates.
                                    Ich benutzte : "Current estimated max power with clouds and ....".
                                    Hast Du eine Idee, wo ich schauen kann? Das update auf die 2.1.8. habe ich aber erst am nachmittag gemacht, d.h. es hat damit nix tu tun

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

                                    @ukl Bei mir werden die Werte auch alle aktualisiert.

                                    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

                                    U 1 Antwort Letzte Antwort
                                    0
                                    • StrathColeS StrathCole

                                      @ukl Bei mir werden die Werte auch alle aktualisiert.

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

                                      @strathcole ich habe diese Meldung in meinen logs gefunden
                                      309c0ae0-618d-4ba8-9721-a62e26d23371-grafik.png
                                      das kommt zyklisch, so wie der update timer eingestellt ist. Und das habe ich früher nie gesehen.
                                      Kann das daran liegen?

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

                                      U 1 Antwort Letzte Antwort
                                      0
                                      • U ukl

                                        @strathcole ich habe diese Meldung in meinen logs gefunden
                                        309c0ae0-618d-4ba8-9721-a62e26d23371-grafik.png
                                        das kommt zyklisch, so wie der update timer eingestellt ist. Und das habe ich früher nie gesehen.
                                        Kann das daran liegen?

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

                                        Problem gelöst, nachdem ich den weatherunderground adapter mehrmals neugestartet habe, funktionierte alles auf einmal wieder wie vorher - die Fehlermeldung vom WU Adapter war dann auch weg

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

                                        1 Antwort Letzte Antwort
                                        0
                                        • HALH HAL

                                          @joefarm Mich würde ein Adapter für BYD HVS interessieren. Bisher klappt damit nur das Windows Programm "Be Connect Plus-V1.4.exe" und abgespeckt die "Be Connect App". Es soll wohl auch mittels pearl Script gehen, aber auf meinem Tinkerboard kriege ich das nicht zum laufen .

                                          readBYD.pl

                                          #!/usr/bin/perl
                                          #
                                          # readBYD.pl
                                          #
                                          # This program reads some current values from a BYD HVS/HVM Premium Battery Box.
                                          # There is NO WARRANTY
                                          #
                                          #
                                          # If you find this program useful send me some greetings to forenandi73@kabelmail.de
                                          #
                                          # redirect STDERR to nul (Windows) or /dev/null (UNIX) if you are not interested in the debugging output
                                          
                                          use strict;
                                          use IO::Socket;
                                          use Digest::CRC;
                                          
                                          # connect to BYD HVS/HVM Premium device, adjust PeerAddr to match your IP
                                          my $sock = IO::Socket::INET->new(PeerAddr => '192.168.178.78', PeerPort => '8080', Proto => 'tcp') or die;
                                          
                                          # commands to be sent to BYD
                                          my $tobyd1="\x01\x03\x00\x00\x00\x13\x04\x07";
                                          my $tobyd2="\x01\x03\x05\x00\x00\x19\x84\xcc";
                                          
                                          # unbuffer output on socket, stdout, stderr
                                          my $old=select($sock); $|=1; 
                                          select(STDOUT);$|=1;
                                          select(STDERR);$|=1;
                                          select($old);
                                          
                                          # always read one byte from stream
                                          $/=\1;
                                          
                                          # create empty hash for results
                                          my %rh=();
                                          
                                          # send first command to BYD
                                          print $sock $tobyd1;
                                          print STDERR "Data1 sent!\n";
                                          
                                          # read 3 bytes
                                          my $b11=<$sock>;	# 0x01
                                          my $b12=<$sock>; 	# 0x03
                                          my $b13=<$sock>; 	# length of data
                                          
                                          my $dl1=ord($b13);	# data length
                                          printf STDERR "data length=%d\n",$dl1;
                                          
                                          # read payload
                                          my $pl1=$b13;	
                                          for (my $i=0;$i<$dl1;$i++)
                                          {
                                          	$pl1.=<$sock>;
                                          }
                                          
                                          # read checksum bytes
                                          my $c11=<$sock>;	# checksum LSB
                                          my $c12=<$sock>;	# checksum MSB
                                          
                                          # get overall checksum from data
                                          my $crc1=ord($c12)*256 + ord($c11);
                                          
                                          # calculate checksum from actual data
                                          my $ctx1 = Digest::CRC->new(width=>16, init=>0x0284, xorout=>0x0000, refout=>1, poly=>0x8005, refin=>1, cont=>0);
                                          $ctx1->add($pl1);
                                          my $digest1=$ctx1->digest;
                                          
                                          printf STDERR "Payload length: %d, Checksum=%04X, Digest=%04X\n",length($pl1),$crc1,$digest1;
                                          
                                          if ($b11 ne "\x01" || $b12 ne "\x03" || $crc1 != $digest1)
                                          {
                                          	die "illegal/unexpected data received";
                                          }
                                          
                                          # print received bytes
                                          my $num1=0;
                                          for (my $i=0;$i<length($pl1);$i++)
                                          {
                                          	my $c=substr($pl1,$i,1);
                                          	$num1++;
                                          	my $o=ord($c);
                                          	$c=".";
                                          	if ($o > 31 && $o < 127) { $c=chr($o); }
                                          
                                          	printf STDERR "%03d: %03d %02X %s\n",$num1,$o,$o,$c;
                                          }
                                          
                                          # extract the values from the payload
                                          &getvals1(\%rh,$pl1);
                                          
                                          # send second command
                                          print $sock $tobyd2;
                                          print STDERR "Data2 sent!\n";
                                          
                                          # read 3 bytes from response
                                          my $b21=<$sock>;	#0x01
                                          my $b22=<$sock>; 	#0x03
                                          my $b23=<$sock>; 	# length of data
                                          
                                          my $dl2=ord($b23);	# data length
                                          printf STDERR "data length=%d\n",$dl2;
                                          
                                          # read the payload
                                          my $pl2=$b23;		# payload
                                          for (my $i=0;$i<$dl2;$i++)
                                          {
                                          	$pl2.=<$sock>;
                                          }
                                          
                                          # read checksum bytes
                                          my $c21=<$sock>;	# checksum LSB
                                          my $c22=<$sock>;	# checksum MSB
                                          
                                          # get overall checksum from data
                                          my $crc2=ord($c22)*256 + ord($c21);
                                          
                                          # calculate checksum from actual payload
                                          my $ctx2 = Digest::CRC->new(width=>16, init=>0x0284, xorout=>0x0000, refout=>1, poly=>0x8005, refin=>1, cont=>0);
                                          $ctx2->add($pl2);
                                          my $digest2=$ctx2->digest;
                                          
                                          printf STDERR "Payload length: %d, Checksum=%04X, Digest=%04X\n",length($pl2),$crc2,$digest2;
                                          
                                          if ($b21 ne "\x01" || $b22 ne "\x03" || $crc2 != $digest2)
                                          {
                                          	die "illegal/unexpected data received";
                                          }
                                          
                                          # print payload bytes
                                          my $num2=0;
                                          for (my $i=0;$i<length($pl2);$i++)
                                          {
                                          	my $c=substr($pl2,$i,1);
                                          	$num2++;
                                          	my $o=ord($c);
                                          	$c=".";
                                          	if ($o > 31 && $o < 127) { $c=chr($o); }
                                          
                                          	printf STDERR "%03d: %03d %02X %s\n",$num2,$o,$o,$c;
                                          }
                                          
                                          # extract the values from the payload
                                          &getvals2(\%rh,$pl2);
                                          
                                          # finally print the accumulated results
                                          foreach my $k (sort keys %rh)
                                          {
                                          	printf STDOUT "%s = %s\n",$k,$rh{$k};
                                          }
                                          
                                          $sock->close();
                                          print STDERR "End.\n";
                                          exit(0);
                                          
                                          sub getvals1
                                          {
                                          	my $h=shift @_;
                                          	my $pl=shift @_;
                                          
                                          	$$h{SerialNo}=substr($pl,1,19);
                                          	$$h{"BMU-A"}=getvers(substr($pl,25,2));
                                          	$$h{"BMU-B"}=getvers(substr($pl,27,2));
                                          	$$h{BMS}=getvers(substr($pl,29,2));
                                          }
                                          
                                          sub getvals2
                                          {
                                          	my $h=shift @_;
                                          	my $pl=shift @_;
                                          
                                          	$$h{SoC}=getshort(substr($pl,1,2));
                                          	$$h{CellVhigh}=getshort(substr($pl,3,2))/100;
                                          	$$h{CellVlow}=getshort(substr($pl,5,2))/100;
                                          	$$h{SoH}=getshort(substr($pl,7,2));
                                          	$$h{Vbatt}=getshort(substr($pl,11,2))/100;
                                          	$$h{CellTempHigh}=getshort(substr($pl,13,2));
                                          	$$h{CellTempLow}=getshort(substr($pl,15,2));
                                          	$$h{Vout}=getshort(substr($pl,33,2))/100;
                                          
                                          	my $currval=getshort(substr($pl,9,2));
                                          	
                                          	if ($currval < 32768)
                                          	{
                                          		$$h{Current}=$currval/10;
                                          	}
                                          	else
                                          	{
                                          		$$h{Current}=($currval-2**16)/10;
                                          	}
                                          }
                                          
                                          sub getshort
                                          {
                                          	my $v=shift @_;
                                          	return(
                                          		ord(substr($v,0,1))*256 + ord(substr($v,1,1))
                                          	);
                                          }
                                          
                                          sub getvers
                                          {
                                          	my $v=shift @_;
                                          	return(
                                          		ord(substr($v,0,1)) . "." .  ord(substr($v,1,1))
                                          	);
                                          }
                                          
                                          
                                          
                                          T Offline
                                          T Offline
                                          tueftler17
                                          schrieb am zuletzt editiert von tueftler17
                                          #978

                                          @hal Ich habe mich mal drangesetzt und mich an einem Adapter für meinen BYD HVS gesetzt. Bei mir spuckt er hübsch alle möglichen Daten aus, er braucht aber sicher noch hier und da etwas Feinschliff. Ist auch der erste Adapter den ich erstellt habe.

                                          Ich bekomme so ziemlich alles raus was man über die BYD-Software auslesen kann und schreibe es in states im iobroker. Schreibende Logik habe ich im Adapter nicht drin. Die Logik die ich implementiert habe läuft als JS, prüft die Spannung der Zelle mit der meisten Ladung und regelt ggfs. die Ladung ab.

                                          Hättest Du Lust den Adapter mal bei Dir zu testen? Da ich nur zwei Batteriemodule habe werden auch im Augenblick nur die Daten von den Modulen ausgegeben.

                                          Viele Grüße
                                          Tueftler17

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          855

                                          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