NEWS
IOBroker Anbindung an einen Kostal Plenticore
-
@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?
@diginix Ich habe jetzt noch eine neue Version hochgeladen. Ob sie das Problem behebt, kann ich allerdings noch nicht sagen.
-
@diginix Ich habe jetzt noch eine neue Version hochgeladen. Ob sie das Problem behebt, kann ich allerdings noch nicht sagen.
@strathcole bei mir das das Problem mit dem Fehler behoben und das logfile ist jetzt sauber - Danke für das update
-
@strathcole bei mir das das Problem mit dem Fehler behoben und das logfile ist jetzt sauber - Danke für das update
@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.
-
@diginix Ich habe jetzt noch eine neue Version hochgeladen. Ob sie das Problem behebt, kann ich allerdings noch nicht sagen.
@strathcole Die reguläre 2.1.8 vom beta repo oder schon die 2.1.9 über GIT?
-
@strathcole Die reguläre 2.1.8 vom beta repo oder schon die 2.1.9 über GIT?
@diginix git ist identisch mit 2.1.9 aktuell
-
@diginix git ist identisch mit 2.1.9 aktuell
@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.
-
@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.
@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.
-
@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.
@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!
-
@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.
@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 -
@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@ukl Bei mir werden die Werte auch alle aktualisiert.
-
@ukl Bei mir werden die Werte auch alle aktualisiert.
@strathcole ich habe diese Meldung in meinen logs gefunden

das kommt zyklisch, so wie der update timer eingestellt ist. Und das habe ich früher nie gesehen.
Kann das daran liegen? -
@strathcole ich habe diese Meldung in meinen logs gefunden

das kommt zyklisch, so wie der update timer eingestellt ist. Und das habe ich früher nie gesehen.
Kann das daran liegen? -
@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 .
#!/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)) ); }@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 -
@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@tueftler17 ich hätte auch starkes Interesse an Deinem Adapter. Habe auch die HVS5.1 - wobei in 2 Wochen kommen noch 2 Module, so dass ich dann 10kWh habe.
Was meinst Du mit "regelt ggfs. die Ladung ab"? -
@tueftler17 ich hätte auch starkes Interesse an Deinem Adapter. Habe auch die HVS5.1 - wobei in 2 Wochen kommen noch 2 Module, so dass ich dann 10kWh habe.
Was meinst Du mit "regelt ggfs. die Ladung ab"?@ukl Leider sehe ich Deine Antwort erst jetzt, ich bei Antworten bekäme ich automatisiert eine Mail.
Mit abregeln der Ladung meinte ich: Sobald die Zelle mit der höchsten Spannung 3,45 Volt erreicht lade ich nur noch mit 100 Watt, ab 3,50 mit 50 Watt und ab 3,55 gar nicht mehr. Die max. Ladeenergie setze ich über den modbus Adapter.
Zum Adapter an sich schicke ich Dir separat eine PN.
VIele Grüße
Tueftler17 -
@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@tueftler17 Hi Tueftler17 ich bin auch daran interessiert Deinen Adapter "Entwurf" zu testen !
VG HAL -
@tueftler17 Hi Tueftler17 ich bin auch daran interessiert Deinen Adapter "Entwurf" zu testen !
VG HAL@HAL: Habe Dir im Chat die URL geschickt, wenn es bei Dir funktioniert würde ich ihn auch gerne hier veröffentlichen.
VG
Tueftler17 -
@HAL: Habe Dir im Chat die URL geschickt, wenn es bei Dir funktioniert würde ich ihn auch gerne hier veröffentlichen.
VG
Tueftler17@tueftler17 sagte in IOBroker Anbindung an einen Kostal Plenticore:
@HAL: Habe Dir im Chat die URL geschickt, wenn es bei Dir funktioniert würde ich ihn auch gerne hier veröffentlichen.
VG
Tueftler17Hi Tueftler17, zunächst dauert es ziemlich lange bis der Adapter grün wird. Laut dem Log kommt zunächst keine Verbindung zustande ( ich habe einen redirekt der BYD Box auf eine lokale Adresse 192.168.178.21). Redis nutze ich nicht.
bydhvs.0 2021-03-16 18:34:09.160 debug (30559) system.adapter.admin.0: logging true bydhvs.0 2021-03-16 18:33:36.691 debug (30559) system.adapter.admin.0: logging false bydhvs.0 2021-03-16 18:32:57.099 debug (30559) connected set to true bydhvs.0 2021-03-16 18:31:58.562 debug (30559) connected set to false bydhvs.0 2021-03-16 18:31:58.552 error (30559) no connection to IP: 192.168.178.21 bydhvs.0 2021-03-16 18:31:57.555 debug (30559) connected set to true bydhvs.0 2021-03-16 18:31:57.119 debug (30559) connected set to false bydhvs.0 2021-03-16 18:31:57.048 info (30559) gestartet: 60 578 bydhvs.0 2021-03-16 18:31:57.047 info (30559) starte poll bydhvs.0 2021-03-16 18:31:57.047 info (30559) BatDetailshowoften: 60 bydhvs.0 2021-03-16 18:31:57.046 info (30559) Bat Details : false bydhvs.0 2021-03-16 18:31:57.046 info (30559) BYD IP Adress: 192.168.178.21 bydhvs.0 2021-03-16 18:31:57.045 info (30559) Poll Interval: 60 bydhvs.0 2021-03-16 18:31:57.002 info (30559) starting. Version 0.1.1 in /opt/iobroker/node_modules/iobroker.bydhvs, node: v12.21.0, js-controller: 3.2.16 bydhvs.0 2021-03-16 18:31:56.744 debug (30559) statesDB connected bydhvs.0 2021-03-16 18:31:56.743 debug (30559) States connected to redis: 127.0.0.1:9000 bydhvs.0 2021-03-16 18:31:56.731 debug (30559) States create User PubSub Client bydhvs.0 2021-03-16 18:31:56.730 debug (30559) States create System PubSub Client bydhvs.0 2021-03-16 18:31:56.719 debug (30559) Redis States: Use Redis connection: 127.0.0.1:9000 bydhvs.0 2021-03-16 18:31:56.717 debug (30559) objectDB connected bydhvs.0 2021-03-16 18:31:56.707 debug (30559) Objects connected to redis: 127.0.0.1:9001 bydhvs.0 2021-03-16 18:31:56.677 debug (30559) Objects client initialize lua scripts bydhvs.0 2021-03-16 18:31:56.676 debug (30559) Objects create User PubSub Client bydhvs.0 2021-03-16 18:31:56.675 debug (30559) Objects create System PubSub Client bydhvs.0 2021-03-16 18:31:56.673 debug (30559) Objects client ready ... initialize now bydhvs.0 2021-03-16 18:31:56.637 debug (30559) Redis Objects: Use Redis connection: 127.0.0.1:9001Die Werte im Objektbaum stimme leider nicht. Anzahl Module wird richtig erkannt (4) aber die Spannungen sind falsch.

-
@tueftler17 sagte in IOBroker Anbindung an einen Kostal Plenticore:
@HAL: Habe Dir im Chat die URL geschickt, wenn es bei Dir funktioniert würde ich ihn auch gerne hier veröffentlichen.
VG
Tueftler17Hi Tueftler17, zunächst dauert es ziemlich lange bis der Adapter grün wird. Laut dem Log kommt zunächst keine Verbindung zustande ( ich habe einen redirekt der BYD Box auf eine lokale Adresse 192.168.178.21). Redis nutze ich nicht.
bydhvs.0 2021-03-16 18:34:09.160 debug (30559) system.adapter.admin.0: logging true bydhvs.0 2021-03-16 18:33:36.691 debug (30559) system.adapter.admin.0: logging false bydhvs.0 2021-03-16 18:32:57.099 debug (30559) connected set to true bydhvs.0 2021-03-16 18:31:58.562 debug (30559) connected set to false bydhvs.0 2021-03-16 18:31:58.552 error (30559) no connection to IP: 192.168.178.21 bydhvs.0 2021-03-16 18:31:57.555 debug (30559) connected set to true bydhvs.0 2021-03-16 18:31:57.119 debug (30559) connected set to false bydhvs.0 2021-03-16 18:31:57.048 info (30559) gestartet: 60 578 bydhvs.0 2021-03-16 18:31:57.047 info (30559) starte poll bydhvs.0 2021-03-16 18:31:57.047 info (30559) BatDetailshowoften: 60 bydhvs.0 2021-03-16 18:31:57.046 info (30559) Bat Details : false bydhvs.0 2021-03-16 18:31:57.046 info (30559) BYD IP Adress: 192.168.178.21 bydhvs.0 2021-03-16 18:31:57.045 info (30559) Poll Interval: 60 bydhvs.0 2021-03-16 18:31:57.002 info (30559) starting. Version 0.1.1 in /opt/iobroker/node_modules/iobroker.bydhvs, node: v12.21.0, js-controller: 3.2.16 bydhvs.0 2021-03-16 18:31:56.744 debug (30559) statesDB connected bydhvs.0 2021-03-16 18:31:56.743 debug (30559) States connected to redis: 127.0.0.1:9000 bydhvs.0 2021-03-16 18:31:56.731 debug (30559) States create User PubSub Client bydhvs.0 2021-03-16 18:31:56.730 debug (30559) States create System PubSub Client bydhvs.0 2021-03-16 18:31:56.719 debug (30559) Redis States: Use Redis connection: 127.0.0.1:9000 bydhvs.0 2021-03-16 18:31:56.717 debug (30559) objectDB connected bydhvs.0 2021-03-16 18:31:56.707 debug (30559) Objects connected to redis: 127.0.0.1:9001 bydhvs.0 2021-03-16 18:31:56.677 debug (30559) Objects client initialize lua scripts bydhvs.0 2021-03-16 18:31:56.676 debug (30559) Objects create User PubSub Client bydhvs.0 2021-03-16 18:31:56.675 debug (30559) Objects create System PubSub Client bydhvs.0 2021-03-16 18:31:56.673 debug (30559) Objects client ready ... initialize now bydhvs.0 2021-03-16 18:31:56.637 debug (30559) Redis Objects: Use Redis connection: 127.0.0.1:9001Die Werte im Objektbaum stimme leider nicht. Anzahl Module wird richtig erkannt (4) aber die Spannungen sind falsch.

@hal Kannst Du bitte mal das Adapter Log auf "silly" stellen und mir dann das Log schicken? Gerne auch im Chat, wenn Du die Daten nicht öffentlich haben möchtest. Im Log wäre dann auch die Seriennummer des BYD-Speichers zu erkennen, daher die Warnung. Ansonsten gerne auch per Mail, die Mail-Adresse ist bei Github zu sehen.
Danke das Du es getestet hast, ich erwarte das die falschen Spannungen durch die 4 Module kommen, ich habe "nur" zwei.
Cool wäre noch wenn Du mir einen Screenshot von der BYD-Connect-APP mitschicken könntest, dann weiß ich nach welchen Spannungen ich suchen muss.