Moin Leute,
ich möchte meinem JKBMS einen externen Schalter verpassen, um Discharge an- bzw. auszuschalten. Das BMS selbst hat zwar einen Taster, mit dem sich aber lediglich das ganze System starten / resetten lässt, nicht der (wenn man so will) Betriebsmodus. Ich will (und kann) nicht jedesmal mit der App fummeln, um das zu schalten.
Ich dachte nun, diese Funktion über einen ESP32 zu machen: wenn er entsprechende Signale bekommt, schaltet er im JKBMS über die RS485-Verbindung Discharge an bzw. aus.
Leider finde ich nur einige Scripte, die den Status abfragen, auch über Bluetooth. Viele Posts behandeln Probleme in der Kommunikation insbesondere über RS485. Von einer aktiven Steuerung ganz zu schweigen.
Vielleicht habe ich einfach nicht das richtige gefunden?
Oder der Ansatz ist Unfug?
Freue mich über Rückmeldungen.
Danke + Grüße!
Das lass mal gleich bleiben. Die im bms vorhanden Schalter sind nicht dafür da, um als bequeme Betriebsschalter missbraucht zu werden.
Denn du kannst dir damit massiv Ärger einhandeln.
Beim neuen JK-BMS Inverter Version geht das über ModBus-RS485. Über die BT App kann man das auch ein/ausschalten.
Ob man das "mißbrauchen" kann ist eine andere Frage. ich denke das der BMS Hersteller die MOSFETs und deren Logik schon so entwickelt haben sollten das das Schalten gefahrlos funktionieren sollte. Das BMS muß sich ja auch darauf verlassen können.
Es sind diese Register (HEX'adezimal und DWord = 32Bit Register):
- 0x1070 Wert 0 oder 1 für Charge Schalter
- 0x1074 Wert 0 oder 1 für Discharge Schalter
- 0x1078 Wert 0 oder 1 für Balance Schalter
- 0x1114 Bit 9 (Wert 512) für Float Modus, dieses Register "Flags" enthält noch mehr Bits für andere Schalter, die gleichen wie in der BT App.
Ich steuere direkt über USB-RS485 Dongle meine beiden JK-BMS aus HomeAssistant an. Im Anhang meine YAML Konfiguration dafür. Da du mit ESPHome arbeiten möchtest kannst du mit leichten Änderungen das sicherlich portieren. Es gibt zwischen ModBus HA zu ESPHome ein par kleinere Unterschiede, besonders bei der Ansteuerung von Bitfeldern, da ist ESPHome leistungsfähiger und man kann mit weniger Trickserei arbeiten.
switch:
- platform: template
switches:
battery_1_charge_enable:
friendly_name: "Battery 1 charge enable"
unique_id: "battery_1_charge_enable"
value_template: "{{ int(states('sensor.battery_1_charge_enable'), 0) == 1 }}"
turn_on:
service: modbus.write_register
data_template:
hub: "JKBMS1"
slave: 0
address: 0x1070
value: [0, 1]
turn_off:
service: modbus.write_register
data_template:
hub: "JKBMS1"
slave: 0
address: 0x1070
value: [0, 0]
battery_1.yaml.txt (28,5 KB)
Ob das Schalten gefahrlos funktioniert, ist die eine Frage. Welche Auswirkungen es hat, die andere.
Wer z.b. das entladen abschaltet, aber dann mit hohem strom lädt, oder laden will, sollte daneben stehenbleiben und die Temperatur des bms überwachen. Weil namlich zum laden dann ca 1 V am bms abfallen.
Ein Schmutzeffekt des common port Aufbau.
Umgekehrt genauso: laden abgeschaltet, grosse Wärmeentwicklung beim Entladen.
Mein Original Zitat das dann den Sinn meiner Worte besser widerspiegelt.
Wichtig: "ob man das mißbrauchen kann ist eine andere Frage"
Super, danke, allerdings handelt es sich bei mir eher um die klassische Variante JK-BD6A24S15P ...
Ich finde deinen Befehlston anmaßend, unpassend und - natürlich - nicht hilfreich. Vielleicht magst du auf weitere Posts in diesem Thread verzichten? Danke!
sorry dann kann ich dir leider nicht helfen ;(
Meinst du mich? Und welchen Befehlston??
Du hast selbst gefragt:
Darauf hab ich sehr höflich geantwortet und auch erklärt, warum. Wenn das aber zu sehr Befehlston ist, dann eben so:
Ja, blanker Unfug und gefährlich.
Update: Aber was sag ich... probiere es einfach aus.
Es verdichtet sich die Vermutung, dass die "nicht Inverter" Modelle über die RS485 nicht gesteuert werden können - lediglich ausgelesen (readonly). Schreiben geht wohl nur über Bluetooth. Interessant ist, dass das Passwort offenbar nur von der App geprüft wird - bei der Kommunikation mit dem BMS keine Rolle spielt ...
... nach langem fummeln und recherchieren, ist jetzt ein ESP32 Sketch entstanden, das zunächst über Bluetooth Statusinfos von einem JKBMS holt und dann beispielhaft Discharge AN/AUS schalten kann:
Gutes Gelingen!
Mal wieder ein Beispiel dafür, dass jemand mit einer Idee kommt, die grober Unfug ist und dann noch frech wird wenn ihm jemand kompetentes helfen will....