This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | Next revisionBoth sides next revision | ||
en:tech:solarvilla [2023/04/16 08:15] – [Battery] bullar | en:tech:solarvilla [2023/04/16 08:20] – [Wiring] bullar | ||
---|---|---|---|
Line 262: | Line 262: | ||
| {{ : | | {{ : | ||
| {{ : | | {{ : | ||
+ | |||
+ | |||
+ | ===== Settings ===== | ||
+ | |||
+ | Before we can go into operation, we still have to setup the BMS and the inverter. | ||
+ | |||
+ | === JKBMS === | ||
+ | |||
+ | The basic setting can be easily made via the app and at first the battery type LiFePo< | ||
+ | |||
+ | < | ||
+ | Balance starting voltage | ||
+ | Balance trigger voltage | ||
+ | Cell count 16 | ||
+ | Cell voltage overvoltage protection | ||
+ | Cell voltage overvoltage recovery | ||
+ | Cell voltage undervoltage protection | ||
+ | Cell voltage undervoltage recovery. | ||
+ | Max balance current | ||
+ | Max charge current | ||
+ | Max discharge current | ||
+ | Power off voltage | ||
+ | Total battery capacity | ||
+ | </ | ||
+ | |||
+ | === GROWATT SPF5000ES === | ||
+ | |||
+ | The inverter can be set directly at the device via the control panel or via the Growatt server. I have listed the most important parameters below: | ||
+ | |||
+ | < | ||
+ | Program Setting Option | ||
+ | ---------------------------------------------------------------------------------------------- | ||
+ | 1 SBU (SBU priority). | ||
+ | 2 62A | ||
+ | 3 APL (Appliance) | ||
+ | 4 DIS (disabled) | ||
+ | 5 US2 (user-defined 2) Battery type | ||
+ | 6 DIS (disabled) | ||
+ | 7 DIS (disabled) | ||
+ | 8 230V | ||
+ | 9 50Hz | ||
+ | 10 16 | ||
+ | 11 30A | ||
+ | 12 48.0V (3.0V x 16). Setting voltage point back to utility source when selecting “SBU priority” or “Solar first” in program 01 | ||
+ | 13 54.4V (3.4V x 16). Setting voltage point back to battery mode when selecting “SBU priority” or “Solar first” in program 01 | ||
+ | 14 CSO (solar first). | ||
+ | 15 ON | ||
+ | 16 ON | ||
+ | 17 ON | ||
+ | 18 ENA (enabled) | ||
+ | 19 56.8V (3.55V x 16). C.V. charging voltage. | ||
+ | 20 54.0V (3.375V x 16) | ||
+ | 21 44.0V | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Integration in Home Assistant ===== | ||
+ | |||
+ | As mentioned above, there is a handy app for the BMS for live data and settings. It runs via Bluetooth on iOS and Android. But in order to access it via Home Assistant, we needed a Bluetooth gateway. | ||
+ | |||
+ | :!: Warning: It must support Bluetooth 4.2 to be able to use frame lengths of more than 20 bytes. The 300 bytes of live data are sent in three notification frames. | ||
+ | |||
+ | A simple solution can again be achieved with an ESP32 module and ESPHome. You can find the software description [[https:// | ||
+ | My setup can be found in the attachment for reference. | ||
+ | |||
+ | ++++ jk-bms-ble.yaml | | ||
+ | |||
+ | <file yaml jk-bms-ble.yaml> | ||
+ | substitutions: | ||
+ | name: jk-bms | ||
+ | device_description: | ||
+ | external_components_source: | ||
+ | mac_address: | ||
+ | # Defaults to " | ||
+ | protocol_version: | ||
+ | |||
+ | esphome: | ||
+ | name: ${name} | ||
+ | comment: ${device_description} | ||
+ | project: | ||
+ | name: " | ||
+ | version: 1.2.0 | ||
+ | platformio_options: | ||
+ | build_flags: | ||
+ | - -DCONFIG_ARDUINO_LOOP_STACK_SIZE=32768 | ||
+ | |||
+ | esp32: | ||
+ | board: nodemcu-32s | ||
+ | framework: | ||
+ | # The arduino platform crashs | ||
+ | # type: arduino | ||
+ | # version: latest | ||
+ | type: esp-idf | ||
+ | version: latest | ||
+ | |||
+ | # Enable logging | ||
+ | logger: | ||
+ | |||
+ | # Enable Home Assistant API | ||
+ | api: | ||
+ | encryption: | ||
+ | key: " | ||
+ | |||
+ | ota: | ||
+ | password: " | ||
+ | |||
+ | wifi: | ||
+ | ssid: !secret wifi_ssid | ||
+ | password: !secret wifi_password | ||
+ | |||
+ | # Optional manual IP | ||
+ | manual_ip: | ||
+ | static_ip: 192.168.1.100 | ||
+ | gateway: 192.168.1.1 | ||
+ | subnet: 255.255.255.0 | ||
+ | |||
+ | # Enable fallback hotspot (captive portal) in case wifi connection fails | ||
+ | ap: | ||
+ | ssid: " | ||
+ | password: " | ||
+ | |||
+ | external_components: | ||
+ | - source: ${external_components_source} | ||
+ | refresh: 0s | ||
+ | |||
+ | esp32_ble_tracker: | ||
+ | |||
+ | ble_client: | ||
+ | - mac_address: | ||
+ | id: client0 | ||
+ | |||
+ | jk_bms_ble: | ||
+ | - ble_client_id: | ||
+ | protocol_version: | ||
+ | throttle: 5s | ||
+ | id: bms0 | ||
+ | |||
+ | binary_sensor: | ||
+ | - platform: jk_bms_ble | ||
+ | balancing: | ||
+ | name: " | ||
+ | charging: | ||
+ | name: " | ||
+ | discharging: | ||
+ | name: " | ||
+ | |||
+ | button: | ||
+ | - platform: jk_bms_ble | ||
+ | retrieve_settings: | ||
+ | name: " | ||
+ | retrieve_device_info: | ||
+ | name: " | ||
+ | |||
+ | number: | ||
+ | - platform: jk_bms_ble | ||
+ | jk_bms_ble_id: | ||
+ | balance_trigger_voltage: | ||
+ | name: " | ||
+ | cell_count: | ||
+ | name: " | ||
+ | total_battery_capacity: | ||
+ | name: " | ||
+ | cell_voltage_overvoltage_protection: | ||
+ | name: " | ||
+ | cell_voltage_overvoltage_recovery: | ||
+ | name: " | ||
+ | cell_voltage_undervoltage_protection: | ||
+ | name: " | ||
+ | cell_voltage_undervoltage_recovery: | ||
+ | name: " | ||
+ | balance_starting_voltage: | ||
+ | name: " | ||
+ | voltage_calibration: | ||
+ | name: " | ||
+ | current_calibration: | ||
+ | name: " | ||
+ | power_off_voltage: | ||
+ | name: " | ||
+ | max_balance_current: | ||
+ | name: " | ||
+ | max_charge_current: | ||
+ | name: " | ||
+ | max_discharge_current: | ||
+ | name: " | ||
+ | |||
+ | sensor: | ||
+ | - platform: jk_bms_ble | ||
+ | jk_bms_ble_id: | ||
+ | min_cell_voltage: | ||
+ | name: " | ||
+ | max_cell_voltage: | ||
+ | name: " | ||
+ | min_voltage_cell: | ||
+ | name: " | ||
+ | max_voltage_cell: | ||
+ | name: " | ||
+ | delta_cell_voltage: | ||
+ | name: " | ||
+ | average_cell_voltage: | ||
+ | name: " | ||
+ | cell_voltage_1: | ||
+ | name: " | ||
+ | cell_voltage_2: | ||
+ | name: " | ||
+ | cell_voltage_3: | ||
+ | name: " | ||
+ | cell_voltage_4: | ||
+ | name: " | ||
+ | cell_voltage_5: | ||
+ | name: " | ||
+ | cell_voltage_6: | ||
+ | name: " | ||
+ | cell_voltage_7: | ||
+ | name: " | ||
+ | cell_voltage_8: | ||
+ | name: " | ||
+ | cell_voltage_9: | ||
+ | name: " | ||
+ | cell_voltage_10: | ||
+ | name: " | ||
+ | cell_voltage_11: | ||
+ | name: " | ||
+ | cell_voltage_12: | ||
+ | name: " | ||
+ | cell_voltage_13: | ||
+ | name: " | ||
+ | cell_voltage_14: | ||
+ | name: " | ||
+ | cell_voltage_15: | ||
+ | name: " | ||
+ | cell_voltage_16: | ||
+ | name: " | ||
+ | cell_voltage_17: | ||
+ | name: " | ||
+ | cell_voltage_18: | ||
+ | name: " | ||
+ | cell_voltage_19: | ||
+ | name: " | ||
+ | cell_voltage_20: | ||
+ | name: " | ||
+ | cell_voltage_21: | ||
+ | name: " | ||
+ | cell_voltage_22: | ||
+ | name: " | ||
+ | cell_voltage_23: | ||
+ | name: " | ||
+ | cell_voltage_24: | ||
+ | name: " | ||
+ | cell_resistance_1: | ||
+ | name: " | ||
+ | cell_resistance_2: | ||
+ | name: " | ||
+ | cell_resistance_3: | ||
+ | name: " | ||
+ | cell_resistance_4: | ||
+ | name: " | ||
+ | cell_resistance_5: | ||
+ | name: " | ||
+ | cell_resistance_6: | ||
+ | name: " | ||
+ | cell_resistance_7: | ||
+ | name: " | ||
+ | cell_resistance_8: | ||
+ | name: " | ||
+ | cell_resistance_9: | ||
+ | name: " | ||
+ | cell_resistance_10: | ||
+ | name: " | ||
+ | cell_resistance_11: | ||
+ | name: " | ||
+ | cell_resistance_12: | ||
+ | name: " | ||
+ | cell_resistance_13: | ||
+ | name: " | ||
+ | cell_resistance_14: | ||
+ | name: " | ||
+ | cell_resistance_15: | ||
+ | name: " | ||
+ | cell_resistance_16: | ||
+ | name: " | ||
+ | cell_resistance_17: | ||
+ | name: " | ||
+ | cell_resistance_18: | ||
+ | name: " | ||
+ | cell_resistance_19: | ||
+ | name: " | ||
+ | cell_resistance_20: | ||
+ | name: " | ||
+ | cell_resistance_21: | ||
+ | name: " | ||
+ | cell_resistance_22: | ||
+ | name: " | ||
+ | cell_resistance_23: | ||
+ | name: " | ||
+ | cell_resistance_24: | ||
+ | name: " | ||
+ | total_voltage: | ||
+ | name: " | ||
+ | current: | ||
+ | name: " | ||
+ | power: | ||
+ | name: " | ||
+ | charging_power: | ||
+ | name: " | ||
+ | discharging_power: | ||
+ | name: " | ||
+ | temperature_sensor_1: | ||
+ | name: " | ||
+ | temperature_sensor_2: | ||
+ | name: " | ||
+ | power_tube_temperature: | ||
+ | name: " | ||
+ | state_of_charge: | ||
+ | name: " | ||
+ | capacity_remaining: | ||
+ | name: " | ||
+ | total_battery_capacity_setting: | ||
+ | name: " | ||
+ | charging_cycles: | ||
+ | name: " | ||
+ | total_charging_cycle_capacity: | ||
+ | name: " | ||
+ | total_runtime: | ||
+ | name: " | ||
+ | balancing_current: | ||
+ | name: " | ||
+ | errors_bitmask: | ||
+ | name: " | ||
+ | |||
+ | switch: | ||
+ | - platform: jk_bms_ble | ||
+ | charging: | ||
+ | name: " | ||
+ | discharging: | ||
+ | name: " | ||
+ | balancer: | ||
+ | name: " | ||
+ | |||
+ | - platform: ble_client | ||
+ | ble_client_id: | ||
+ | name: " | ||
+ | |||
+ | text_sensor: | ||
+ | - platform: jk_bms_ble | ||
+ | errors: | ||
+ | name: " | ||
+ | total_runtime_formatted: | ||
+ | name: " | ||
+ | </ | ||
+ | |||
+ | ++++ | ||