mirror of
https://github.com/esphome/esphome.git
synced 2026-06-24 11:25:35 +00:00
180 lines
4.7 KiB
YAML
180 lines
4.7 KiB
YAML
esphome:
|
|
name: uart-mock-modbus-server-contro
|
|
|
|
host:
|
|
api:
|
|
logger:
|
|
level: VERBOSE
|
|
|
|
external_components:
|
|
- source:
|
|
type: local
|
|
path: EXTERNAL_COMPONENT_PATH
|
|
|
|
# Dummy uart entry to satisfy modbus's DEPENDENCIES = ["uart"]
|
|
# The actual UART bus used is the uart_mock component below
|
|
uart:
|
|
baud_rate: 115200
|
|
port: /dev/null
|
|
|
|
uart_mock:
|
|
- id: virtual_uart_server
|
|
baud_rate: 9600
|
|
# auto_start must be true for loopback fixtures: the modbus controller
|
|
# polls on its update_interval immediately at boot, so the uart_mock
|
|
# forwarding must already be active or early requests are lost and
|
|
# generate modbus warnings.
|
|
auto_start: true
|
|
debug:
|
|
on_tx:
|
|
- then:
|
|
- uart_mock.inject_rx:
|
|
id: virtual_uart_controller
|
|
data: !lambda return data;
|
|
- id: virtual_uart_controller
|
|
baud_rate: 9600
|
|
auto_start: true # See comment on virtual_uart_server above
|
|
debug:
|
|
on_tx:
|
|
- then:
|
|
- uart_mock.inject_rx:
|
|
id: virtual_uart_server
|
|
data: !lambda return data;
|
|
|
|
modbus:
|
|
- uart_id: virtual_uart_server
|
|
id: virtual_modbus_server
|
|
role: server
|
|
- uart_id: virtual_uart_controller
|
|
id: virtual_modbus_controller
|
|
role: client
|
|
turnaround_time: 10ms
|
|
|
|
modbus_controller:
|
|
- address: 1
|
|
modbus_id: virtual_modbus_controller
|
|
id: modbus_controller_1
|
|
update_interval: 1s
|
|
|
|
modbus_server:
|
|
- address: 1
|
|
modbus_id: virtual_modbus_server
|
|
id: modbus_server_1
|
|
registers:
|
|
- address: 0x01
|
|
value_type: U_WORD
|
|
read_lambda: return 99;
|
|
- address: 0x03
|
|
value_type: S_WORD
|
|
read_lambda: return -99;
|
|
- address: 0x05
|
|
value_type: U_DWORD
|
|
read_lambda: return 16909060;
|
|
- address: 0x08
|
|
value_type: S_DWORD
|
|
read_lambda: return -16909060;
|
|
- address: 0x0B
|
|
value_type: U_DWORD_R
|
|
read_lambda: return 67305985;
|
|
- address: 0x0E
|
|
value_type: S_DWORD_R
|
|
read_lambda: return -67305985;
|
|
- address: 0x11
|
|
value_type: U_QWORD
|
|
read_lambda: return 72623859790382856;
|
|
- address: 0x16
|
|
value_type: S_QWORD
|
|
read_lambda: return -72623859790382856;
|
|
- address: 0x1B
|
|
value_type: U_QWORD_R
|
|
read_lambda: return 578437695752307201;
|
|
- address: 0x20
|
|
value_type: S_QWORD_R
|
|
read_lambda: return -578437695752307201;
|
|
- address: 0x25
|
|
value_type: FP32
|
|
read_lambda: return 3.14;
|
|
- address: 0x28
|
|
value_type: FP32_R
|
|
read_lambda: return 3.14;
|
|
|
|
sensor:
|
|
- platform: modbus_controller
|
|
modbus_controller_id: modbus_controller_1
|
|
name: "reg_u_word"
|
|
address: 0x01
|
|
register_type: holding
|
|
value_type: U_WORD
|
|
- platform: modbus_controller
|
|
modbus_controller_id: modbus_controller_1
|
|
name: "reg_s_word"
|
|
address: 0x03
|
|
register_type: holding
|
|
value_type: S_WORD
|
|
- platform: modbus_controller
|
|
modbus_controller_id: modbus_controller_1
|
|
name: "reg_u_dword"
|
|
address: 0x05
|
|
register_type: holding
|
|
value_type: U_DWORD
|
|
- platform: modbus_controller
|
|
modbus_controller_id: modbus_controller_1
|
|
name: "reg_s_dword"
|
|
address: 0x08
|
|
register_type: holding
|
|
value_type: S_DWORD
|
|
- platform: modbus_controller
|
|
modbus_controller_id: modbus_controller_1
|
|
name: "reg_u_dword_r"
|
|
address: 0x0B
|
|
register_type: holding
|
|
value_type: U_DWORD_R
|
|
- platform: modbus_controller
|
|
modbus_controller_id: modbus_controller_1
|
|
name: "reg_s_dword_r"
|
|
address: 0x0E
|
|
register_type: holding
|
|
value_type: S_DWORD_R
|
|
- platform: modbus_controller
|
|
modbus_controller_id: modbus_controller_1
|
|
name: "reg_u_qword"
|
|
address: 0x11
|
|
register_type: holding
|
|
value_type: U_QWORD
|
|
- platform: modbus_controller
|
|
modbus_controller_id: modbus_controller_1
|
|
name: "reg_s_qword"
|
|
address: 0x16
|
|
register_type: holding
|
|
value_type: S_QWORD
|
|
- platform: modbus_controller
|
|
modbus_controller_id: modbus_controller_1
|
|
name: "reg_u_qword_r"
|
|
address: 0x1B
|
|
register_type: holding
|
|
value_type: U_QWORD_R
|
|
- platform: modbus_controller
|
|
modbus_controller_id: modbus_controller_1
|
|
name: "reg_s_qword_r"
|
|
address: 0x20
|
|
register_type: holding
|
|
value_type: S_QWORD_R
|
|
- platform: modbus_controller
|
|
modbus_controller_id: modbus_controller_1
|
|
name: "reg_fp32"
|
|
address: 0x25
|
|
register_type: holding
|
|
value_type: FP32
|
|
- platform: modbus_controller
|
|
modbus_controller_id: modbus_controller_1
|
|
name: "reg_fp32_r"
|
|
address: 0x28
|
|
register_type: holding
|
|
value_type: FP32_R
|
|
|
|
button:
|
|
- platform: template
|
|
name: "Start Scenario"
|
|
id: start_scenario_btn
|
|
# This test does not have anything to start (mock is autostart)
|