JK BMS pomocí BLE na ESP32 bez HA

Souhrn tématu

Připojení JK BMS model JK-B1A8S10P V15 k ESP32 přes Bluetooth Low Energy (BLE) bez použití Home Assistant je možné pomocí vlastního kódu v Arduino IDE. Napájení ESP32 lze zajistit DC/DC měničem z 12V nebo 48V baterie, přičemž menší variantou je ESP32C3 supermini s OLED displejem pro zobrazení dat. Kód umožňuje čtení a odesílání dat z BMS na server, včetně konfigurace parametrů jako balancování, nabíjení, ochrany článků a dalších nastavení BMS.
lukas.okoun
Příspěvky: 119
Registrován: sob čer 11, 2022 4:28 pm
Reputace:3

Re: JK BMS pomocí BLE na ESP32 bez HA

Nový příspěvek od lukas.okoun »

no ani ne, spíše jde o ten BLE chip protože jde o to kolik zvládne mít otevřených spojení, ale pokud existuje nějaké ESP32, které zvládne mít otevřené 6 BLE spojení tak se rád poučím :)
jde to samozřejmě řešit tak že se to bude furt připojovat a odpojovat ale potom to asi nebude moc dělat dobře tomu JK a hlavně to bude furt pípat že :)
glottis
Příspěvky: 4079
Registrován: stř úno 02, 2022 10:30 am
Reputace:573
Lokalita: okolí Mělníka
Systémové napětí: 48V
Výkon panelů [Wp]: 13000
Kapacita baterie [kWh]: 30

Re: JK BMS pomocí BLE na ESP32 bez HA

Nový příspěvek od glottis »

No ale ono to furt pipa :) tada aspon me. Kdyz jsem ve sklepe, slysim to. Nebo sem sam komu to dela? :) Ale ona BMS pipa uz jen tim ctenim dat, tak mozna to je jen ono a spojeni drzi otevrene. nebo to obcas udela reconect
Migel
Příspěvky: 1987
Registrován: ned zář 25, 2022 10:47 am
Reputace:377
Lokalita: Pod Karpatmi

Re: JK BMS pomocí BLE na ESP32 bez HA

Nový příspěvek od Migel »

Ja som v tomto neandertalec a nerozumiem tomu tak ako iny.
Ale viem ze viac ako 6bmsiek som cez bluetooth nerozchodil a ani mi nedovolilo nahrat subor do esp ked som tam mal viac zariadeni zapisanych v yaml.
Nakoniec som to nechal tak, lebo mam vela bmsiek a nechcem tam mat vela especok...
Cez bluetooth dokaze akurat tak vycitat naviac odpor vodicov..
Takto tam mam jedno esp na 16bmsiek, ktore dokaze okrem vycitania jednotlivych dat aj vypinat aj zapinat jednotlive bmsky a to bohato staci, takze na bluetooth som sa 💩.
Ukazka z nodered dashboardu:
IMG_9748.jpeg
JZ-2s5p 3,8kWp >> Epever 8415 AN
JV-2s3p 2,7kWp >> Epever 6415 AN
2x Victron MP2 5000V/A paralelne
3x GWL SUN-2000G paralelne

48V 760Ah/35kWh Li-ion
a stále v štádiu budovania :repair:(rozširovania)
somira
Příspěvky: 111
Registrován: pát říj 04, 2024 8:44 am
Reputace:10
Lokalita: Karlovarsko
Systémové napětí: 24V
Výkon panelů [Wp]: 3850
Kapacita baterie [kWh]: 2x7,16
Chci prodávat energii: NE
Chci/Mám dotaci: ANO

Re: JK BMS pomocí BLE na ESP32 bez HA

Nový příspěvek od somira »

pokud by někdo chtěl soubor yaml na baterii s 8 články a počeštěnou, tak takhle vypadá ta moje. Stačí přepsat:

- svůj název zařízení - Moje bat
- svou wifi - ssid: mojewifi
password: heslo
- svou Mac -XX:XX:XX:XX:XX:XX

Kód: Vybrat vše

[substitutions:
  name: jk-bms
  device_description: "Moje bat"
  external_components_source: github://syssi/esphome-jk-bms@main
  mac_address: XX:XX:XX:XX:XX:XX
  # Please use "JK02_24S" if you own a old JK-BMS < hardware version 11.0 (hardware version >= 6.0 and < 11.0)
  # Please use "JK02_32S" if you own a new JK-BMS >= hardware version 11.0 (f.e. JK-B2A8S20P hw 11.XW, sw 11.26)
  # Please use "JK04" if you have some old JK-BMS <= hardware version 3.0 (f.e. JK-B2A16S hw 3.0, sw. 3.3.0)
  protocol_version: JK02_32S

esphome:
  name: ${name}
  comment: ${device_description}
  min_version: 2024.6.0
  project:
    name: "syssi.esphome-jk-bms"
    version: 2.3.0

esp32:
  board: wemos_d1_mini32
  framework:
    type: esp-idf

external_components:
  - source: ${external_components_source}
    refresh: 0s

wifi:
  ssid: mojewifi
  password: heslo

web_server:
  port: 80
  version: 2

ota:
  platform: esphome
  on_begin:
    then:
      - switch.turn_off: ble_client_switch0
      - logger.log: "BLE connection suspended for OTA update"

logger:
  level: DEBUG
  logs:
    esp32_ble_tracker: INFO
    esp32_ble_client: INFO

# If you don't use Home Assistant please remove this `api` section and uncomment the `mqtt` component!
api:

# mqtt:
#   broker: !secret mqtt_host
#   username: !secret mqtt_username
#   password: !secret mqtt_password
#   id: mqtt_client

esp32_ble_tracker:
  scan_parameters:
    active: false

ble_client:
  - mac_address: ${mac_address}
    id: client0

jk_bms_ble:
  - ble_client_id: client0
    protocol_version: ${protocol_version}
    throttle: 10s
    id: bms0

binary_sensor:
  - platform: jk_bms_ble
    balancing:
      name: "${name} balancování"
    charging:
      name: "${name} nabíjení"
    discharging:
      name: "${name} vybíjení"
    heating:
      name: "${name} ohřev"
    online_status:
      name: "${name} stav online"
    dry_contact_1:
      name: "${name} bezpotenciálový kontakt 1"
    dry_contact_2:
      name: "${name} bezpotenciálový kontakt 2"

button:
  - platform: jk_bms_ble
    retrieve_settings:
      name: "${name} načíst nastavení"
    retrieve_device_info:
      name: "${name} načíst informace o zařízení"

number:
  - platform: jk_bms_ble
    jk_bms_ble_id: bms0
    balance_trigger_voltage:
      name: "${name} Rozdíl napětí pro spuštění balancování"
    cell_count:
      name: "${name} Počet článků"
    total_battery_capacity:
      name: "${name} Celková kapacita baterie"
    cell_voltage_overvoltage_protection:
      name: "${name} Přepěťová ochrana článku"
    cell_voltage_overvoltage_recovery:
      name: "${name} Obnovení po přepětí článku"
    cell_voltage_undervoltage_protection:
      name: "${name} Podpěťová ochrana článku"
    cell_voltage_undervoltage_recovery:
      name: "${name} Obnovení po podpětí článku"
    balance_starting_voltage:
      name: "${name} Startovní napětí balancování"
    voltage_calibration:
      name: "${name} Kalibrace napětí"
    current_calibration:
      name: "${name} Kalibrace proudu"
    power_off_voltage:
      name: "${name} Napětí pro vypnutí BMS"
    max_balance_current:
      name: "${name} Max. balanční proud"
    max_charge_current:
      name: "${name} Max. nabíjecí proud"
    max_discharge_current:
      name: "${name} Max. vybíjecí proud"
    smart_sleep_voltage:
      name: "${name} Napětí pro chytrý spánek"
    cell_soc100_voltage:
      name: "${name} Napětí článku pro 100% SOC"
    cell_soc0_voltage:
      name: "${name} Napětí článku pro 0% SOC"
    cell_request_charge_voltage:
      name: "${name} Požadované nabíjecí napětí článku"
    cell_request_float_voltage:
      name: "${name} Požadované udržovací (float) napětí článku"
    cell_request_charge_voltage_time:
      name: "${name} Čas nabíjecího napětí"
    cell_request_float_voltage_time:
      name: "${name} Čas udržovacího napětí"
    charge_overcurrent_protection_delay:
      name: "${name} Prodleva nadproudové ochrany při nabíjení"
    charge_overcurrent_protection_recovery_time:
      name: "${name} Čas obnovy po nadproudu při nabíjení"
    discharge_overcurrent_protection_delay:
      name: "${name} Prodleva nadproudové ochrany při vybíjení"
    discharge_overcurrent_protection_recovery_time:
      name: "${name} Čas obnovy po nadproudu při vybíjení"
    short_circuit_protection_delay:
      name: "${name} Prodleva ochrany proti zkratu"
    short_circuit_protection_recovery_time:
      name: "${name} Čas obnovy po zkratu"
    charge_overtemperature_protection:
      name: "${name} Teplotní ochrana při nabíjení (vysoká)"
    charge_overtemperature_protection_recovery:
      name: "${name} Obnova po vysoké teplotě při nabíjení"
    discharge_overtemperature_protection:
      name: "${name} Teplotní ochrana při vybíjení (vysoká)"
    discharge_overtemperature_protection_recovery:
      name: "${name} Obnova po vysoké teplotě při vybíjení"
    charge_undertemperature_protection:
      name: "${name} Teplotní ochrana při nabíjení (nízká)"
    charge_undertemperature_protection_recovery:
      name: "${name} Obnova po nízké teplotě při nabíjení"
    power_tube_overtemperature_protection:
      name: "${name} Teplotní ochrana výkonových tranzistorů (MOS)"
    power_tube_overtemperature_protection_recovery:
      name: "${name} Obnova po přehřátí tranzistorů (MOS)"
    discharge_precharge_time:
      name: "${name} Čas přednabití při vybíjení"

sensor:
  - platform: jk_bms_ble
    jk_bms_ble_id: bms0
    min_cell_voltage:
      name: "${name} článek-min napětí"
    max_cell_voltage:
      name: "${name} článek-max napětí"
    min_voltage_cell:
      name: "${name} článek s min napětím"
    max_voltage_cell:
      name: "${name} článek s max napětím"
    delta_cell_voltage:
      name: "${name} článek max-min napětí"
    average_cell_voltage:
      name: "${name} článek-pruměrné napětí"
    cell_voltage_1:
      name: "${name} článek-napětí 1"
    cell_voltage_2:
      name: "${name} článek-napětí 2"
    cell_voltage_3:
      name: "${name} článek-napětí 3"
    cell_voltage_4:
      name: "${name} článek-napětí 4"
    cell_voltage_5:
      name: "${name} článek-napětí 5"
    cell_voltage_6:
      name: "${name} článek-napětí 6"
    cell_voltage_7:
      name: "${name} článek-napětí 7"
    cell_voltage_8:
      name: "${name} článek-napětí 8"
    cell_resistance_1:
      name: "${name} článek-odpor 1"
    cell_resistance_2:
      name: "${name} článek-odpor 2"
    cell_resistance_3:
      name: "${name} článek-odpor 3"
    cell_resistance_4:
      name: "${name} článek-odpor 4"
    cell_resistance_5:
      name: "${name} článek-odpor 5"
    cell_resistance_6:
      name: "${name} článek-odpor 6"
    cell_resistance_7:
      name: "${name} článek-odpor 7"
    cell_resistance_8:
      name: "${name} článek-odpor 8"
    total_voltage:
      name: ".1 ${name} celkové napětí baterie"
    current:
      name: ".2 ${name} proud baterie"
    heating_current:
      name: "${name} topný proud"
    power:
      name: "${name} výkon"
    charging_power:
      name: ".3 ${name} nabíjecí výkon"
    discharging_power:
      name: ".4 ${name} vybíjecí výkon"
    temperature_sensor_1:
      name: "${name} teplotní sensor 1"
    temperature_sensor_2:
      name: "${name} teplotní sensor 2"
    temperature_sensor_5:
      name: "${name} teplotní sensor 5"
    power_tube_temperature:
      name: "${name} teplota výkonových tranzistoru"
    balancing:
      name: "${name} balancování"
    state_of_charge:
      name: ".0 ${name} stav nabití"
    state_of_health:
      name: "${name} celková kondice baterie"
    capacity_remaining:
      name: ".5 ${name} zbývající kapacita"
    total_battery_capacity_setting:
      name: "${name} nastavení celkové kapacity baterie"
    charging_cycles:
      name: ".6 ${name} nabíjecí cykly"
    total_charging_cycle_capacity:
      name: "${name} celková kapacita nabíjecích cyklu"
    total_runtime:
      name: "${name} celková doba provozu"
    balancing_current:
      name: "${name} proud balancování"
    errors_bitmask:
      name: "${name} errors bitmask"
    emergency_time_countdown:
      name: "${name} odpočítávání nouzového stavu"
    charge_status_id:
      name: "${name} charge status id"
    charge_status_time_elapsed:
      name: "${name} charge status time elapsed"

switch:
  - platform: jk_bms_ble
    charging:
      name: "${name} nabíjení"
    discharging:
      name: "${name} vybíjení"
    balancer:
      name: "${name} balancování"
    emergency:
      name: "${name} nouzový režim"
    heating:
      name: "${name} ohřev"
    disable_temperature_sensors:
      name: "${name} vypnout teplotní senzory"
    display_always_on:
      name: "${name} displej stále zapnutý"
    smart_sleep:
      name: "${name} chytrý spánek"
    disable_pcl_module:
      name: "${name} vypnout PCL modul"
    timed_stored_data:
      name: "${name} časované ukládání dat"
    charging_float_mode:
      name: "${name} režim udržovacího nabíjení"

  - platform: ble_client
    ble_client_id: client0
    name: "${name} povolit bluetooth připojení"
    id: ble_client_switch0

text_sensor:
  - platform: jk_bms_ble
    errors:
      name: "${name} chyby"
    total_runtime_formatted:
      name: "${name} celková doba provozu"
    charge_status:
      name: "${name} stav nabíjení"
    software_version:
      name: "${name} verze softwaru"
    hardware_version:
      name: "${name} verze hardwaru"/code]
      
      náhled:[attachment=0]náhled bat.jpg[/attachment]
Přílohy
náhled bat.jpg
::pv:: 7 ks Ledvance 550w = 3,85 kWp, *batt* 2x7,16 kWh Akubox mivvy, ::fv:: Axpert VM II Premium+ 4.2k 24V OFF GRID
ElMa
Příspěvky: 11
Registrován: pát zář 25, 2026 9:03 pm
Reputace:0
Lokalita: cc
Systémové napětí: 48V

Re: JK BMS pomocí BLE na ESP32 bez HA

Nový příspěvek od ElMa »

https://cepower.org je asi neco podobneho volitelne (placene) i pres cloud a umi to i JBD BMS

jaky nejmensi ESP32 s m oznosti 12V napajeni mi poradite?
rva
Příspěvky: 5166
Registrován: úte dub 23, 2013 10:21 am
Reputace:1028
Lokalita: Kousek od Lysé nad Labem
Systémové napětí: 48V
Výkon panelů [Wp]: 46000
Kapacita baterie [kWh]: 76
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Kousek od Lysé nad Labem

Re: JK BMS pomocí BLE na ESP32 bez HA

Nový příspěvek od rva »

Z 12V se "vyrábí" 5V pro esp32 pomocí modulu DC/DC (některé jdou naletovat přímo na esp32). A nejmenší je asi esp32C3 supermini. Když si vezmeš verzi s oled displejem, tak na něm můžeš nechat rotovat některé hodnoty.
Takto jsem přidal dc/dc měnič z baterie 48V (pro komunikaci esp32C3 s JK-BMS)
Přílohy
2024-11-03 esp32-c3-supermini10 - JK-BMS 200Ah sklep zeď (2).jpg
_______________________________________________________________________
FV: 43 kWp,
Baterie: LiFePO4 76 kWh,
Kombinované měniče/regulátory: 3x Isolar SM II (5 kW, 100 A, 450 V) + Isolar SMG II (6.2 kW, 120 A, 500 V)
Mppt regulátory: EPSolar ET6415N (60 A/150 V) + EASun ICharger 48100 (100 A / 150 V)
bokser01
Příspěvky: 1727
Registrován: pon úno 07, 2022 2:43 pm
Reputace:142
Lokalita: Okolí Pardubic
Systémové napětí: 48V
Výkon panelů [Wp]: 12120
Kapacita baterie [kWh]: 32
Chci prodávat energii: NE
Chci/Mám dotaci: NE

Re: JK BMS pomocí BLE na ESP32 bez HA

Nový příspěvek od bokser01 »

Já si udělal pomocí AI svůj vlastní kod do arduino ide, vyčítám data z 2 BMS přes BT pomocí ESP32C3 malé desky z laskakit a napájím jí přímo z USB měniče.

Data si odesílám na svůj server kde je mám přístupné odkudkoliv.
2x MUST PV1800 VHM 48V 5000W. Baterie EVE 314Ah Grade A 2x16s (32Kwh) lehce přes 12kwp v panelech

Kdo je online

Uživatelé procházející toto fórum: Claudebot [Bot]