This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
en:tech:solarvilla [2023/04/16 08:08] – [Solar Panels] bullar | en:tech:solarvilla [2023/04/16 08:30] (current) – [Donations] bullar | ||
---|---|---|---|
Line 199: | Line 199: | ||
+ | ==== Wiring ==== | ||
+ | |||
+ | After we have selected all the important components, it is now about to wire. To protect the system and the individual components, we still need some safety equipment and the right choice of cables. | ||
+ | |||
+ | Our finished connection cabinet looks like this from the inside: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | It might seem overwhelming at first, but let's go through it in order: | ||
+ | |||
+ | |||
+ | ===Solar Panels=== | ||
+ | |||
+ | The solar panel voltage (typically 314V DC) is first routed via a 32A DC fuse. Any overvoltages are then counteracted by overvoltage protection. The panel voltage then goes on to the inverter via a 63A DC circuit breaker. | ||
+ | |||
+ | === INVERTER AC in === | ||
+ | |||
+ | Since the input voltage from the grid can also have overvoltages (here in Thailand the supply cables are mostly above ground), the inverter is also protected with overvoltage protection at the input. In between is again a 32A AC circuit breaker. | ||
+ | |||
+ | === INVERTER AC out === | ||
+ | |||
+ | The output of the inverter on the way to the house supply goes through a reversible over/ | ||
+ | |||
+ | === INVERTER BATT in === | ||
+ | |||
+ | There is a 100A DC circuit breaker between the battery block/BMS and the inverter. | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | Here is the entire system overview with the associated cable thicknesses. The 2AWG battery cable and the 12AWG solar panel cable are flexible variants. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | :!: Should the inverter have a total failure, you would quickly be left in the dark. It is therefore very clever if you also install a transfer switch in the house supply, which switches the house completely back to the grid if necessary. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | === MC4 connector and cable lugs === | ||
+ | |||
+ | Since we are dealing with considerable voltages and currents here, we have to take a closer look at the different types of connections. Let's start with the panels. The solar panels are fitted with MC4 plugs and sockets as standard. The mounted cables of the panels are so long that they can be connected directly to the neighboring module. We only have to lend a hand for the series connection at the end and the connection to the inverter. It is best to buy a set with MC4 plugs/ | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | The assembly is described in detail on the Internet (e.g. [[https:// | ||
+ | |||
+ | Another important connector is the good old tubular cable lug (ring terminal), which we need in different diameters and for different cable thicknesses. | ||
+ | |||
+ | The battery blocks are connected to each other with metal rails and nuts, which are included in the scope of delivery. The battery connection on my CATL LiFePo< | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | You could even get it here in Thailand in a well-stocked DIY store for around €40. | ||
+ | |||
+ | The remaining cable lugs depend on the screw connection used in the fuse box. I used 8AWG(10mm²) on M6. | ||
+ | |||
+ | ^ Image ^ Cable Diameter ^ Hole Diameter ^ | ||
+ | | {{ : | ||
+ | | {{ : | ||
+ | | {{ : | ||
+ | | {{ : | ||
+ | |||
+ | |||
+ | ===== 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: " | ||
+ | </ | ||
+ | |||
+ | ++++ | ||
+ | |||
+ | The GROWATT Inverter can be integrated directly into Home Assistant via [[https:// | ||
+ | |||
+ | ===== Operation and Costs ===== | ||
+ | |||
+ | The plant has been in operation since March 2022 and generates between 430KW and 500KW per month depending on the weather. The best day so far was in March with 24KW and the worst with 1.2KW in November. However, October and November are also the months with the most precipitation (see [[de: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | The specified values are not the really achievable ones, since the inverter regulates down when the batteries are full and the house demand is below the current production capacity. What should he do with the energy if nobody can take it. We have observed this effect a few times. Nevertheless, | ||
+ | |||
+ | With an approximate average of 450KW/ | ||
+ | |||
+ | The entire solar system without the service line and roof substructure cost us **206,000 Bath**, which is **€5, | ||
+ | |||
+ | From today' | ||
+ | |||
+ | Not to be forgotten, however, is the increase in comfort in the event of a grid failure when the neighbors have to fiddle with torches and candles, as well as the really good feeling of using solar energy when you turn on the air conditioning... | ||
+ | |||
+ | Finally, the charging and discharging chart over three days. The batteries are charged from around 7:00 a.m. to around 6:00 p.m., after which the discharge begins. If the charge falls well below 20%, the grid will charge. Shown by the linear increase on the first and last night. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | =====Links===== | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | ===== Donations ===== | ||
+ | |||
+ | If you want to support my work, you can donate me a cappuccino or something like this... | ||
+ | |||
+ | < | ||
+ | |||
+ | <form action=" | ||
+ | <input type=" | ||
+ | <input type=" | ||
+ | <img alt="" | ||
+ | </ | ||
+ | |||
+ | </ |