Hello
I have just implemented modbus (removed the nodered).
Simple config -
####MODBUS###############
# Example configuration.yaml entry
modbus:
- name: HVAC
type: tcp
host: 192.168.39.14
port: 502
delay: 5
retry_on_empty: true
retries: 10
sensors:
# - name: Pump_1
# slave: 2
# address: 48
# input_type: input
# - name: Pump_2
# slave: 2
# address: 49
# input_type: input
- name: RunState
data_type : string
slave: 1
address: 0
count : 4
- name: Alarm
data_type : string
slave: 1
address: 5
count: 4
- name: Total_Cap
slave: 1
address: 9
unit_of_measurement: "%"
- name: SetPoint
unit_of_measurement: "Ā°C"
slave: 1
address: 12
scale : 0.001
precision: 3
device_class: temperature
- name: CTRL_PNT
unit_of_measurement: "Ā°C"
slave: 1
address: 14
scale : 0.001
precision: 3
device_class: temperature
- name: CTRL_WT
unit_of_measurement: "Ā°C"
slave: 1
address: 16
scale : 0.001
precision: 3
device_class: temperature
- name: OAT
unit_of_measurement: "Ā°C"
slave: 1
address: 18
scale : 0.01
precision: 3
device_class: temperature
- name: CircuitA
slave: 1
address: 19
unit_of_measurement: "%"
- name: CircuitA_Total
slave: 1
address: 20
unit_of_measurement: "%"
- name: DischargeP_A
slave: 1
address: 21
unit_of_measurement: "kPa"
device_class: pressure
- name: SuctionP_A
slave: 1
address: 22
unit_of_measurement: "kPa"
device_class: pressure
- name: DischargeT_A
slave: 1
address: 24
unit_of_measurement: "Ā°C"
scale : 0.01
precision: 3
device_class: temperature
- name: SuctionT_A
slave: 1
address: 26
unit_of_measurement: "Ā°C"
scale : 0.01
precision: 3
- name: FAN_A
data_type : string
slave: 1
address: 27
count : 4
- name: CircuitB
slave: 1
address: 31
unit_of_measurement: "%"
- name: CircuitB_Total
slave: 1
address: 32
unit_of_measurement: "%"
- name: DischargeP_B
slave: 1
address: 33
unit_of_measurement: "kPa"
device_class: pressure
- name: SuctionP_B
slave: 1
address: 34
unit_of_measurement: "kPa"
device_class: pressure
- name: DischargeT_B
slave: 1
address: 36
unit_of_measurement: "Ā°C"
scale : 0.01
precision: 3
device_class: temperature
- name: SuctionT_B
slave: 1
address: 38
unit_of_measurement: "Ā°C"
scale : 0.01
precision: 3
device_class: temperature
- name: FAN_B
data_type : string
slave: 1
address: 39
count : 4
- name: EWT
slave: 1
address: 44
unit_of_measurement: "Ā°C"
scale : 0.001
precision: 3
device_class: temperature
- name: LWT
slave: 1
address: 46
unit_of_measurement: "Ā°C"
scale : 0.001
precision: 3
device_class: temperature
- name: reset
slave: 1
address: 47
unit_of_measurement: "Ā°C"
scale : 0.001
precision: 3
device_class: temperature
switches:
- name: Pump_1
slave: 1
address: 48
verify:
input_type: holding
address: 48
state_on: 1
state_off: 0
- name: Pump_2
slave: 1
address: 49
verify:
input_type: holding
address: 49
state_on: 1
state_off: 0
I find that this config slams my modbus box hard. It is unable to keep up and sensors go unavailable all the time (they become available every few seconds).
I have tried MANY MANY ways - I have tried scan rate in each sensor. Tried scan rate in general, but absolutely nothing works.
What is wrong in HA modbus implementation? Why I cannot group all read commands in one go?
What seems to be wrong in above?
PS - This is custom box(Modbus box) in which i can select what goes in what register. All are read registers. I couldnt read the binary sensor - so I had to make a switch out of it.