找回密码
 立即注册
搜索
查看: 177584|回复: 463

[智能音箱] 基于红外的小爱同学接入HomeAssistant教程

 火... [复制链接]
27hh 

32

主题

954

回帖

4233

积分

论坛元老

积分
4233
金钱
3207
HASS币
110

教程狂人论坛风云人物

发表于 2017-11-18 16:04:39 | 显示全部楼层 |阅读模式
本帖最后由 27hh 于 2018-11-25 14:52 编辑

红外遥控,作为十分古老的远程控制技术,至今已经十分成熟。其在遥控领域所占据的地位,是射频和蓝牙无法撼动的。我们是否可以用红外遥控器来控制智能设备呢?当然可以!本文为大家讲解如何用红外来控制HA中的设备,并借此将小爱同学接入HA。


(通俗地讲,就是先让HomeAssistant变成像电视机一样能被红外遥控器控制的设备,然后让小爱同学充当这台“电视机”的遥控器,实现对HomeAssistant设备的控制。)

测试设备:Orange Pi Zero + 扩展板(注:安装官方外壳后不影响红外接收),小米万能遥控器

目录
一、准备红外接收器
二、设置HomeAssistant
三、设置小爱同学

(说明:如果执行下面的命令,出现错误,可能是系统的问题,把错误代码贴到Google,一般能获得解决方案。)
-----------------------------------------------------------------

一、准备红外接收器
本章的目的是使硬件能够接收红外信号。
1. 测试红外接收器

加载红外模块
modprobe sunxi_cir

开始接收信号
mode2 -d /dev/lirc0

现在找个遥控器,对着树莓派按下任意键。若窗口中出现类似:
space 123456
pulse 7890

等一串字符,说明接收器工作正常。

2. 设置自动启动
编辑 /etc/lirc/hardware.conf 文件,设置 START_LIRCD="true" 。这样,红外模块会在开机时自动加载。

3. 添加遥控器
首先检查 http://lirc.sourceforge.net/remotes/ ,是否有你的遥控器代码。如果有的话,直接把页面的内容粘贴至 /etc/lirc/lircd.conf 即可。如果没有,则需要自己学习遥控码。很幸运,我找到了我的遥控器,因此我们直接来使用它。如果没有找到,请看2楼,给出了学码的方法。在继续之前,我们记下
begin remote  name  SONY.RM-S29E

中name后的字段(本例为SONY.RM-S29E),后面将用到。

4. 重启lirc
/etc/init.d/lirc restart

5. 设置响应事件
创建 ~/.lircrc 文件,以设置系统对红外码的响应。文件内容格式如下:
begin
    remote = SONY.RM-S29E
    button = KEY_1
    prog   = home-assistant
    config = KEY_1
end
begin
    remote = SONY.RM-S29E
    button = KEY_2
    prog   = home-assistant
    config = KEY_2
end
begin
    remote = SONY.RM-S29E
    button = KEY_3
    prog   = home-assistant
    config = KEY_3
end

其中SONY.RM-S29E是遥控器型号,对应 lircd.conf 中的name字段,彩色的文字是按键名称。按键名称应该能够直接地反应具体的遥控器按键。只需配置想要使用的按键即可。
手动输入显然很繁琐,因此提供一个我写的小程序,自动生成代码以简化这一过程: 写配置文件.exe (130.45 KB, 下载次数: 90)

二、HomeAssistant设置
本章的目的是使 HomeAssistant 能解析收到的红外信号。
1. 输入如下命令,确定按键可以被正常识别,且不会被重复识别:
ircat home-assistant

然后按键进行测试。

2. 编辑 HomeAssistant 的 configuration.yaml 文件,顶头加入一行:
lirc:

3. 设置自动化
按如下配置:
automation:
  - alias: 按遥控0键关灯
    trigger:
      platform: event
      event_type: ir_command_received
      event_data:
        button_name: KEY_0
    action:
      service: light.turn_off
      entity_id: light.lamp0

即可。现在,拿着遥控器对香橙派按一下,灯是不是关闭了?(香橙派的红外接收能力非常强,小房间几乎可以实现全向遥控。)

------------------------------------------------------------------------------------
至此,我们已经实现了用红外遥控器来控制HomeAssistant里的设备了。
接下来,为大家讲解通过让小爱同学控制发射红外来控制这些设备!

评分

参与人数 4金钱 +80 收起 理由
lidicn + 20 在下对你的景仰犹如滔滔长江之水,连绵不绝.
Milo + 20 在下对你的景仰犹如滔滔长江之水,连绵不绝.
antsunzj + 20 支持折腾!支持创新!
+ 20 在下对你的景仰犹如滔滔长江之水,连绵不绝.

查看全部评分

回复

使用道具 举报

0

主题

16

回帖

62

积分

注册会员

积分
62
金钱
46
HASS币
0
发表于 2023-10-12 09:51:52 | 显示全部楼层
感谢分享,学习下
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-6-29 21:13 , Processed in 0.074053 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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