2023-03-02 18:14:22 +01:00
|
|
|
# ESPHome modbus - heatpump Gree Versati III
|
2023-03-02 18:10:40 +01:00
|
|
|
|
2023-03-02 18:16:06 +01:00
|
|
|
## Description:
|
2023-03-02 18:14:22 +01:00
|
|
|
This manual describes how to connect the device to Home Assistant via Modbus protocol using ESP and RS485/TTL converter.
|
|
|
|
In this case it is about connecting a Gree Versati III 10kw heat pump.
|
2023-03-02 18:10:40 +01:00
|
|
|
|
|
|
|
|
2023-03-02 18:16:06 +01:00
|
|
|
## Info:
|
2023-03-02 18:30:35 +01:00
|
|
|
- use only shielded cable, otherwise the error "Modbus CRC Check Failed!" may appear in the log.
|
|
|
|
- put a 120 ohm resistor after the last connected device
|
2023-03-02 18:32:45 +01:00
|
|
|
- modbus datasheet: [Gree Versati III](https://github.com/peca2345/ESPHome-modbus-heatpump-Gree-Versati-III/blob/main/modbus-versati-iii-en.pdf)
|
2023-03-02 18:32:16 +01:00
|
|
|
- you have to find out what the heatpump address is - default is 0x1
|
|
|
|
- you also need to find out the serial port speed - default 9600
|
2023-03-02 18:35:43 +01:00
|
|
|
- in ESPHome use the sensor class only for addresses that are read-only
|
|
|
|
- for addresses that are read/write use the "number" class (you can then change their values in lovelace)
|
|
|
|
- for each register you want to have in HA you have to create a separate sensor in ESPHome
|
2023-03-02 19:12:05 +01:00
|
|
|
- you can write the address to the sensor in decimal or hex
|
2023-03-02 19:08:29 +01:00
|
|
|
- for ESP8266 use tx_pin: 13, rx_pin: 12, flow_control_pin: 14
|
2023-03-02 19:07:10 +01:00
|
|
|
|
|
|
|
## Lovelace:
|
|
|
|
![lovelace](https://github.com/peca2345/ESPHome-modbus-heatpump-Gree-Versati-III/blob/main/IMG/Lovelace.png?raw=true)
|
|
|
|
|
|
|
|
|
2023-03-02 18:16:30 +01:00
|
|
|
## Components:
|
2023-03-02 18:10:40 +01:00
|
|
|
- ESP8266 / ESP32
|
|
|
|
- RS485/TTL converter: [SHOP](https://www.laskakit.cz/prevodnik-ttl-na-rs-485--max485/)
|
|
|
|
|
2023-03-02 19:07:10 +01:00
|
|
|
|
2023-03-02 18:16:30 +01:00
|
|
|
## Schematic:
|
2023-03-02 18:14:22 +01:00
|
|
|
![Schema](https://github.com/peca2345/ESPHome-modbus-heatpump-Gree-Versati-III/blob/main/IMG/schematic.png?raw=true)
|
|
|
|
|
2023-03-02 19:07:10 +01:00
|
|
|
|
2023-03-02 18:16:30 +01:00
|
|
|
## ESPHome code:
|
2023-03-02 18:10:40 +01:00
|
|
|
```
|
|
|
|
uart:
|
|
|
|
id: mod_bus
|
|
|
|
tx_pin: GPIO16
|
|
|
|
rx_pin: GPIO17
|
|
|
|
baud_rate: 9600
|
|
|
|
stop_bits: 2
|
|
|
|
|
|
|
|
modbus:
|
|
|
|
flow_control_pin: GPIO23
|
|
|
|
send_wait_time: 100ms
|
|
|
|
id: modbus_versati3
|
|
|
|
|
|
|
|
|
|
|
|
modbus_controller:
|
|
|
|
- id: versati3
|
|
|
|
## the Modbus device addr
|
|
|
|
address: 0x1
|
|
|
|
modbus_id: modbus_versati3
|
|
|
|
setup_priority: -10
|
|
|
|
update_interval: 15s
|
|
|
|
|
|
|
|
number:
|
|
|
|
- platform: modbus_controller
|
|
|
|
modbus_controller_id: versati3
|
2023-03-02 18:50:44 +01:00
|
|
|
name: "Gree_versati_tank_temp_set"
|
2023-03-02 18:10:40 +01:00
|
|
|
address: 13
|
|
|
|
unit_of_measurement: "°C"
|
|
|
|
value_type: S_WORD
|
|
|
|
entity_category: config
|
|
|
|
|
|
|
|
sensor:
|
|
|
|
- platform: modbus_controller
|
|
|
|
modbus_controller_id: versati3
|
2023-03-02 18:53:39 +01:00
|
|
|
name: "Gree_versati_tank_temp_target"
|
2023-03-02 18:10:40 +01:00
|
|
|
address: 13
|
|
|
|
unit_of_measurement: "°C"
|
|
|
|
register_type: holding
|
|
|
|
value_type: U_WORD
|
2023-03-02 18:53:39 +01:00
|
|
|
accuracy_decimals: 1
|
|
|
|
|
|
|
|
- platform: modbus_controller
|
|
|
|
modbus_controller_id: versati3
|
|
|
|
name: "Gree_versati_tank_temp"
|
|
|
|
address: 128
|
|
|
|
unit_of_measurement: "°C"
|
|
|
|
register_type: holding
|
|
|
|
value_type: U_WORD
|
2023-03-02 18:10:40 +01:00
|
|
|
accuracy_decimals: 1
|
2023-03-02 18:53:39 +01:00
|
|
|
filters:
|
|
|
|
- multiply: 0.1
|
2023-03-02 18:58:54 +01:00
|
|
|
|
|
|
|
- platform: modbus_controller
|
|
|
|
modbus_controller_id: versati3
|
|
|
|
name: "Gree_versati_outside_temp"
|
|
|
|
address: 118
|
|
|
|
unit_of_measurement: "°C"
|
|
|
|
register_type: holding
|
|
|
|
value_type: U_WORD
|
|
|
|
accuracy_decimals: 1
|
|
|
|
filters:
|
|
|
|
- multiply: 0.1
|
|
|
|
|
|
|
|
- platform: modbus_controller
|
|
|
|
modbus_controller_id: versati3
|
|
|
|
name: "Gree_versati_water_in_temp"
|
|
|
|
address: 127
|
|
|
|
unit_of_measurement: "°C"
|
|
|
|
register_type: holding
|
|
|
|
value_type: U_WORD
|
|
|
|
accuracy_decimals: 1
|
|
|
|
filters:
|
|
|
|
- multiply: 0.1
|
|
|
|
|
|
|
|
- platform: modbus_controller
|
|
|
|
modbus_controller_id: versati3
|
|
|
|
name: "Gree_versati_water_out_temp"
|
|
|
|
address: 125
|
|
|
|
unit_of_measurement: "°C"
|
|
|
|
register_type: holding
|
|
|
|
value_type: U_WORD
|
|
|
|
accuracy_decimals: 1
|
|
|
|
filters:
|
|
|
|
- multiply: 0.1
|
2023-03-02 18:10:40 +01:00
|
|
|
```
|
2023-03-02 19:07:10 +01:00
|
|
|
|
|
|
|
|