Hello, I spent already more than a week to get this working, but I still can not achieve the result I want. I have heat pump from Acond which support communication over ModBus. The problem is that when I set it up it jups between the auto mode and the ModBus mode. In the documentation there is mentioned that it will switch to auto mode when in time = MaxCommDataRefresh there was no value written or read over ModBus. I suspect that this MaxCommDataRefresh is 1s or lower, but Home Assistant only allows me to read in 1s intervals. That is the first problem.
Second problem is that when I setup “climates” it can write only one register, but based on the documentation I need to write multiple registers because some needs to be set to some values. Is there some solution how to write multiple registers when the target temperature is set?
Hi Jakub! I also have an Acond heat pump and I am just getting my bearings around its Modbus interface. Can you tell me where you obtained the documentation you mentioned?
Also, did you make any headway with the issue you described here? I am currently looking to use the heat pump as a sensor source only, and I want to be able to track its reported outside and inside air temperature, and the heating and hot water temperature. In other words, I am currently only interested in the read registers. Since your question was about writes, I suppose you already succeeded at reads before those?
Hello,
here is my configuration.yaml which I use and it works.
You have to change the IP address.
And technicians from Acond must allow Modbus communication on the unit.
With Best Regards Thomas
though I haven’t made much headway yet, I just wanted to say thanks for the pointers thus far.
I have put in this request with the contractor that installed my heat pump, and am still waiting to hear back from them.
I have found this video though; it contains some information about Modbus from about the 14-minute mark:
Unfortunately I don’t speak Czech, and Youtube’s auto-caption/auto-translate feature doesn’t appear to work for this video. So I can’t make out a whole lot. One question that I do have is this, though: do the Modbus registers expose the system’s current power consumption? Is that the ACOND_capacity_actual_W sensor you define, @tnovicky?
Ahoj Jakube,
I see your modbus with ACOND is working. I have ACOND as well, I have paper protocol from ACOND, and I think I made it all exactly according this protocol, but answer is ILLEGAL DATA ADDRESS. Can you send me a couple of packets from communication recorded by wireshark or can you check where should be problem on my side please? I have info from ACOND that it should works, but not in my case. Thank you Vasek.
Hello,
below is my configuration.yaml. I think I copied it correctly from you, but I can’t get the correct result.
After restarting HA it gives me an error:
Logger: homeassistant.setup
Source: setup.py:190
First occurred: 11:41:39 (2 occurrences)
Last logged: 11:41:40
Setup failed for sensors: Integration not found.
Setup failed for climates: Integration not found.
Could you please help me with what I am doing wrong.
I’m sorry, but I’m a beginner with HA, so please be patient and forgiving.
thank you very much
Hello, did You solve the problem? If not I will try to help, but prefer email conversation. So send Your question to [email protected].
With Best Regards Thomas
Returning to this thread with additional information, just in case someone finds it useful.
I’ve finally added my Acond PRO-R to my Home Assistant configuration via Modbus, using the documentation available from loxone-library as a reference (this appears to be a translation of https://acond.cz/wp-content/uploads/Acond_ModbusTCP-v2.34.pdf though the version IDs don’t match up, and also I’m not sure if the translation comes directly from Acond or from a third party).
Here’s what I’ve added to my modbus configuration thus far:
- name: Acond PRO-R
type: tcp
host: acond.lan # This is a DNS entry in my local network; using an IP address is fine too
port: 502
delay: 1
timeout: 1
message_wait_milliseconds: 1
retries: 1
climates:
- name: ACOND_T_set_indoor1 # Indoor temperature, sensor #1 (I only have one at this time)
slave: 1
address: 1
target_temp_register: 0
input_type: input
data_type: int16
scan_interval: 60
scale: 0.1
precision: 1
max_temp: 28
min_temp: 10
temp_step: 0.1
- name: ACOND_T_set_TUV # Domestic hot water temperature
slave: 1
address: 5
target_temp_register: 4
input_type: input
data_type: int16
scan_interval: 60
scale: 0.1
precision: 1
max_temp: 55
min_temp: 10
temp_step: 0.1
sensors:
- name: ACOND_T_act_indoor1 # Current indoor temperature at sensor #1
slave: 1
address: 1
data_type: int16
scale: 0.1
precision: 1
input_type: input
device_class: temperature
unit_of_measurement: "°C"
- name: ACOND_T_act_TUV # Current domestic hot water temperature
slave: 1
address: 5
data_type: int16
scale: 0.1
precision: 1
input_type: input
device_class: temperature
unit_of_measurement: "°C"
- name: ACOND_T_act_water_back # Current return water temperature in heating circuit
slave: 1
address: 8
data_type: int16
scale: 0.1
precision: 1
input_type: input
device_class: temperature
unit_of_measurement: "°C"
- name: ACOND_T_act_air # Current outside air temperature
slave: 1
address: 9
data_type: int16
scale: 0.1
precision: 1
input_type: input
device_class: temperature
unit_of_measurement: "°C"
- name: ACOND_err_number # General error number, should always be 0 in normal operation
slave: 1
address: 20
data_type: int16
input_type: input
- name: ACOND_err_number_SECMono # SECMono error number, should always be 0 in normal operation
slave: 1
address: 21
data_type: int16
input_type: input
- name: ACOND_err_number_driver # Driver error number, should always be 0 in normal operation
slave: 1
address: 22
data_type: int16
input_type: input
- name: ACOND_capacity_actual_W # Current heat production
slave: 1
address: 23
data_type: int16
input_type: input
device_class: power
unit_of_measurement: "W"