『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
楼主: demacia

[新奇玩法] esphome 集成UART 消息到HomeAssitant

[复制链接]

25

主题

224

帖子

1032

积分

金牌会员

007潜水了

Rank: 6Rank: 6

积分
1032
金钱
808
HASS币
0
 楼主| 发表于 2023-10-31 21:57:10 | 显示全部楼层
kjjuhfv 发表于 2023-10-31 16:03
这个是esp32的  
可以的话大佬顺便也试试esp8266看能不能成功

你试试,我把wifi去掉了。你这个用的secrets里面的配置

abc-factory.zip

567.93 KB, 下载次数: 5

回复

使用道具 举报

24

主题

579

帖子

2679

积分

金牌会员

Rank: 6Rank: 6

积分
2679
金钱
2100
HASS币
0
发表于 2023-10-31 23:15:19 | 显示全部楼层
demacia 发表于 2023-10-31 21:57
你试试,我把wifi去掉了。你这个用的secrets里面的配置

我已经找出原因了
就是usb转ttl那个工具有问题
我用另外esp8266的串口发射内容 一切正常
至于esp8266也编译成功了 删除了h文件第19行就可以编译了

不过还是有个小问题的
传感器读取了数据之后就一直保持最后的状态
这不利于重复的行动
大佬可以增加在2秒后修改状态为off吗?
回复

使用道具 举报

25

主题

224

帖子

1032

积分

金牌会员

007潜水了

Rank: 6Rank: 6

积分
1032
金钱
808
HASS币
0
 楼主| 发表于 2023-11-1 22:18:00 | 显示全部楼层
kjjuhfv 发表于 2023-10-31 23:15
我已经找出原因了
就是usb转ttl那个工具有问题
我用另外esp8266的串口发射内容 一切正常

你难倒我了 c的代码我是抄的。不过都已经接入ha了,实体自动化是不是也能做
回复

使用道具 举报

24

主题

579

帖子

2679

积分

金牌会员

Rank: 6Rank: 6

积分
2679
金钱
2100
HASS币
0
发表于 2023-11-2 14:05:52 | 显示全部楼层
demacia 发表于 2023-11-1 22:18
你难倒我了 c的代码我是抄的。不过都已经接入ha了,实体自动化是不是也能做 ...
#include "esphome.h"
using namespace esphome;

class MyCustomComponent : public Component, public uart::UARTDevice {
 protected:
  unsigned char telegram[100];
  char data[100];

  bool read_message() {
    int i = 0;
    if (available()) {
      while (available()) {
        telegram[i] = read();
        data[i] = (char) telegram[i];
        ESP_LOGD("DmsrCustom", "0x%x", telegram[i]);
        i++;
      }
      data[i] = 0;
      ESP_LOGD("DmsrCustom", data);
      uart_text_sensors->publish_state(data);
      //延迟3秒
      delay(3000);
      //发布固定状态为off 配合需要重复触发的情况
      uart_text_sensors->publish_state("off");
    }
    return false;
  }
 public:
  MyCustomComponent(UARTComponent *parent) : UARTDevice(parent) {}
  TextSensor *uart_text_sensors = new TextSensor();

  void setup() override {
    // nothing to do here
  }
  void loop() override {
    // Use Arduino API to read data, for example
    if (available()) {
      ESP_LOGD("DmsrCustom", "loop start");
      read_message();
    }
  }
};

解决了  加两行代码就ok了
回复

使用道具 举报

22

主题

245

帖子

1587

积分

金牌会员

Rank: 6Rank: 6

积分
1587
金钱
1342
HASS币
0
发表于 2023-11-3 19:06:58 | 显示全部楼层
kjjuhfv 发表于 2023-10-29 23:28
编译失败
我折腾esphome的uart几乎没有成功过
即使用大佬这样现成的代码也没有成功过 简直了 ...

我也是一样。 我是想ESPHOME 讲串口传过来的  语音数据 做  语音控制 。。
回复

使用道具 举报

24

主题

579

帖子

2679

积分

金牌会员

Rank: 6Rank: 6

积分
2679
金钱
2100
HASS币
0
发表于 2023-11-4 00:46:38 | 显示全部楼层
ekingfan 发表于 2023-11-3 19:06
我也是一样。 我是想ESPHOME 讲串口传过来的  语音数据 做  语音控制 。。

那么现在你成功了没?
回复

使用道具 举报

22

主题

245

帖子

1587

积分

金牌会员

Rank: 6Rank: 6

积分
1587
金钱
1342
HASS币
0
发表于 2023-11-4 15:01:39 | 显示全部楼层
kjjuhfv 发表于 2023-11-4 00:46
那么现在你成功了没?

不行ESP32 8266 都试过没有任何信息。
回复

使用道具 举报

24

主题

579

帖子

2679

积分

金牌会员

Rank: 6Rank: 6

积分
2679
金钱
2100
HASS币
0
发表于 2023-11-4 18:48:57 | 显示全部楼层
ekingfan 发表于 2023-11-4 15:01
不行ESP32 8266 都试过没有任何信息。

你是什么设备测试的?
我之前的usb转串口有问题  怎么试都不行
换了一个设备后就可以了
回复

使用道具 举报

8

主题

870

帖子

5218

积分

论坛元老

Rank: 8Rank: 8

积分
5218
金钱
4348
HASS币
0
发表于 2023-11-5 10:17:05 | 显示全部楼层
mark 谢谢分享,学习
回复

使用道具 举报

0

主题

3

帖子

68

积分

注册会员

Rank: 2

积分
68
金钱
65
HASS币
0
发表于 2024-7-1 19:10:24 | 显示全部楼层
kjjuhfv 发表于 2023-10-30 15:54
我折腾uart必定遇到这个

esp8266 使用的话注释自定义函数里的 ESP_LOGD就可以了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-21 21:20 , Processed in 1.450351 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表