JK BMS pomocí BLE na ESP32 bez HA

Souhrn tématu

Uživatel hledá pomoc s připojením JK BMS (model JK-B1A8S10P V15) přes Bluetooth Low Energy (BLE) na ESP32 bez využití Home Assistant. Sdílí zkušenosti s programováním ESP32 pomocí AI a žádá o podporu při čtení dat z BMS na sériový port. Ve fóru je také k dispozici ukázkový yaml soubor pro konfiguraci ESPHome, který usnadňuje nastavení připojení a správu baterie s 8 články přes BLE.
lukas.okoun
Příspěvky: 97
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: 3764
Registrován: stř úno 02, 2022 10:30 am
Reputace:487
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: 1791
Registrován: ned zář 25, 2022 10:47 am
Reputace:297
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
48V 760Ah/35kWh Li-ion
a stále v štádiu budovania :repair:(rozširovania)
somira
Příspěvky: 43
Registrován: pát říj 04, 2024 8:44 am
Reputace:0
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 = 3,85 kWp, *batt* 2x7,16 kWh, MUST PV18-3524 PRO

Kdo je online

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