Hi,
hopefully someone can help
hier is my yaml
# Disable logging
logger:
baud_rate: 0
uart:
- id: modbus_filter_pump
tx_pin: GPIO24
rx_pin: GPIO33
baud_rate: 9600
parity: EVEN
stop_bits: 1
- id: modbus_gsa_pump
tx_pin: GPIO26
rx_pin: GPIO48
baud_rate: 9600
parity: EVEN
stop_bits: 1
- id: modbus_hayward
tx_pin: GPIO53
rx_pin: GPIO47
baud_rate: 9600
modbus:
- uart_id: modbus_filter_pump
id: vfd_modbus_filter
- uart_id: modbus_gsa_pump
id: vfd_modbus_gsa
modbus_controller:
- id: filter_vfd
address: 0x1
modbus_id: vfd_modbus_filter
setup_priority: -10
- id: gsa_vfd
address: 0x1
modbus_id: vfd_modbus_gsa
setup_priority: -10
sensor:
# Aktuelle Ausgangsfrequenz lesen (d00.00 laut Manual Seite 69)
- platform: modbus_controller
modbus_controller_id: filter_vfd
id: filter_pump_frequency
name: "Poolpumpe Frequenz Aktuell"
address: 0x7000
register_type: holding
value_type: U_WORD
unit_of_measurement: "Hz"
accuracy_decimals: 2
filters:
- multiply: 0.01
# Aktuelle Frequenzvorgabe lesen (d00.01 laut Manual Seite 69)
- platform: modbus_controller
modbus_controller_id: filter_vfd
id: filter_pump_frequency_set_monitor
name: "Poolpumpe Frequenz Vorgabe"
address: 0x7001
register_type: holding
value_type: U_WORD
unit_of_measurement: "Hz"
accuracy_decimals: 2
filters:
- multiply: 0.01
number:
# Frequenzvorgabe schreiben (Register 0x1000 laut Manual Anhang I)
- platform: modbus_controller
modbus_controller_id: filter_vfd
name: "Poolpumpe Frequenz Vorgabe"
address: 0x1000
register_type: holding
value_type: U_WORD
min_value: 0
max_value: 100
step: 1
unit_of_measurement: "%"
mode: box
# Umrechnung: 100.00 % im UI -> sendet 5000 an den VFD (0.01Hz Steps)
lambda: "return x * 0.01;"
write_lambda: "return x * 100.0;"
select:
- platform: modbus_controller
modbus_controller_id: filter_vfd
name: "Poolpumpe Betrieb"
icon: "mdi:pump"
address: 0x2000
value_type: U_WORD
optimistic: true
optionsmap:
"Forward Running": 1
"Coast to Stop": 5
first of all Register 0x2000 is just for setting the value, this seems to work, but i get an error because he tries to read the status of 0x2000 but the status should be read from 0x3000 … how can i achieve this?
btw i found some old code:
turn_on_action:
- modbus_controller.write_register:
id: filter_vfd
address: 0x2000
value: 1 # 0001H: Start Forward
but it seems ther is no modbus_controller.write_register?
