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

 找回密码
 立即注册
12
返回列表 发新帖
楼主: whxciotw

[经验分享] 明基投影仪RS232接入(之ESPHome版)

[复制链接]

3

主题

53

帖子

536

积分

高级会员

Rank: 4

积分
536
金钱
483
HASS币
0
发表于 2024-10-24 12:10:30 | 显示全部楼层
whxciotw 发表于 2024-10-24 11:59
应该不用加text_sensor呀,我在esphome中验证是通过的,你再看看。

您在esphome中点击logs测试的吗?如果不加text_sensor,logs提示错误和uart_read_line_sensor.h文件相关,是不是因为在uart_read_line_sensor.h文件中有public TextSensor,所以必须加上text_sensor才能通过?我的esphome是最新版的。
回复

使用道具 举报

22

主题

656

帖子

4572

积分

版主

Rank: 7Rank: 7Rank: 7

积分
4572
金钱
3901
HASS币
40
 楼主| 发表于 2024-10-24 12:22:41 | 显示全部楼层
fulinsky 发表于 2024-10-24 12:10
您在esphome中点击logs测试的吗?如果不加text_sensor,logs提示错误和uart_read_line_sensor.h文件相关 ...

我是在esphome中validate验证通过,也是最新版。不加text sensor,你那里能validate通过吗?
另外,如果想加上电源的状态反馈,可以改一改代码。大体如下,详细的你可以配合AI改一改。
esphome:
  name: mediaroom-bridge
  includes:
    - uart_read_line_sensor.h

logger:
  level: DEBUG #makes uart stream available in esphome logstream
  baud_rate: 0 #disable logging over uart

uart:
  id: uart_bus
  tx_pin: D4
  rx_pin: RX
  baud_rate: 19200

text_sensor:
- platform: custom
  lambda: |-
    auto uart_sensor = new UartReadLineSensor();
    App.register_component(uart_sensor);
    return {uart_sensor};
  text_sensors:
    - id: uart_readline
      on_value:
        then:
          - lambda: |-
              std::string value = x;
              // 检查字符串是否以0xBE, 0xEF等开始,并根据最后一个字节确定状态
              if (value.size() >= 26 && value.substr(0, 22) == "0xBE, 0xEF, 0x03, 0x06, 0x00, 0x19, 0xD3, 0x02, 0x00, 0x00, 0x60") {
                uint8_t last_byte = strtol(value.substr(24, 2).c_str(), nullptr, 16);
                if (last_byte == 0x01) {
                  id(projector_power).publish_state(true);
                } else if (last_byte == 0x00 || last_byte == 0x02) {
                  id(projector_power).publish_state(false);
                }
              }

switch:
  - platform: template
    name: "HITACHI Projector"
    id: projector_power
    # assumed_state: True
    turn_on_action:
      - uart.write: [0xBE, 0xEF, 0x03, 0x06, 0x00, 0xBA, 0xD2, 0x01, 0x00, 0x00, 0x60, 0x01, 0x00]
    turn_off_action:
      - uart.write: [0xBE, 0xEF, 0x03, 0x06, 0x00, 0x2A, 0xD3, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00]

interval:
  - interval: 10s
    then:
      - uart.write:  [0xBE, 0xEF, 0x03, 0x06, 0x00, 0x19, 0xD3, 0x02, 0x00, 0x00, 0x60, 0x00, 0x00]

esp8266:
  board: d1_mini
  
web_server:
  port: 80

# Enable Home Assistant API
api:


ota:
  - platform: esphome


wifi:
  ssid: "XXXX"
  password: "XXXXXXXX"
  fast_connect: True
  manual_ip: 
    static_ip: 192.168.1.1
    gateway: 192.168.1.1
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Mediaroom-Bridge"
    password: "XXXXXXXX"

captive_portal:


回复

使用道具 举报

3

主题

53

帖子

536

积分

高级会员

Rank: 4

积分
536
金钱
483
HASS币
0
发表于 2024-10-24 16:55:59 | 显示全部楼层
whxciotw 发表于 2024-10-24 12:22
我是在esphome中validate验证通过,也是最新版。不加text sensor,你那里能validate通过吗?
另外,如果想 ...

谢谢斑竹,只怪自己太菜,折腾一下午,用chatgpt也没搞出个所以然,还是打开后开关就回到关闭状态,无法正确反馈电源状态。暂时就用个homekit的开关吧!
回复

使用道具 举报

22

主题

154

帖子

845

积分

高级会员

Rank: 4

积分
845
金钱
691
HASS币
0
发表于 2024-10-28 09:14:21 | 显示全部楼层
咨询一下 我的是benq的MW516
按照你的 固件 超了作业 编译也好了 搭建好线路 但是 无法控制 投影机 麻烦指导一下!
回复

使用道具 举报

22

主题

656

帖子

4572

积分

版主

Rank: 7Rank: 7Rank: 7

积分
4572
金钱
3901
HASS币
40
 楼主| 发表于 2024-10-28 10:48:09 | 显示全部楼层
tanbobo 发表于 2024-10-28 09:14
咨询一下 我的是benq的MW516
按照你的 固件 超了作业 编译也好了 搭建好线路 但是 无法控制 投影机 麻烦指 ...

日志?
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-23 04:50 , Processed in 0.120819 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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