Pecator
(Peca2345)
December 17, 2022, 11:08pm
21
Yes, that’s right. The connector is on the back of the LCD. All you have to do is remove the panel from the chassis and open the cover.
Personally, I had a communication problem so I tried to connect to the modbus converter and the GND that is used for the LCD with no result. Still no communication and I don’t know where the problem is.
I still thought of using the 12v power supply of the LCD panel to power the wemos through the step-down converter. But I think the common ground of LCD and modbus converter A,B,GND should be enough.
Does anyone have any verified addresses of e.g. sensors that work in esphome? I still think I have the wrong address format. It’s not clear to me from the datasheet what it should look like.
I would be glad for any verified address to try so I can rule out an address problem and focus on the hardware.
I will be glad for sharing the full code in esphome and a link to the modbus converter used. I have tried several types and the same result…
1 Like
Pecator
(Peca2345)
December 17, 2022, 11:13pm
22
And I’ve got another problem to solve, maybe someone has already solved it.
I have a classic problem with smart PID thermoheads with stepless control and a heat pump.
When my 3/4 heads close the heat pump writes a flow error.
I found that Gree only has a reed sensor as a pressure sensor and it also responds to pressure surges when the heads close.
I know it is not recommended to use smart heads but I believe this can be solved and optimized.
Has anyone solved this problem?
blacknass
(Dimitris Mavronas)
December 18, 2022, 7:49am
23
That would work only if you have a buffer water tank.
As you said, it is not recomemded to use smart heads with a heat pump. It’s a big waste of energy.
agisofttm
(Vladimir Todorov)
December 18, 2022, 6:36pm
24
@Pecator Are you completely sure, that is your model and protocol? Because for Different Versati III, there are different communications as well independent of model. Can you make picture of label on Versati?
Regards
Pecator
(Peca2345)
December 25, 2022, 10:35am
25
I ordered a pressure sensor to know the readings and then plan to install adjustable relief valves…
Pecator
(Peca2345)
December 25, 2022, 10:37am
26
It is a Gree Versati III GRS-CQ10Pd/NhH-E 10kw model. I just have the wrong label that says 8kw but it’s actually 10kw…
DrakeRamore
(Pavlo Dorofieiev)
December 25, 2022, 12:54pm
27
Hi all. I have Gree Versati 2+, firmware version 1.2, protocol version 1.5. Perhaps someone has documentation on the modbus protocol for Gree Versati 2+? The document that was posted above also has version 1.5 but is related to Gree Versati 3. I managed almost all functions thanks to this document, but some registers / coils still do not work. I would be grateful for modbus documents for Versati 2 of any version, thanks!
DrakeRamore
(Pavlo Dorofieiev)
December 25, 2022, 1:25pm
28
Okay, have you know that the CH, Gree, Electrolux asambles in one factory ? All their Heat Pumps (Air to Water) are pretty the same. So I just google for CH documentation and found one, that is exatly fit to my gree versati 2+ modbus communication.
1 Like
Pecator
(Peca2345)
December 25, 2022, 2:30pm
29
Hi, can you please share your working esphome yaml? And what converter do you use for modbus and what is your wiring?
Thank you!
DrakeRamore
(Pavlo Dorofieiev)
December 25, 2022, 3:14pm
30
Hi! Actually I’ve used the node-red solution, that I’ve run on Debian Os. I can share my node-red flow if needed.
Pecator
(Peca2345)
December 25, 2022, 4:15pm
31
I’ll just need the working modbus addresses you’re using.
I would also be grateful for the exact type of converter you are using.
Pecator
(Peca2345)
December 25, 2022, 8:39pm
32
I got the datasheet from the manufacturer directly for my heat pump…
DrakeRamore
(Pavlo Dorofieiev)
December 26, 2022, 7:12am
33
Regarding converter, I think any uart ttl converter will fit. In my case it is FT232 + MAX485 since I have only USB I\O. But in case of clear UART - MAX485 will be enough.
So I use:
But for UART it will be enough something like that:
And then just connect A\B of your board to indoor controller:
DrakeRamore
(Pavlo Dorofieiev)
December 26, 2022, 7:25am
34
For addressing, you should look at the documentation. It’s good that the manufacturer gave it to you directly. I set the modbus address to 1 (in the heat pump controller menu) and then just read/write the parameters via my controller.
To write single register (On \ Off in exampale):
msg.payload = {
value: msg.payload, // 0xAA
'fc': 6,
'unitid': 1,
'address': 1,
'quantity': 1
}
To read multipl registers (0 - 40 in example):
msg.payload = {
'fc': 3, // functional code
'unitid': 1,
'address': 0,
'quantity': 40
}
To read coils (bits):
msg.payload = {
'fc': 1, // functional code
'unitid': 1,
'address': 0,
'quantity': 200
}
To write single coil:
msg.payload = {
value: true, // Enable
'fc': 5,
'unitid': 1,
'address': 33, // Remote room t sensor
'quantity': 1
}
Can you maybe help on the device side connection?
I can not find this plug thingy maybe on aliexpress?
Thanks
agisofttm
(Vladimir Todorov)
January 15, 2023, 7:14am
36
Use simple Arduino cables for connection
1 Like
dslava
(Slava Dubovitsky)
February 3, 2023, 12:25pm
37
Just in case it helps you to find out where you can find the modbus connection slot in your Gree Versati 3…
Once you unscrew the four screws you will be able to find an available slot to connect your Modbus connector. I use an internet UTP or signalization cable wires for the A/B wires connection and
a USB to RS485 485 Converter Adapter (
USB to RS485 485 Converter Adapter ) to connect the Gree Versati 3 Modbus slot (1) with my HomeAssistant computer via USB.
See slot 1
Using this connection I am able to operate my Gree Versati 3 via HomeAssistant completely.
2 Likes
dslava
(Slava Dubovitsky)
February 3, 2023, 1:04pm
38
Here is the settings for my Gree Versati3 heat pump…
in configuration.yaml
....
modbus:
- name: versati3_hub
type: serial
baudrate: 9600
bytesize: 8
method: rtu
parity: N
port: /dev/ttyUSB0
stopbits: 1
retry_on_empty: true
sensors:
- name: "Gree Optional E-Heater"
unique_id: gree_optional_e_heater
scan_interval: 10
slave: 1
address: 3
count: 1
scale: 1
offset: 0
precision: 0
input_type: holding
data_type: uint16
state_class: measurement
- name: "Gree Disinfection Setpoint Temperature"
unique_id: gree_disinfection_setpoint_temperature
scan_interval: 10
slave: 1
address: 4
unit_of_measurement: °C
count: 1
scale: 1
offset: 0
precision: 0
input_type: holding
data_type: uint16
state_class: measurement
device_class: temperature
- name: "Gree Leaving Water Setpoint Temperature"
unique_id: gree_leaving_water_setpoint_temperature
scan_interval: 10
slave: 1
address: 10
unit_of_measurement: °C
count: 1
scale: 1
offset: 0
precision: 0
input_type: holding
data_type: uint16
state_class: measurement
device_class: temperature
# - name: "Gree Room Sensor Setpoint Temperature"
# unique_id: gree_room_sensor_setpoint_temperature
# scan_interval: 10
# slave: 1
# address: 12
# unit_of_measurement: °C
# count: 1
# scale: 1
# offset: 0
# precision: 0
# input_type: holding
# data_type: uint16
# state_class: measurement
# device_class: temperature
- name: "Gree HotWater Tank Setpoint Temperature"
unique_id: gree_hotwater_tank_setpoint_temperature
scan_interval: 10
slave: 1
address: 13
unit_of_measurement: °C
count: 1
scale: 1
offset: 0
precision: 0
input_type: holding
data_type: uint16
state_class: measurement
device_class: temperature
- name: "Gree Ambient Upper Setpoint Temperature"
unique_id: gree_ambient_upper_setpoint_temperature
scan_interval: 10
slave: 1
address: 17
unit_of_measurement: °C
count: 1
scale: 1
offset: 0
precision: 0
input_type: holding
data_type: uint16
state_class: measurement
device_class: temperature
- name: "Gree Ambient Lower Setpoint Temperature"
unique_id: gree_ambient_lower_setpoint_temperature
scan_interval: 10
slave: 1
address: 18
unit_of_measurement: °C
count: 1
scale: 1
offset: 0
precision: 0
input_type: holding
data_type: int16
state_class: measurement
device_class: temperature
- name: "Gree Leaving Water Upper Setpoint Temperature"
unique_id: gree_leaving_water_upper_setpoint_temperature
scan_interval: 10
slave: 1
address: 21
unit_of_measurement: °C
count: 1
scale: 1
offset: 0
precision: 0
input_type: holding
data_type: uint16
state_class: measurement
device_class: temperature
- name: "Gree Leaving Water Lower Setpoint Temperature"
unique_id: gree_leaving_water_lower_setpoint_temperature
scan_interval: 10
slave: 1
address: 22
unit_of_measurement: °C
count: 1
scale: 1
offset: 0
precision: 0
input_type: holding
data_type: uint16
state_class: measurement
device_class: temperature
- name: "Gree Delta T Heat Setpoint Temperature"
unique_id: gree_delta_t_heat_setpoint_temperature
scan_interval: 10
slave: 1
address: 30
unit_of_measurement: °C
count: 1
scale: 1
offset: 0
precision: 0
input_type: holding
data_type: uint16
state_class: measurement
device_class: temperature
- name: "Gree Delta T Hot Water Setpoint Temperature"
unique_id: gree_delta_t_hot_water_setpoint_temperature
scan_interval: 10
slave: 1
address: 31
unit_of_measurement: °C
count: 1
scale: 1
offset: 0
precision: 0
input_type: holding
data_type: uint16
state_class: measurement
device_class: temperature
- name: "Gree Thermostat Mode Digital"
unique_id: gree_thermostat_mode_digital
address: 39
scan_interval: 10
slave: 1
input_type: holding
data_type: uint16
- name: "Gree Unit Status Digital"
unique_id: gree_unit_status_digital
scan_interval: 10
slave: 1
address: 117
count: 1
offset: 0
input_type: holding
data_type: uint16
- name: "Gree Outside Temperature"
unique_id: gree_outside_temperature
scan_interval: 10
slave: 1
address: 118
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
input_type: holding
data_type: int16
state_class: measurement
device_class: temperature
- name: "Gree Water Out PE Temperature"
unique_id: gree_water_out_pe_temperature
scan_interval: 10
slave: 1
address: 125
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
input_type: holding
data_type: uint16
state_class: measurement
device_class: temperature
- name: "Gree T-optional water sen"
unique_id: gree_t_optional_water_sen
scan_interval: 10
slave: 1
address: 126
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
input_type: holding
data_type: uint16
state_class: measurement
device_class: temperature
- name: "Gree Water In PE Temperature"
unique_id: gree_water_in_pe_temperature
scan_interval: 10
slave: 1
address: 127
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
input_type: holding
data_type: uint16
state_class: measurement
device_class: temperature
- name: "Gree Water Tank Temperature"
unique_id: gree_water_tank_temperature
scan_interval: 10
slave: 1
address: 128
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
input_type: holding
data_type: uint16
state_class: measurement
device_class: temperature
- name: "Gree Room Sensor Temperature"
unique_id: gree_room_sensor_temperature
scan_interval: 10
slave: 1
address: 129
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
input_type: holding
data_type: uint16
state_class: measurement
device_class: temperature
- name: "Gree Thermostat Status Digital"
unique_id: gree_thermostat_status_digital
scan_interval: 10
slave: 1
address: 132
count: 1
offset: 0
input_type: holding
data_type: uint16
- name: "Gree Disinfection Status Digital"
unique_id: gree_disinfection_status_digital
scan_interval: 10
slave: 1
address: 135
count: 1
offset: 0
input_type: holding
data_type: uint16
- name: "Gree T-Weather Depend"
unique_id: gree_t_weather_depend
scan_interval: 10
slave: 1
address: 137
unit_of_measurement: °C
count: 1
scale: 1
offset: 0
precision: 0
input_type: holding
data_type: uint16
state_class: measurement
device_class: temperature
binary_sensors:
- name: "Gree Weather Dependent State"
unique_id: gree_weather_dependent_state
address: 22
scan_interval: 10
slave: 1
input_type: coil
- name: "Gree Heat 2Way Valve State"
unique_id: gree_heat_2way_valve_state
address: 38
scan_interval: 10
slave: 1
input_type: coil
- name: "Gree Compressor State"
unique_id: gree_compressor_state
address: 80
scan_interval: 10
slave: 1
input_type: coil
- name: "Gree Fan State"
unique_id: gree_fan_state
address: 81
scan_interval: 10
slave: 1
input_type: coil
- name: "Gree 4way Valve State"
unique_id: gree_4way_valve_state
address: 83
scan_interval: 10
slave: 1
input_type: coil
- name: "Gree Compressor Crankcase Heater State"
unique_id: gree_compressor_crankcase_heater_state
address: 84
scan_interval: 10
slave: 1
input_type: coil
- name: "Gree Underpan Heater State"
unique_id: gree_gree_underpan_heater_state
address: 85
scan_interval: 10
slave: 1
input_type: coil
- name: "Gree Defrosting State"
unique_id: gree_defrosting_state
address: 86
scan_interval: 10
slave: 1
input_type: coil
- name: "Gree Oil Return State"
unique_id: gree_oil_return_state
address: 87
scan_interval: 10
slave: 1
input_type: coil
- name: "Gree Flow Switch State"
unique_id: gree_flow_switch_state
address: 170
scan_interval: 10
slave: 1
input_type: coil
- name: "Gree E_heater1 State"
unique_id: gree_e_heater1_state
address: 171
scan_interval: 10
slave: 1
input_type: coil
- name: "Gree E_heater2 State"
unique_id: gree_e_heater2_state
address: 172
scan_interval: 10
slave: 1
input_type: coil
- name: "Gree Water Pump State"
unique_id: gree_water_pump_state
address: 175
scan_interval: 10
slave: 1
input_type: coil
- name: "Gree Circulating 2way Valve State"
unique_id: gree_circulating_2way_valve_state
address: 176
scan_interval: 10
slave: 1
input_type: coil
- name: "Gree Plate Heater State"
unique_id: gree_plate_heater_state
address: 177
scan_interval: 10
slave: 1
input_type: coil
- name: "Gree 3way Valve State"
unique_id: gree_3way_valve_state
address: 178
scan_interval: 10
slave: 1
input_type: coil
switches:
- name: "Gree Heat+HotWater Or HotWaterOnly Mode"
unique_id: gree_heat_hotwater_mode
slave: 1
address: 2
command_on: 4 #Heat+HotWater Mode
command_off: 2 #HotWater_only Mode
scan_interval: 10
write_type: holding
verify:
input_type: holding
address: 2
state_on: 4 #Heat+HotWater Mode
state_off: 2 #HotWater_only Mode
- name: "Gree Temperature Control Mode"
unique_id: gree_temperature_control_mode
slave: 1
address: 17
command_on: 1 #Use Room sensor temperature
command_off: 0 #Use Leaving water temperature
scan_interval: 10
write_type: coil
verify:
input_type: coil
address: 17
state_on: 1
state_off: 0
- name: "Gree Fast HotWater Mode"
unique_id: gree_fast_hotwater_mode
slave: 1
address: 18
command_on: 1
command_off: 0
scan_interval: 10
write_type: coil
verify:
input_type: coil
address: 18
state_on: 1
state_off: 0
- name: "Gree Heat HotWater Priority"
unique_id: gree_heat_hotwater_priority
slave: 1
address: 20
command_on: 1 #HotWater
command_off: 0 #Heat
scan_interval: 10
write_type: coil
verify:
input_type: coil
address: 20
state_on: 1 #HotWater
state_off: 0 #Heat
- name: "Gree Quite Mode"
unique_id: gree_quite_mode
slave: 1
address: 21
command_on: 1
command_off: 0
scan_interval: 10
write_type: coil
verify:
input_type: coil
address: 21
state_on: 1
state_off: 0
- name: "Gree Weather Depend Mode"
unique_id: gree_weather_depend_mode
slave: 1
address: 22
command_on: 1
command_off: 0
scan_interval: 10
write_type: coil
verify:
input_type: coil
address: 22
state_on: 1
state_off: 0
- name: "Gree Disinfection Mode"
unique_id: gree_disinfection_mode
slave: 1
address: 23
command_on: 1
command_off: 0
scan_interval: 10
write_type: coil
verify:
input_type: coil
address: 23
state_on: 1
state_off: 0
- name: "Gree On/OFF"
unique_id: gree_on_off
slave: 1
address: 42
command_on: 0xAA
command_off: 0x55
scan_interval: 10
write_type: holding
verify:
input_type: holding
address: 42
state_on: 0xAA
state_off: 0x55
- name: "Gree Thermostat"
unique_id: gree_thermostat
slave: 1
address: 39
command_on: 2 # Air+hot water mode
command_off: 0
scan_interval: 10
write_type: holding
verify:
input_type: holding
address: 39
state_on: 2 # Air+hot water mode
state_off: 0
I do not use the modbus Climate sensors as they do not allow you to work with negative temperature values (at least for now). Instead, I use regular sensors to get values from Gree modbus registers and the input_number sensors to keep and modify modbus values in HA.
in configuration.yaml
....
input_number:
gree_room_sensor_temperature:
name: gree_room_sensor_temperature
min: -50
max: 50
step: 0.1
mode: box
icon: mdi:thermometer
unit_of_measurement: '°C'
gree_outside_temperature:
name: gree_outside_temperature
min: -50
max: 50
step: 0.1
mode: box
icon: mdi:thermometer
unit_of_measurement: '°C'
gree_leaving_water_setpoint_temperature:
name: gree_leaving_water_setpoint_temperature
min: 20
max: 55
step: 1
mode: box
icon: mdi:thermometer
unit_of_measurement: '°C'
gree_leaving_water_upper_setpoint_temperature:
name: gree_leaving_water_upper_setpoint_temperature
min: 46
max: 55
step: 1
mode: box
icon: mdi:thermometer
unit_of_measurement: '°C'
gree_leaving_water_lower_setpoint_temperature:
name: gree_leaving_water_lower_setpoint_temperature
min: 20
max: 45
step: 1
mode: box
icon: mdi:thermometer
unit_of_measurement: '°C'
gree_ambient_upper_setpoint_temperature:
name: gree_ambient_upper_setpoint_temperature
min: 10
max: 37
step: 1
mode: box
icon: mdi:thermometer
unit_of_measurement: '°C'
gree_ambient_lower_setpoint_temperature:
name: gree_ambient_lower_setpoint_temperature
min: -20
max: 9
step: 1
mode: box
icon: mdi:thermometer
unit_of_measurement: '°C'
gree_delta_t_heat_setpoint_temperature:
name: gree_delta_t_heat_setpoint_temperature
min: 2
max: 10
step: 1
mode: box
icon: mdi:thermometer
unit_of_measurement: '°C'
gree_hotwater_tank_setpoint_temperature:
name: gree_hotwater_tank_setpoint_temperature
min: 40
max: 60
step: 1
mode: box
icon: mdi:thermometer
unit_of_measurement: '°C'
gree_delta_t_hot_water_setpoint_temperature:
name: gree_delta_t_hot_water_setpoint_temperature
min: 2
max: 8
step: 1
mode: box
icon: mdi:thermometer
unit_of_measurement: '°C'
gree_disinfection_setpoint_temperature:
name: gree_disinfection_setpoint_temperature
min: 40
max: 70
step: 1
mode: box
icon: mdi:thermometer
unit_of_measurement: '°C'
input_select:
gree_optional_e_heater:
name: "Gree Optional E-Heater"
options:
- '1-3kW'
- '2-6 kW'
- '3-Off'
icon: mdi:hvac
In order to handle value changes(temperature mainly) in my HomeAssistant code I use an automation trigger handler in automations.yaml:
....
- id: Handle_gree_setpoint_temperature_change
alias: Handle gree setpoint temperature change
mode: queued
max: 20
trigger:
- platform: state
entity_id:
- sensor.gree_leaving_water_setpoint_temperature
- sensor.gree_leaving_water_upper_setpoint_temperature
- sensor.gree_leaving_water_lower_setpoint_temperature
- sensor.gree_ambient_upper_setpoint_temperature
- sensor.gree_ambient_lower_setpoint_temperature
- sensor.gree_delta_t_heat_setpoint_temperature
- sensor.gree_hotwater_tank_setpoint_temperature
- sensor.gree_delta_t_hot_water_setpoint_temperature
- sensor.gree_disinfection_setpoint_temperature
condition: []
action:
- condition: template
value_template: "{{ is_number(trigger.to_state.state) and (trigger.to_state.state | float > -50 and trigger.to_state.state | float < 100) }}"
- service: input_number.set_value
data:
entity_id: "input_number.{{trigger.to_state.object_id}}"
value: "{{trigger.to_state.state}}"
- id: Handle_gree_options_change
alias: Handle gree options change
mode: queued
max: 20
variables:
input_select_id: "input_select.{{trigger.to_state.object_id}}"
trigger:
- platform: state
entity_id:
- sensor.gree_optional_e_heater
condition: []
action:
- condition: []
- service: input_select.select_option
target:
entity_id: "{{input_select_id}}"
data:
option: "{{ state_attr(input_select_id, 'options') [states(trigger.to_state.entity_id)|int(3) - 1] }}"
- id: Update_gree_modbus_value
alias: Update gree modbus value
mode: queued
max: 20
variables:
sensor_id: "sensor.{{trigger.to_state.object_id}}"
trigger:
- platform: state
entity_id:
- input_number.gree_leaving_water_setpoint_temperature
- input_number.gree_leaving_water_upper_setpoint_temperature
- input_number.gree_leaving_water_lower_setpoint_temperature
- input_number.gree_ambient_upper_setpoint_temperature
- input_number.gree_ambient_lower_setpoint_temperature
- input_number.gree_delta_t_heat_setpoint_temperature
- input_number.gree_hotwater_tank_setpoint_temperature
- input_number.gree_delta_t_hot_water_setpoint_temperature
- input_number.gree_disinfection_setpoint_temperature
- input_select.gree_optional_e_heater
condition: []
action:
- service: modbus.write_register
data_template:
hub: versati3_hub
unit: 1
address: >
{{ state_attr(sensor_id, 'address' ) }}
value: >
{% if 'input_select' in trigger.to_state.entity_id %}
{{ state_attr(trigger.to_state.entity_id, 'options').index(trigger.to_state.state) + 1 }}
{% else %}
{{ (trigger.to_state.state | int) if (trigger.to_state.state | int >= 0) else (65536 + trigger.to_state.state | int) }}
{% endif %}
In order to know which modbus register address to use for updating values (temperature and optional_e_heater dropdown selection) I use a custom attribute ‘address’ in customize.yaml. I have these lines in the customize.yaml file for that:
....
sensor.gree_optional_e_heater:
address: 3
sensor.gree_disinfection_setpoint_temperature:
address: 4
sensor.gree_leaving_water_setpoint_temperature:
address: 10
sensor.gree_leaving_water_upper_setpoint_temperature:
address: 21
sensor.gree_leaving_water_lower_setpoint_temperature:
address: 22
sensor.gree_ambient_upper_setpoint_temperature:
address: 17
sensor.gree_ambient_lower_setpoint_temperature:
address: 18
sensor.gree_delta_t_heat_setpoint_temperature:
address: 30
sensor.gree_hotwater_tank_setpoint_temperature:
address: 13
sensor.gree_delta_t_hot_water_setpoint_temperature:
address: 31
And finally, in order to modify my settings (temperature and optional_e_heater dropdown selection) in ui-lovelace.yaml I use numberbox-card controls (https://github.com/htmltiger/numberbox-card )
....
- entities:
- type: custom:numberbox-card
entity: input_number.gree_leaving_water_setpoint_temperature
secondary_info: last-changed
- type: custom:numberbox-card
entity: input_number.gree_leaving_water_upper_setpoint_temperature
secondary_info: last-changed
- type: custom:numberbox-card
entity: input_number.gree_leaving_water_lower_setpoint_temperature
secondary_info: last-changed
- type: custom:numberbox-card
entity: input_number.gree_ambient_upper_setpoint_temperature
secondary_info: last-changed
- type: custom:numberbox-card
entity: input_number.gree_ambient_lower_setpoint_temperature
secondary_info: last-changed
- type: custom:numberbox-card
entity: input_number.gree_delta_t_heat_setpoint_temperature
secondary_info: last-changed
- type: custom:numberbox-card
entity: input_number.gree_hotwater_tank_setpoint_temperature
secondary_info: last-changed ##Now %sensor.gree_water_tank_temperature:state ##last-changed
- type: custom:numberbox-card
entity: input_number.gree_delta_t_hot_water_setpoint_temperature
secondary_info: last-changed
- type: custom:numberbox-card
entity: input_number.gree_disinfection_setpoint_temperature
secondary_info: last-changed
- input_select.gree_optional_e_heater
title: Heat/HotWater Settings
show_header_toggle: false
state_color: true
type: entities
3 Likes
sickao3
(Marius Constantin)
February 3, 2023, 8:49pm
39
Did anyone tried to do this other than usb connection ? I’m trying with an nodemcu and uart rs485 with esphome and all I get is
[22:40:34][W][modbus_controller:112]: Duplicate modbus command found: type=0x3 address=129 count=1
[22:41:21][D][modbus_controller:029]: Modbus command to device=1 register=0x81 countdown=0 no response received - removed from send queue
I only have one sensor and I can’t figure it out why it says duplicate command. I’m out of ideas. I will try with an usb connection too just to exclude a modbus version problem but not as a permanent solution
sickao3
(Marius Constantin)
February 6, 2023, 8:21am
40
I think you have the wrong address. Why did you said the address is 0x9004? If the starting address of the Modbus register is 1, then the hexadecimal representation of register word 118 would be 0x76. The address of each register word is simply an offset from the starting address, so in this case the address of register 118 would be 1 + 117 = 118. And the hexadecimal representation of 118 is 0x76.