It took me ages to finally get the correct configuration to be able to control our office’s AC that consists of a gree outdoor unit and several ceiling-mounted units via modbus. I thought I’d share my config here in case that anyone is searching for the same thing.
You need to find out which ceiling unit is which by just trying it out and seeing which unit turns on, AFAIK there is no real system as to in which order they are recognized.
- name: gree_climate
type: serial
method: rtu
port: /dev/ttyUSB0 # Check if this is correct for your setup
baudrate: 9600
bytesize: 8
parity: N
stopbits: 1
delay: 2
message_wait_milliseconds: 200
climates:
- name: "Climate Unit 01" # ID 1
unique_id: climate_unit_01
slave: 14 # Address of the Modbus gateway
input_type: holding
data_type: uint16
write_registers: true
# Current temperatue (Word 116)
address: 141 #116 + 25
# Target temperature (Word 104)
target_temp_write_registers: true
target_temp_register: 129 #104 + 25
temperature_unit: C
min_temp: 16
max_temp: 30
temp_step: 1
scale: 0.1 # Value is TrueValue * 10, so scaling 0.1 for both temperatures
# Turn on/off (Word 102)
hvac_onoff_register: 127 #102 + 25
hvac_on_value: 0xAA
hvac_off_value: 0x55
hvac_mode_register:
address: 128 #103 + 25
write_registers: true
values:
state_fan_only: 3
state_cool: 1
state_heat: 4
state_dry: 2
- name: "Climate Unit 02" # ID 0
unique_id: climate_unit_02
slave: 14 # Address of the Modbus gateway
input_type: holding
data_type: uint16
write_registers: true
# Current temperature (Word 116)
address: 116 #116 + 0 * 25
# Target temperature (Word 104)
target_temp_write_registers: true
target_temp_register: 104 #104 + 0 * 25
temperature_unit: C
min_temp: 16
max_temp: 30
temp_step: 1
scale: 0.1 # Value is TrueValue * 10, so scaling 0.1 for both temperatures
# Turn on/off (Word 102)
hvac_onoff_register: 102 #102 + 0 * 25
hvac_on_value: 0xAA
hvac_off_value: 0x55
hvac_mode_register:
address: 103 #103 + 0 * 25
write_registers: true
values:
state_fan_only: 3
state_cool: 1
state_heat: 4
state_dry: 2
- name: "Climate Unit 03" # ID 2
unique_id: climate_unit_03
slave: 14 # Address of the Modbus gateway
input_type: holding
data_type: uint16
write_registers: true
# Current temperature (Word 116)
address: 166 #116 + 2 * 25
# Target temperature (Word 104)
target_temp_write_registers: true
target_temp_register: 154 #104 + 2 * 25
temperature_unit: C
min_temp: 16
max_temp: 30
temp_step: 1
scale: 0.1 # Value is TrueValue * 10, so scaling 0.1 for both temperatures
# Turn on/off (Word 102)
hvac_onoff_register: 152 #102 + 2 * 25
hvac_on_value: 0xAA
hvac_off_value: 0x55
hvac_mode_register:
address: 153 #103 + 2 * 25
write_registers: true
values:
state_fan_only: 3
state_cool: 1
state_heat: 4
state_dry: 2