DS-R1改的,不知道对不对:
sensor:
- platform: custom
lambda: |-
auto tds_sensor = new TDSSensorComponent(id(uart_bus1));
App.register_component(tds_sensor);
return std::vector<sensor::Sensor*>{
tds_sensor->tds1,
tds_sensor->temperature1,
tds_sensor->tds2,
tds_sensor->temperature2
};
sensors:
tds1:
name: "TDS Sensor 1"
unit_of_measurement: "ppm"
accuracy_decimals: 1
temperature1:
name: "Temperature 1"
unit_of_measurement: "°C"
accuracy_decimals: 2
tds2:
name: "TDS Sensor 2"
unit_of_measurement: "ppm"
accuracy_decimals: 1
temperature2:
name: "Temperature 2"
unit_of_measurement: "°C"
accuracy_decimals: 2
修改说明:
使用std::vector<sensor::Sensor*>明确返回类型,避免类型推导错误
采用键值对形式声明传感器配置,符合新版配置规范
移除冗余的id声明(自定义组件已自带唯一标识)
建议为每个传感器添加更详细的name描述
字符串类型的单位声明需使用双引号包裹
若问题仍未解决,请检查:
UART总线配置是否正确(波特率/引脚定义)
自定义组件TDSSensorComponent是否适配最新版ESPHome API
确保在全局配置中正确定义了uart_bus1:
uart:
- id: uart_bus1
tx_pin: GPIOXX
rx_pin: GPIOXX
baud_rate: XXXX
|