Benachrichtigungen
Alles löschen

JKBMS auslesen über BLE (Bluetooth) oder RS485 Adapter mittels EPS, ioBroker

729 Beiträge
163 Benutzer
16 Likes
132.2 K Ansichten
(@izeman)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 14
 

... Nun habe ich die Software aus diesem Thread benutzt und kein CAN Bus genommen sondern über den ESP32 ein JSON-File rausgeschrieben. Für mich gehört der ESP32 einfach zur Batterie. Er erweitert einfach die Kommunikationsschnittstellen des BMS. MQTT und JSON...

Danke. Hättest du dazu vielleicht den source code des ESP32? Würde das gerne mal ausprobieren. Wäre super.


   
AntwortZitat
(@izeman)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 14
 

Aber, der ESP32 läuft maximal 2 Tage, dann steigt er aus.

Das Problem habe ich auch. Weiss nicht warum, aber bei mir läuft es tlw nicht mal 24h ohne dass BT abbricht. Ich kann mich, wenn die Verbindung weg ist, über das Handy verbinden, daher meine Vermutung dass BT getrennt wurde.


   
AntwortZitat
(@mascheihei)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 69
 

Danke. Hättest du dazu vielleicht den source code des ESP32? Würde das gerne mal ausprobieren. Wäre super.

Bin gerade im Urlaub. Stelle ich zur Verfügung wenn ich wieder zurück bin. Ist aber auch noch im Testmodus. Während der Urlaubszeit habe ich es sicherheitshalber abgeschaltet.


   
AntwortZitat
(@rufo1009)
Newbie
Beigetreten: Vor 2 Jahren
Beiträge: 2
 

Hallo und guten Abend.
Vielen Dank, @Scotty69 für dieses grandiose Tool. Ist mit einem NodeMCU (BLEClient V3.6.rar) per BLE mit dem JK-BMS (B2A20S20P) vebunden und sendet per MQTT ins WLAN. Ausgewertet wird per HomeAssistant und Grafana (InfluxDB), was bei den Werten auch bestens funktioniert.
Hätte dazu nur zwei Fragen:

1.) Ich habe mit mal die YAML für ESPHome angesehen und festgestellt, dass hier viel mehr Daten vom BMS abgerufen werden als über Arduino-Kompilation. HAbe ich was übersehen? Werte wie "min cell voltage" sind nur bei ESPHome verfügbar und weitere Unterschiede.

2.) Ich bekomme die Binary-Sensor zum ein-/ausschalten der Charge- und Discharge - Funktionen im BMS nicht zum laufen. Gibt es hierzu ein YAML-Beispiel für diese Schalter?

Vielen Dank schon mal.

Viele Grüße


   
AntwortZitat
McFarlan
(@mcfarlan)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 82
 

Kann man per RS485 die gleichen Werte im BMS ändern wie per App?
Ich komme in meine Settings nicht mehr rein, weil mein geändertes Passwort nicht akzeptiert wird. Der Support von JKBMS.com ist tot, per Mail kommt auch nix.

installierte PV: Fronius Symo 8.2-3-M + 38xJAM5(R)-72-210 (7,98kWp)


   
AntwortZitat
(@pixelstorm)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 15
 

Hallo,
ich habe jetzt die letzten zwei Tage den kompletten Thread durchgelesen. Erst einmal ein herzliches Dankeschön an Scotty89 und alle Helfer die mitgewirkt haben.
Gestern habe ich mich also auch daran gemacht die Version 3.6 auf einen ESP32 zu flashen. Dazu habe ich die Arduino-IDE 2.0 installiert.
Beim ersten Kompilierungsversuch hat die IDE nun aber Warnings bezüglich der Datei can.h ausgegeben. Diese sei veraltet und man solle doch bitte stattdessen die twai.h benutzen.
Gesagt, getan - Jetzt kamen jede Menge Fehler zurück aus der Victron_CAN.ino. Lange Rede kurzer Sinn, ich habe die Victron_CAN.ino jetzt so angepasst das sie mit der twai.h läuft.
Es kompiliert und ich kann es flashen. WLAN-Verbindung funktioniert. Wer diese Version also einmal Testen möchte kann sich gerne bei mir melden.
Ich kann es leider nicht, da ich zur Zeit noch keine PV-Anlage habe (kommt im April). 16 Zellen LiFePO4 habe ich in China bestellt (Gobelpower), die werden im November geliefert.
Außerdem habe ich noch ein Mason 20Ah DIY Kit (Gehäuse) bestellt.
Das einzige was ich bis jetzt habe ist ein JK-BMS Typ JK-B2A20S20P-H-C. Da ich dafür aber auch kein passendes Netzteil zur Zeit habe (ist im Zulauf) sind meine Testmöglichkeiten natürlich sehr eingeschränkt.
Trotzdem habe ich schon mal die Software auf den ESP32 geflashed und habe jetzt folgendes Problem: Ich habe HomeAssistant in meinem lokalen Netzt laufen und dort läuft auch der Mosquitto-Broker der auch einwandfrei funktioniert.
Zusätzlich läuft auch noch Zigbee2MQTT damit meine Zigbee Geräte sich mit dem Mosquitto-Broker unterhalten können.
Das Problem das ich habe ist, das ich keine Verbindung zum Mosquitto-Broker bekomme.
Vielleicht kann mir jemand helfen warum das nicht funktioniert.

Das ist was im Protokoll des Mosquitto Brokers ausgegeben wird.

2022-10-09 12:07:07: New connection from 192.168.178.32:57650 on port 1883.
2022-10-09 12:07:07: Client <unknown> disconnected, not authorised.
2022-10-09 12:07:12: New connection from 192.168.178.32:57651 on port 1883.
2022-10-09 12:07:12: Client <unknown> disconnected, not authorised.
2022-10-09 12:07:22: New connection from 192.168.178.32:57652 on port 1883.
2022-10-09 12:07:22: Client <unknown> disconnected, not authorised.
2022-10-09 12:07:28: New connection from 192.168.178.32:57653 on port 1883.
2022-10-09 12:07:28: Client <unknown> disconnected, not authorised.

Ich verstehe ja, das er den Client nicht kennt, aber wie sage ich dem Mosquitto-Broker in HomeAssistant das er den Client akzeptieren soll

Vielen dank im Voraus für eure Hilfe.

Gruß, PixelStorm

Ich stelle hier mal meine User-Settings aus der BLE_BMS_Connection.ino rein.

//OTA Setting
#define OTA_Hostname "JKBMS_ESP32" // -> hier ändern wenn OTA Name anders sein soll
#define OTA_Passwort "" // -> hier ändern wenn OTA Passwort anders sein soll

// MQTT Setting
const char* mqtt_server = "192.168.178.102"; // -> hier die IP des MQTT Server eingeben
const int mqtt_port = 1883; // -> hier den Port einstellen für den MQTT Server
const char* mqtt_username = "JKBMS-01"; // -> hier MQTT Benutzername eintragen
const char* mqtt_passwort = "Test1234"; // -> hier MQTT Passwort eingeben
String mqttname = "JKBMS_1_Watchdog"; // -> hier wird der MQTT Gerätename festgelegt
const int mqttpublishtime_offset = 1000; // -> hier einstellen wie oft Daten gesendet werden sollen. 1000 = jede Sekunde.

// CAN Settings
bool CAN_use = false; // -> true wenn ein CAN MOdul vorhanden und verwendet wird für die Pylontech simulation
const int CAN_Cylcetime = 1000;

//W-LAN Setting
const char* ssid = "Meine SSID";
const char* password = "Mein Passwort";

//BMS-BLE Settings
const char* Geraetename = "JK-B2A20S20P"; //JK-B2A20S20P JK-B2A24S15P

//########### Ende der "User" Settings #########


   
AntwortZitat
(@bigmacblau)
Newbie
Beigetreten: Vor 2 Jahren
Beiträge: 2
 

Vielen Dank an Scotty89 für die viele Arbeit. !!!! Ein Problem habe ich bei dem Er oder Ihr mir helfen könnt. Als ESP32 habe ich einen NMCU-ESP32 von Berrybase. Egal mit welcher Boardwahl ich es bei Arduino auch versuche, es geht nicht. Weder im Netz noch auf meinem MQTT Server erscheint das Board. ( Wlan, IP und Pin sind natürlich angepasst.) Flashen kann ich nicht mit der Einstellung NodeMCU-32s denn da meldet Arduino" Speicher zu klein", (keine Einstellung Partition möglich) also nehme ich das ESP-32DEV Board. Kann das die Ursache sein?
Für eure Hilfe Danke im voraus.
Gruß
Wolfgang


   
AntwortZitat
(@pixelstorm)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 15
 

Vielen Dank an Scotty89 für die viele Arbeit. !!!! Ein Problem habe ich bei dem Er oder Ihr mir helfen könnt. Als ESP32 habe ich einen NMCU-ESP32 von Berrybase. Egal mit welcher Boardwahl ich es bei Arduino auch versuche, es geht nicht. Weder im Netz noch auf meinem MQTT Server erscheint das Board. ( Wlan, IP und Pin sind natürlich angepasst.) Flashen kann ich nicht mit der Einstellung NodeMCU-32s denn da meldet Arduino" Speicher zu klein", (keine Einstellung Partition möglich) also nehme ich das ESP-32DEV Board. Kann das die Ursache sein?
Für eure Hilfe Danke im voraus.
Gruß
Wolfgang

Hallo Wolfgang,
das ESP-32DEV Board habe ich auch genommen. Hast du auch das "Partition Scheme" im Menu Punkt "Tools" auf "Huge APP(3MB No OTA/!MB SPIFFS) eingestellt?
Ich benutze allerdings die Arduino-IDE 2.0. Für die ältere IDE hat Scotty89 die Einstellung hier gepostet: https://forum.drbacke.de/viewtopic.php?p=9682#p9682

Gruß, PixelStorm


   
AntwortZitat
(@bigmacblau)
Newbie
Beigetreten: Vor 2 Jahren
Beiträge: 2
 

Ja, das Board habe ich auch genommen weil ja nur da die Partitionseinstellung möglich ist. Das Board was ich habe ist aber ein NMCU-ESP32, und diese Wahl gibt es in der Arduino 2.0 IDE nicht.
Gruß
Wolfgang


   
AntwortZitat
(@pixelstorm)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 15
 

Ja, das Board habe ich auch genommen weil ja nur da die Partitionseinstellung möglich ist. Das Board was ich habe ist aber ein NMCU-ESP32, und diese Wahl gibt es in der Arduino 2.0 IDE nicht.
Gruß
Wolfgang

Hallo Wolfgang,
sorry, da bin ich dann leider raus da ich nicht weiß was die NMCU-ESP32 bedeutet.
Ich hoffe jemand anderes kann dir mit dem Problem helfen.

Gruß, PixelStorm


   
AntwortZitat
(@polocup100)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 5
 

Hallo zusammen und tolle Arbeit Scotty89.

Ich bin gerade dabei mir ein ESS System zusammen zu stellen.

20x 370W Solar, EASun 5,6kW Wechselrichter+ Lisefpo 48V 280Ah 16S akku, incl. JK BMS

Ziel ist eine Nulleinspeisung.

Wenn nun mit dem ESP32 ein Pylontech bms simuliert werden kann, sollte doch auch der Voltronic Inverter (alle Clones) damit arbeiten können, oder habe ich da ein Verständnisproblem?

Was is überhaupt der Vorteil wenn das BMS mit dem Inverter spricht?
Kann man den Inverter dann ggf. auch über den Iobroker steuer?
Wie hab ihr zB. das Überschussladen realisiert?

VG
Sascha


   
AntwortZitat
(@izeman)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 14
 

20x 370W Solar, EASun 5,6kW Wechselrichter+ Lisefpo 48V 280Ah 16S akku, incl. JK BMS

Wenn du eine Pylontech emulieren willst, dann musst du eine 15s Batterie bauen, da die Pylontech 15s sind. Sonst stimmen die Ladespannungen etc nicht.
Ausserdem finde ich knapp 15kWh ein wenig viel für 6kWp. Der wird im Winter nie voll, und im Sommer auch nur wenn du sonst recht wenig Verbrauch hast. Zumindest ist das meine Erfahrung mit einer 1:1 Konfiguration.


   
AntwortZitat
(@pixelstorm)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 15
 

Hallo,

ich bin jetzt ein wenig weiter gekommen mit meinem MQTT-Problem: https://forum.drbacke.de/viewtopic.php?p=63917#p63917 .
Der ESP taucht jetzt zwar im MQTT-Explorer auf, das aber auch nur für 2x20 Versuche sich mit dem JKBMS zu verbinden (ich habe keines angeschlossen).
Danach verbindet er sich nicht wieder. Ich muss den ESP erst einmal stromlos machen, dann verbindet er sich wieder für 2x20 Versuche.
Im Mosquitto-Broker von HomeAssistant taucht er allerdings gar nicht auf. Hat da jemand eine Lösung für mich der ebenfalls HA nutzt?
Vielen Dank für eure Hilfe im Voraus.

Gruß, PixelStorm


   
AntwortZitat
(@derlang)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 304
 

HomeAssistant oder Openhab oder was auch immer verbindet sich doch eh nur mit dem Broker.
Hier holen die sich die Topics ab, welche ein Sender einstellt. Wenn du die richtigen Topics abonnierst, dann erhältst du die Daten auf dem Topic.

Der ESP muss dann nur die Topics mit Werten im Broker schreiben.

Ich habe das Projekt hier nicht weiter verfolgt, da meine Hinweise nur teilweise aufgenommen wurden. Ich habe keinen JKBMS und kann daher nur Theorie und Erfahrung mitgeben.

Ich hoffe in der Routine wird immer geprüft, ob

a) der ESP32 noch mit dem WLAN verbunden ist
b) die MQTT Verbindung noch steht

Wenn nicht a, dann neue WLAN Verbindung aufbauen und MQTT neu initialisieren
Wenn nicht b, dann MQTT neu initialisieren

Gut wäre eine LastWill entsprechend zu konfigurieren. Den kann man dann vom Broker abfragen und sieht den Status des MQTT Nodes. Leider sehr zeitversetzt, daher prüfe ich in der ESP32 Anwendung stets o.g. Punkte als erstes (ok, OTA kommt noch vorher ran).

Gruß
Jörg

How to - Akku China Shopping


   
AntwortZitat
(@pixelstorm)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 15
 

HomeAssistant oder Openhab oder was auch immer verbindet sich doch eh nur mit dem Broker.
Hier holen die sich die Topics ab, welche ein Sender einstellt. Wenn du die richtigen Topics abonnierst, dann erhältst du die Daten auf dem Topic.

Der ESP muss dann nur die Topics mit Werten im Broker schreiben.

Ich habe das Projekt hier nicht weiter verfolgt, da meine Hinweise nur teilweise aufgenommen wurden. Ich habe keinen JKBMS und kann daher nur Theorie und Erfahrung mitgeben.

Ich hoffe in der Routine wird immer geprüft, ob

a) der ESP32 noch mit dem WLAN verbunden ist
b) die MQTT Verbindung noch steht

Wenn nicht a, dann neue WLAN Verbindung aufbauen und MQTT neu initialisieren
Wenn nicht b, dann MQTT neu initialisieren

Gut wäre eine LastWill entsprechend zu konfigurieren. Den kann man dann vom Broker abfragen und sieht den Status des MQTT Nodes. Leider sehr zeitversetzt, daher prüfe ich in der ESP32 Anwendung stets o.g. Punkte als erstes (ok, OTA kommt noch vorher ran).

Gruß
Jörg

Hallo Jörg, vielen Dank für deine Antwort. Dann ist wohl mein Problem das ich nicht weiß wie ich im Mosquitto-Broker von HomeAssistant ein Topic abboniere. Ich muss mal ein wenig googeln ob ich da etwas finde.

UPDATE: Jetzt taucht der ESP auch in HomeAssistant auf. Habe mich ein wenig durch die Doku gelesen und bin fündig geworden. Nochmals Danke Jörg, du hast mich auf die richtige Spur gebracht.

Gruß, Olaf


   
AntwortZitat
Seite 27 / 49
Teilen: