Raspberry Pi + Home Assistant 智能家居(二):万能摇控 Broadlink RM Pro 红外控制所有家电

在对原有系统进行改造的过程中,最难的部分就是对旧系统、设备的迁移。这些遗留下来的设备,虽然有些问题,但是更换的成本又有些高。而诸如使用遥控器的这些设备,他们在今天的最大问题就是如何用手机进行控制,而诸如 Broadlink RM Pro 这样的万能摇控器,正好能解决这样的问题。我们只需要学习家中的摇控的编码,就可以轻松地通过手机来控制应用,再由应用与设备通信,最后让设备去控制家电。

作为我智能家居项目的一个探索,我尝试在我的家中实验:购买新的、各式各样的设备、使用各种 WiFi 模块、接收各种摇控器的信号。在这一篇文章里,我将介绍如何使用 Home Assistant + Broadlink RM Pro 来控制家中的遥控设备,诸如空调、电视、小米盒子、空调扇等等。

步骤1:材料与准备

材料清单:

  • Raspberry Pi
  • Broadlink RM Pro

基本的步骤:

  1. 安装 Home Assistant
  2. 安装 Broadlink RM PRO 的应用『易控』(Android 手机)
  3. 使用『易控』软件对家中的设备进行连接(主要是为了获取红外编码)

如果你还没有安装 Home Assistant,可以参见我之前写的文章:《在 Raspberry Pi 2,3 上安装 Home Assistant 搭建智能家居基础环境》。

注意:由于 iOS 文件系统的问题,所以这里只能使用 Android 手机,相信在未来 Broadlink 的公司可能会开放这个接口。

如下是我所能控制的设备:

Broadlink 易控 截图

步骤2:获取 Broadlink 配置

现在,我们已经拥有了大部分所能摇控的设备的红外编码。而为了在 Home Assistant 中使用,我们还需要将这些编码,导入到 Home Assistant 中的配置文件 configuration.yml 文件中。步骤如下:

导出配置

  1. 打开 易控(英语:E-Control) 应用,点击菜单 -> 共享 -> 云分享 就会生成相应的配置文件
  2. 浏览手机上的 /broadlink/newremote/SharedData/ 目录,复制出 jsonSubIrjsonButtonjsonIrCode 三个文件

生成数据

  1. https://github.com/NightRang3r/Broadlink-e-control-db-dump 获取数据导出脚本
  2. 安装好 python 环境, 并安装 pip install simplejson
  3. 执行第一步代码中的脚本,python getBroadlinkSharedData.py
  4. 安装python-broadlink,地址 https://github.com/mjg59/python-broadlink.git

生成的目录如下所示:

.
├── getBroadlinkSharedData.py
├── jsonButton
├── jsonIrCode
├── jsonSubIr
├── requirements.txt
├── sendCode.py
├── 电视.txt
├── 小米盒子.txt
└── 美的空调扇.txt

在诸如 电视.txt 文件中,我们可以看到其相关的配置及编码:

Button Name:  | Button ID: 40 | Code: 26006800000128941312121411141312111411141114111411381337143712371238133812121437103a111413371139121312150f14161012121238131313121336103a14361337120005480001294912000c5e0001294913000c5d0001294a11000c5e0001294a12000d05

步骤3:测试

在获取到所有的编码到计算机上后,我们可以先在我们的电脑,对他们进行测试。只需要安装和上一步相同的软件,就可以了。以下代码来自上一步中的 sendCode.py 文件:

import broadlink
import time
import sys

device = broadlink.rm(host=("192.168.199.185",80), mac=bytearray.fromhex("b4430dc73af9"))

print "Connecting to Broadlink device...."
device.auth()
time.sleep(1)
print "Connected...."
time.sleep(1)
device.host

codeData = "e90a4200df0909160916091616091609091616091609091616091609160916091609091616090916091616090916091616090916091609161609091616091609160909161609"

device.send_data(codeData.decode('hex'))
print "Code Sent...."

只需要将代码中的 hostmac 改成你的 broadlink 相应的值,一个简单的查看方式是登录路由器查看。再将 codeData 改成你想要遥控的设备的编码。最后再这些编码集成到 Home Assistant 中即可。

步骤4:集成到 Home Assistant

接着,我们只需要在 configuration.yml 中编写相应的配置即可:

  1. 获取 Broadlink RM Pro IP 和 MAC 地址
  2. 贴入上一步中的红外编码

如下是我的配置代码示例:

switch:
  - platform: broadlink
    host: 192.168.199.185
    mac: 'B4:43:0D:C7:3A:F9'
    monitored_conditions:
      - temperature
    switches:
      tv:
        friendly_name: 'tv'
        command_on: '26006800000128941312121411141312111411141114111411381337143712371238133812121437103a111413371139121312150f14161012121238131313121336103a14361337120005480001294912000c5e0001294913000c5d0001294a11000c5e0001294a12000d05'
        command_off: '26006800000128941312121411141312111411141114111411381337143712371238133812121437103a111413371139121312150f14161012121238131313121336103a14361337120005480001294912000c5e0001294913000c5d0001294a11000c5e0001294a12000d05'
      air:
        friendly_name: 'air'
        command_on: '2600fe00290e2a0d0e292a0d2a0e0e290e290e290e290e290f282aea2a0d2a0e0e292a0d2a0d0e290f280f290e290e290e292aea2a0d2a0d0f282a0e2a0d0e290e290e290e
290f290e292aea290e2a0d0e292a0d2a0d0f290e2a0d290e290e290f282aea2a0d2a0e0e292a0d2a0d0e290e290f290e290e290e292aea2a0d2a0d0e292a0e290e0e290e290e290e290f280f292ae
92a0e2a0d0e292a0d2a0d0f290e2a0d290e290e290e292aea2a0d2a0e0e292a0d2a0d0e290e290e290f290e290e292aea2a0d2a0d0e292a0e290e0e290e290e290e290f280f292ae92a0e290e0e29
2a0d2b0c0f280f290e290e290e290e292be92b0c2b0c10282a0d2a0d0f000d0500000000000000000000'
        command_off: '2600fe00290e2a0d0e292a0d2a0e0e290e290e290e290e290f282aea2a0d2a0e0e292a0d2a0d0e290f280f290e290e290e292aea2a0d2a0d0f282a0e2a0d0e290e290e29
0e290f290e292aea290e2a0d0e292a0d2a0d0f290e2a0d290e290e290f282aea2a0d2a0e0e292a0d2a0d0e290e290f290e290e290e292aea2a0d2a0d0e292a0e290e0e290e290e290e290f280f292
ae92a0e2a0d0e292a0d2a0d0f290e2a0d290e290e290e292aea2a0d2a0e0e292a0d2a0d0e290e290e290f290e290e292aea2a0d2a0d0e292a0e290e0e290e290e290e290f280f292ae92a0e290e0e
292a0d2b0c0f280f290e290e290e290e292be92b0c2b0c10282a0d2a0d0f000d0500000000000000000000'

这里的 command_oncommand_off 实际是一样的,就是遥控设备的开关。

步骤5:Enjoy

让我们愉快地享受智能的生活吧~~~。

尚未评分
您的评分将帮助我们做出更好的玩法

观光\评论区

Copyright © 2017 玩点什么. All Rights Reserved.