- 积分
- 476
- 金钱
- 435
- 威望
- 0
- 贡献
- 0
- HASS币
- 0
中级会员
- 积分
- 476
- 金钱
- 435
- HASS币
- 0
|
发表于 2023-12-10 09:52:19
|
显示全部楼层
贴一个自已使用的一些心得,传递重复值用python脚本更改状态值可以改变,但是好像还是无法重复执行指令,还是建议直接在平台上发送串口数据后等几秒再发送另一个数据即可,如延时发送6F 6B 0A,即可以执行重复指令了,另外帖上我的给SU-03T发送数据的方法,
部份代码
uart:
- id: uart_bus_cmd
rx_pin: GPIO12
baud_rate: 9600
- id: uart_bus_cmd2
tx_pin: GPIO15
baud_rate: 9600
text_sensor:
- platform: custom
lambda: |-
auto my_custom_sensor = new UartReadLineSensor(id(uart_bus_cmd));
App.register_component(my_custom_sensor);
return {my_custom_sensor};
text_sensors:
name: "su03t_cmd"
mqtt:
broker: 192.168.1.X
username: XXX
password: XXX
id: my_mqtt
on_message:
- topic: "your/mqtt/topic"
then:
- uart.write:
id: uart_bus_cmd2
data: !lambda |-
std::string payload_str = std::string(x);
uint8_t value = std::stoi(payload_str);
std::vector<uint8_t> data = {0xAA, 0x55, 0x01, value, 0x55, 0xAA};
return data;
- topic: "your/mqtt/topicc"
then:
- uart.write:
id: uart_bus_cmd2
data: !lambda |-
std::string payload_str = std::string(x);
uint8_t value = std::stoi(payload_str);
std::vector<uint8_t> data = {0xAA, 0x55, 0x02, value, 0x55, 0xAA};
return data; 我这是定义了二个发送消息条其中的0x01是第一条消息 0x02是第二条消息 ,智能公元平台如何接收数据处理详见https://www.bilibili.com/video/BV1KN4y1A7CG/ |
|