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:15] – [Battery] bullar | en:tech:solarvilla [2026/08/12 12:15] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 6: | Line 6: | ||
| The sun's energy reaches a daily average intensity of around 165 W/m² on the earth' | The sun's energy reaches a daily average intensity of around 165 W/m² on the earth' | ||
| - | {{ : | + | {{ :media:tech:solarvilla: |
| In addition to the fact that there is enough solar energy here in Thailand for use, the reliability of the local power supply (grid) leaves a lot to be desired. The electricity is often cut off for a few hours in heavy rain or when repair work is being carried out. Stupid because our water pump also needs electricity. The greatest possible independence from the grid would be a clear gain in convenience. There is (so far) no reimbursement system like in Germany here in Thailand. The roofing of the carport was the third argument. After all, it rains heavily here or in the blazing sun the (black) car roof reaches a temperature of over 80°C. | In addition to the fact that there is enough solar energy here in Thailand for use, the reliability of the local power supply (grid) leaves a lot to be desired. The electricity is often cut off for a few hours in heavy rain or when repair work is being carried out. Stupid because our water pump also needs electricity. The greatest possible independence from the grid would be a clear gain in convenience. There is (so far) no reimbursement system like in Germany here in Thailand. The roofing of the carport was the third argument. After all, it rains heavily here or in the blazing sun the (black) car roof reaches a temperature of over 80°C. | ||
| Line 24: | Line 24: | ||
| An important parameter is the required power that the new solar system should provide. To estimate one should roughly know the consumption values of your own household. In [[de: | An important parameter is the required power that the new solar system should provide. To estimate one should roughly know the consumption values of your own household. In [[de: | ||
| - | {{ : | + | {{ :media:tech:solarvilla: |
| In addition to the air conditioning, | In addition to the air conditioning, | ||
| Line 47: | Line 47: | ||
| In recent years, the efficiency of solar panels has increased from 15% to over 20%. The efficiency mainly depends on the cell design as well as on the cell layout. Here is an overview of the most common versions: | In recent years, the efficiency of solar panels has increased from 15% to over 20%. The efficiency mainly depends on the cell design as well as on the cell layout. Here is an overview of the most common versions: | ||
| - | {{ :de: | + | {{ :media:tech:solarvilla: |
| My choice, also in terms of price and availability, | My choice, also in terms of price and availability, | ||
| Line 60: | Line 60: | ||
| === Orientation === | === Orientation === | ||
| - | The carport is oriented a little more to the west with a south azimuth of +15°. This value results in any hardly measurable losses in yield. The best angle of inclination for the panels depends on the location of the installation and depends on the southern high point of the sun. The data for this can be calculated with the help of [[https://SunEarthTools.com|Sun Earth Tools]]. Here the elevation for Dusseldorf (GER): | + | The carport is oriented a little more to the west with a south azimuth of +15°. This value results in any hardly measurable losses in yield. The best angle of inclination for the panels depends on the location of the installation and depends on the southern high point of the sun. The data for this can be calculated with the help of [[https://www.sunearthtools.com/index.php|Sun Earth Tools]]. Here the elevation for Dusseldorf (GER): |
| - | {{ : | + | {{ :media:tech:solarvilla: |
| In Germany, the angle of inclination is between 30° and 40°. Here in Thailand, the midday sun is much more vertical and you get a maximum of 82° elevation. Incidentally, | In Germany, the angle of inclination is between 30° and 40°. Here in Thailand, the midday sun is much more vertical and you get a maximum of 82° elevation. Incidentally, | ||
| Line 87: | Line 87: | ||
| <WRAP group> | <WRAP group> | ||
| <WRAP half column> | <WRAP half column> | ||
| - | {{ : | + | {{ :media:tech:solarvilla: |
| </ | </ | ||
| <WRAP half column> | <WRAP half column> | ||
| - | {{: | + | {{:media:tech:solarvilla: |
| </ | </ | ||
| </ | </ | ||
| Line 101: | Line 101: | ||
| To seal the gaps, we need an UV-resistant EPDM sealing material. That turned out to be more difficult than expected. After a long research I found the company [[https:// | To seal the gaps, we need an UV-resistant EPDM sealing material. That turned out to be more difficult than expected. After a long research I found the company [[https:// | ||
| - | {{ : | + | {{ :media:tech:solarvilla: |
| and is simply clamped between the panels. There is also a suitable EPDM adhesive tape for sealing the crossing points. | and is simply clamped between the panels. There is also a suitable EPDM adhesive tape for sealing the crossing points. | ||
| Line 112: | Line 112: | ||
| <WRAP group> | <WRAP group> | ||
| <WRAP half column> | <WRAP half column> | ||
| - | {{ :de: | + | {{ :media:tech:solarvilla: |
| </ | </ | ||
| <WRAP half column> | <WRAP half column> | ||
| - | {{:de: | + | {{:media:tech:solarvilla: |
| </ | </ | ||
| </ | </ | ||
| Line 127: | Line 127: | ||
| <WRAP group> | <WRAP group> | ||
| <WRAP half column> | <WRAP half column> | ||
| - | {{ : | + | {{ :media:tech:solarvilla: |
| </ | </ | ||
| <WRAP half column> | <WRAP half column> | ||
| - | {{: | + | {{:media:tech:solarvilla: |
| </ | </ | ||
| </ | </ | ||
| Line 154: | Line 154: | ||
| * Scalability up to 30kW in parallel operation | * Scalability up to 30kW in parallel operation | ||
| - | {{ : | + | {{ :media:tech:solarvilla: |
| In Thailand I was able to get this variant for around €920. | In Thailand I was able to get this variant for around €920. | ||
| Line 180: | Line 180: | ||
| Therefore, the choice felt on the LiFePO< | Therefore, the choice felt on the LiFePO< | ||
| - | {{ : | + | {{ :media:tech:solarvilla: |
| Line 191: | Line 191: | ||
| <WRAP group> | <WRAP group> | ||
| <WRAP half column> | <WRAP half column> | ||
| - | {{ :de: | + | {{ :media:tech:solarvilla: |
| </ | </ | ||
| <WRAP half column> | <WRAP half column> | ||
| - | {{:de: | + | {{:media:tech:solarvilla: |
| </ | </ | ||
| </ | </ | ||
| Line 205: | Line 205: | ||
| Our finished connection cabinet looks like this from the inside: | Our finished connection cabinet looks like this from the inside: | ||
| - | {{ : | + | {{ :media:tech:solarvilla: |
| It might seem overwhelming at first, but let's go through it in order: | It might seem overwhelming at first, but let's go through it in order: | ||
| Line 232: | Line 232: | ||
| Here is the entire system overview with the associated cable thicknesses. The 2AWG battery cable and the 12AWG solar panel cable are flexible variants. | Here is the entire system overview with the associated cable thicknesses. The 2AWG battery cable and the 12AWG solar panel cable are flexible variants. | ||
| - | {{ : | + | {{ :media:tech:solarvilla: |
| :!: 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. | :!: 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. | ||
| - | {{ : | + | {{ :media:tech:solarvilla: |
| Line 243: | Line 243: | ||
| 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/ | 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/ | ||
| - | {{ : | + | {{ :media:tech:solarvilla: |
| The assembly is described in detail on the Internet (e.g. [[https:// | The assembly is described in detail on the Internet (e.g. [[https:// | ||
| Line 251: | Line 251: | ||
| 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< | 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< | ||
| - | {{ : | + | {{ :media:tech:solarvilla: |
| You could even get it here in Thailand in a well-stocked DIY store for around €40. | You could even get it here in Thailand in a well-stocked DIY store for around €40. | ||
| Line 258: | Line 258: | ||
| ^ Image ^ Cable Diameter ^ Hole Diameter ^ | ^ Image ^ Cable Diameter ^ Hole Diameter ^ | ||
| - | | {{ : | + | | {{ :media:tech:solarvilla: |
| - | | {{ : | + | | {{ :media:tech:solarvilla: |
| - | | {{ : | + | | {{ :media:tech:solarvilla: |
| - | | {{ : | + | | {{ :media:tech:solarvilla: |
| + | |||
| + | ===== 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="" | ||
| + | </ | ||
| + | |||
| + | </ | ||