Site Tools


en:tech:solarvilla

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:tech:solarvilla [2023/04/16 08:08] – [Solar Panels] bullaren: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:
 +
 +{{ :tech:solar_breaker_board.png?direct&300 |Solar breaker board}}
 +
 +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/undervoltage protection and another 32A AC circuit breaker.
 +
 +=== 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.
 +
 +{{ :tech:solar_kabel.png?direct&400 |Solar system overview}}
 +
 +:!: 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.
 +
 +{{ :tech:transfer_switch.png?direct&300 |Automatic transfer switch}}
 +
 +
 +=== 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/sockets, crimping tool (2.5/4/6mm²) and MC4 keys for little money (12.00 €).
 +
 +{{ :tech:mc4_set.png?direct&300 |MC4 set}}
 +
 +The assembly is described in detail on the Internet (e.g. [[https://www.renogy.com/template/files/Manuals/TOOL-MC4.pdf|here]] ) and is very easy.
 +
 +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<sub>4</sub> has an M6 thread. To connect the 16 balancer cables of the BMS to each cell we need a cable lug 18AWG(1mm²) to M6. For the connection between the two battery rows, the BMS, the 100A fuse and the inverter it is a 2AWG(35mm²) on M6 and M8. The right crimping tool for the 18AWG cable is again inexpensive everywhere. For the 2AWG you need a hydraulically supported variant to apply the mandatory force:
 +
 +{{ :tech:crimp_35mm.png?direct&200 |Crimp tool 4-70mm2}}
 +
 +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 ^
 +| {{ :tech:18awg_m6.png?direct&50 |}} | 18AWG(1mm²) | M6 |
 +| {{ :tech:8awg_m6.png?direct&50 |}} | 8AWG(10mm²) | M6 |
 +| {{ :tech:2awg_m6.png?direct&50 |}} | 2AWG(35mm²) | M6 |
 +| {{ :tech:2awg_m8.png?direct&50 |}} | 2AWG(35mm²) | M8 |
 +
 +
 +===== 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<sub>4</sub> is selected. The other parameters should then be adjusted to the characteristics of the battery. For me, the most important parameters look like this:
 +
 +<code>
 +Balance starting voltage               3.00 V
 +Balance trigger voltage                0.01 V
 +Cell count                             16
 +Cell voltage overvoltage protection    3.60 V
 +Cell voltage overvoltage recovery      3.45 V
 +Cell voltage undervoltage protection   2.60 V
 +Cell voltage undervoltage recovery.    3.00 V
 +Max balance current                    2.00 A
 +Max charge current                     62.0 A
 +Max discharge current                  100 A
 +Power off voltage                      2.50 V
 +Total battery capacity                 310Ah
 +</code>
 +
 +=== 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:
 +
 +<code>
 +Program Setting Option       Description
 +----------------------------------------------------------------------------------------------
 +1 SBU (SBU priority).   Output source priority: To configure load power source priority
 +2 62A               Maximum charging current: set total charging current for solar and utility chargers. 
 +3 APL (Appliance)       AC input voltage range
 +4 DIS (disabled)       Power saving mode enable/disable
 +5 US2 (user-defined 2)  Battery type
 +6 DIS (disabled)       Auto restart when overload occurs
 +7 DIS (disabled)       Auto restart when over temperature occurs
 +8 230V               Output voltage
 +9 50Hz               Output frequency
 +10 16               Number of series batteries connected
 +11 30A               Maximum utility charging current
 +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).    Charger source priority: To configure charger source priority
 +15 ON               Alarm control
 +16 ON               Backlight control
 +17 ON               Beeps while primary source is interrupted
 +18 ENA (enabled)       Overload bypass
 +19 56.8V (3.55V x 16).   C.V. charging voltage.
 +20 54.0V (3.375V x 16)   Floating charging voltage. If self-defined is selected in program 5, this program can be set up
 +21 44.0V               Low DC cut-off voltage.
 +</code>
 +
 +
 +===== 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://github.com/syssi/esphome-jk-bms|here]].
 +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: "Monitor and control a JK-BMS via bluetooth"
 +  external_components_source: github://syssi/esphome-jk-bms@main
 +  mac_address: AA:BB:CC:DD:EE:FF
 +  # Defaults to "JK02". Please use "JK04" if you have some old JK-BMS version (f.e. JK-B2A16S hw 3.0, sw. 3.3.0)
 +  protocol_version: JK02
 +
 +esphome:
 +  name: ${name}
 +  comment: ${device_description}
 +  project:
 +    name: "syssi.esphome-jk-bms"
 +    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: "-----key-----"
 +
 +ota:
 +  password: "-----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: "Jk-Bms-Ble Fallback Hotspot"
 +    password: "----password----"
 +
 +external_components:
 +  - source: ${external_components_source}
 +    refresh: 0s
 +
 +esp32_ble_tracker:
 +
 +ble_client:
 +  - mac_address: ${mac_address}
 +    id: client0
 +
 +jk_bms_ble:
 +  - ble_client_id: client0
 +    protocol_version: ${protocol_version}
 +    throttle: 5s
 +    id: bms0
 +
 +binary_sensor:
 +  - platform: jk_bms_ble
 +    balancing:
 +      name: "${name} balancing"
 +    charging:
 +      name: "${name} charging"
 +    discharging:
 +      name: "${name} discharging"
 +
 +button:
 +  - platform: jk_bms_ble
 +    retrieve_settings:
 +      name: "${name} retrieve settings"
 +    retrieve_device_info:
 +      name: "${name} retrieve device info"
 +
 +number:
 +  - platform: jk_bms_ble
 +    jk_bms_ble_id: bms0
 +    balance_trigger_voltage:
 +      name: "${name} balance trigger voltage"
 +    cell_count:
 +       name: "${name} cell count"
 +    total_battery_capacity:
 +      name: "${name} total battery capacity"
 +    cell_voltage_overvoltage_protection:
 +      name: "${name} cell voltage overvoltage protection"
 +    cell_voltage_overvoltage_recovery:
 +      name: "${name} cell voltage overvoltage recovery"
 +    cell_voltage_undervoltage_protection:
 +      name: "${name} cell voltage undervoltage protection"
 +    cell_voltage_undervoltage_recovery:
 +      name: "${name} cell voltage undervoltage recovery"
 +    balance_starting_voltage:
 +      name: "${name} balance starting voltage"
 +    voltage_calibration:
 +      name: "${name} voltage calibration"
 +    current_calibration:
 +      name: "${name} current calibration"
 +    power_off_voltage:
 +      name: "${name} power off voltage"
 +    max_balance_current:
 +      name: "${name} max balance current"
 +    max_charge_current:
 +      name: "${name} max charge current"
 +    max_discharge_current:
 +      name: "${name} max discharge current"
 +
 +sensor:
 +  - platform: jk_bms_ble
 +    jk_bms_ble_id: bms0
 +    min_cell_voltage:
 +      name: "${name} min cell voltage"
 +    max_cell_voltage:
 +      name: "${name} max cell voltage"
 +    min_voltage_cell:
 +      name: "${name} min voltage cell"
 +    max_voltage_cell:
 +      name: "${name} max voltage cell"
 +    delta_cell_voltage:
 +      name: "${name} delta cell voltage"
 +    average_cell_voltage:
 +      name: "${name} average cell voltage"
 +    cell_voltage_1:
 +      name: "${name} cell voltage 1"
 +    cell_voltage_2:
 +      name: "${name} cell voltage 2"
 +    cell_voltage_3:
 +      name: "${name} cell voltage 3"
 +    cell_voltage_4:
 +      name: "${name} cell voltage 4"
 +    cell_voltage_5:
 +      name: "${name} cell voltage 5"
 +    cell_voltage_6:
 +      name: "${name} cell voltage 6"
 +    cell_voltage_7:
 +      name: "${name} cell voltage 7"
 +    cell_voltage_8:
 +      name: "${name} cell voltage 8"
 +    cell_voltage_9:
 +      name: "${name} cell voltage 9"
 +    cell_voltage_10:
 +      name: "${name} cell voltage 10"
 +    cell_voltage_11:
 +      name: "${name} cell voltage 11"
 +    cell_voltage_12:
 +      name: "${name} cell voltage 12"
 +    cell_voltage_13:
 +      name: "${name} cell voltage 13"
 +    cell_voltage_14:
 +      name: "${name} cell voltage 14"
 +    cell_voltage_15:
 +      name: "${name} cell voltage 15"
 +    cell_voltage_16:
 +      name: "${name} cell voltage 16"
 +    cell_voltage_17:
 +      name: "${name} cell voltage 17"
 +    cell_voltage_18:
 +      name: "${name} cell voltage 18"
 +    cell_voltage_19:
 +      name: "${name} cell voltage 19"
 +    cell_voltage_20:
 +      name: "${name} cell voltage 20"
 +    cell_voltage_21:
 +      name: "${name} cell voltage 21"
 +    cell_voltage_22:
 +      name: "${name} cell voltage 22"
 +    cell_voltage_23:
 +      name: "${name} cell voltage 23"
 +    cell_voltage_24:
 +      name: "${name} cell voltage 24"
 +    cell_resistance_1:
 +      name: "${name} cell resistance 1"
 +    cell_resistance_2:
 +      name: "${name} cell resistance 2"
 +    cell_resistance_3:
 +      name: "${name} cell resistance 3"
 +    cell_resistance_4:
 +      name: "${name} cell resistance 4"
 +    cell_resistance_5:
 +      name: "${name} cell resistance 5"
 +    cell_resistance_6:
 +      name: "${name} cell resistance 6"
 +    cell_resistance_7:
 +      name: "${name} cell resistance 7"
 +    cell_resistance_8:
 +      name: "${name} cell resistance 8"
 +    cell_resistance_9:
 +      name: "${name} cell resistance 9"
 +    cell_resistance_10:
 +      name: "${name} cell resistance 10"
 +    cell_resistance_11:
 +      name: "${name} cell resistance 11"
 +    cell_resistance_12:
 +      name: "${name} cell resistance 12"
 +    cell_resistance_13:
 +      name: "${name} cell resistance 13"
 +    cell_resistance_14:
 +      name: "${name} cell resistance 14"
 +    cell_resistance_15:
 +      name: "${name} cell resistance 15"
 +    cell_resistance_16:
 +      name: "${name} cell resistance 16"
 +    cell_resistance_17:
 +      name: "${name} cell resistance 17"
 +    cell_resistance_18:
 +      name: "${name} cell resistance 18"
 +    cell_resistance_19:
 +      name: "${name} cell resistance 19"
 +    cell_resistance_20:
 +      name: "${name} cell resistance 20"
 +    cell_resistance_21:
 +      name: "${name} cell resistance 21"
 +    cell_resistance_22:
 +      name: "${name} cell resistance 22"
 +    cell_resistance_23:
 +      name: "${name} cell resistance 23"
 +    cell_resistance_24:
 +      name: "${name} cell resistance 24"
 +    total_voltage:
 +      name: "${name} total voltage"
 +    current:
 +      name: "${name} current"
 +    power:
 +      name: "${name} power"
 +    charging_power:
 +      name: "${name} charging power"
 +    discharging_power:
 +      name: "${name} discharging power"
 +    temperature_sensor_1:
 +      name: "${name} temperature sensor 1"
 +    temperature_sensor_2:
 +      name: "${name} temperature sensor 2"
 +    power_tube_temperature:
 +      name: "${name} power tube temperature"
 +    state_of_charge:
 +      name: "${name} state of charge"
 +    capacity_remaining:
 +      name: "${name} capacity remaining"
 +    total_battery_capacity_setting:
 +      name: "${name} total battery capacity setting"
 +    charging_cycles:
 +      name: "${name} charging cycles"
 +    total_charging_cycle_capacity:
 +      name: "${name} total charging cycle capacity"
 +    total_runtime:
 +      name: "${name} total runtime"
 +    balancing_current:
 +      name: "${name} balancing current"
 +    errors_bitmask:
 +      name: "${name} errors bitmask"
 +
 +switch:
 +  - platform: jk_bms_ble
 +    charging:
 +      name: "${name} charging"
 +    discharging:
 +      name: "${name} discharging"
 +    balancer:
 +      name: "${name} balancer"
 +
 +  - platform: ble_client
 +    ble_client_id: client0
 +    name: "${name} enable bluetooth connection"
 +
 +text_sensor:
 +  - platform: jk_bms_ble
 +    errors:
 +      name: "${name} errors"
 +    total_runtime_formatted:
 +      name: "${name} total runtime formatted"
 +</file>
 +
 +++++
 +
 +The GROWATT Inverter can be integrated directly into Home Assistant via [[https://www.home-assistant.io/integrations/growatt_server/|Integration]].
 +
 +===== 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:tech:rainsensor|rain sensor]]).
 +
 +{{ :tech:solar_generation_chart.png?direct&400 |Solar production 2022}}
 +
 +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, the solar panels are only completely self-sufficient in sunny weather. On average, we draw additional energy of approx. 100..200KW/month from the grid because our AirBnB guests keep the air conditioning in the guest room running almost continuously, which means that consumption is higher than forecasted above.
 +
 +With an approximate average of 450KW/month, this results in an annual production output of 5,400KW. One kilowatt hour costs us 7 baht/19 ct (1€ = ~37 baht), so we save approx. €1,021 (€85 per month)**.
 +
 +The entire solar system without the service line and roof substructure cost us **206,000 Bath**, which is **€5,567**. The work output was my own that kept me meaningfully engaged during the pandemic, so I'm not counting it. I don't count the steel substructure for the carport either, since it was necessary anyway to cover our //fleet// (motor scooters and car). Incidentally, the local offers for a comparable system were more than twice as high (but then with wages).
 +
 +From today's point of view, the system will pay for itself after about 5 ½ years, assuming there are no maintenance or repair costs. The goal envisaged above has thus been easily achieved. The first thing to do is to replace the batteries. With around 4000 cycles, that would be after 10 years and the solar panels would be down to 85% performance after 25 years. The future will show how and whether the values will really be achieved.
 +
 +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.
 +
 +{{ :tech:solar_charge.png?direct&400 |Solar battery charge/discharge}}
 +
 +
 +=====Links=====
 +   * [[https://www.home-assistant.io]] Home Assistant
 +   * [[https://esphome.io]] ESPHome
 +   * [[https://airbnb.com/h/villarollokohsamui]] You can spend your holidays with us...
 +
 +===== Donations =====
 +
 +If you want to support my work, you can donate me a cappuccino or something like this...
 +
 +<html>
 +
 +<form action="https://www.paypal.com/donate" method="post" target="_top">
 +<input type="hidden" name="hosted_button_id" value="49N24HL36GF9U" />
 +<input type="image" src="https://www.paypalobjects.com/en_US/DK/i/btn/btn_donateCC_LG.gif" border="0" name="submit" title="PayPal - The safer, easier way to pay online!" alt="Donate with PayPal button" />
 +<img alt="" border="0" src="https://www.paypal.com/en_DE/i/scr/pixel.gif" width="1" height="1" />
 +</form>
 +
 +</html>
en/tech/solarvilla.1681632523.txt.gz · Last modified: 2023/04/16 08:08 by bullar