本帖最后由 柳桥风起 于 2022-5-6 16:52 编辑
柳桥风起 发表于 2022-5-6 00:13
上面的代码有点小问题,homeassistant那边的传感器实体值会保留为最后一次发送的内容会导致自动化无法触发 ... 以下为头文件的代码:
#include "esphome.h"
class UartReadLineSensor : public Component, public UARTDevice, public TextSensor
{
public:
UartReadLineSensor(UARTComponent *parent) : UARTDevice(parent) {}
void setup() override
{
// nothing to do here
}
void loop() override
{
String str = "";
while (available())
{
char c = read();
if (c != '\n')
{
str = str + c;
}
delay(2);
}
publish_state(str.c_str());
str = "";
delay(100);
}
};
|