Hey all,
I’ve got a fuse box with about 15 power meters. The meters are connected with modbus to one modbus hub. Yesterday I found out I had no readings for about a week from that hub. It only reads one value at reboot, and that’s it.
After a few hours tinkering I found out that I’ve turned of one of the breakers (because I’m working in that room on the power). So I found out that if one breaker is off, or in other words, when one modbus device is unreachable, the hub won’t read any of the other devices it values.
Is the a bug, or should I use a different approach?
This is a simplified config:
- name: 100_series_hub
type: tcp
host: 192.168.0.30
port: 502
retries: 25
timeout: 4
delay: 2
sensors:
- name: 100 - Phase 1 line to neutral volts
unique_id: 100_l1_neutral_volts
data_type: float32
precision: 2
address: 0
input_type: input
slave: 100
scan_interval: 10
unit_of_measurement: V
state_class: measurement
device_class: voltage
- name: 101 - Phase 1 line to neutral volts
unique_id: 101_l1_neutral_volts
data_type: float32
precision: 2
address: 0
input_type: input
slave: 101
scan_interval: 10
unit_of_measurement: V
state_class: measurement
device_class: voltage
- name: 102 - Phase 1 line to neutral volts
unique_id: 102_l1_neutral_volts
data_type: float32
precision: 2
address: 0
input_type: input
slave: 102
scan_interval: 10
unit_of_measurement: V
state_class: measurement
device_class: voltage
So, when slave 101
is down, none of them work.
Thinking of it, should I maybe create a hub for each device? Maybe like this?
- name: 100_hub
type: tcp
host: 192.168.0.30
port: 502
retries: 25
timeout: 4
delay: 2
sensors:
- name: 100 - Phase 1 line to neutral volts
unique_id: 100_l1_neutral_volts
data_type: float32
precision: 2
address: 0
input_type: input
slave: 100
scan_interval: 10
unit_of_measurement: V
state_class: measurement
device_class: voltage
- name: 101_hub
type: tcp
host: 192.168.0.30
port: 502
retries: 25
timeout: 4
delay: 2
sensors:
- name: 101 - Phase 1 line to neutral volts
unique_id: 101_l1_neutral_volts
data_type: float32
precision: 2
address: 0
input_type: input
slave: 101
scan_interval: 10
unit_of_measurement: V
state_class: measurement
device_class: voltage
- name: 102_hub
type: tcp
host: 192.168.0.30
port: 502
retries: 25
timeout: 4
delay: 2
sensors:
- name: 102 - Phase 1 line to neutral volts
unique_id: 102_l1_neutral_volts
data_type: float32
precision: 2
address: 0
input_type: input
slave: 102
scan_interval: 10
unit_of_measurement: V
state_class: measurement
device_class: voltage
How can I avoid this problem?