翻译自 https://www.home-assistant.io/integrations/xiaomi_aqara/
小米网关添加到home assistant的方法的一些翻译。如果测试过程中发现有些出入的,还会进行一定的修改。
小米网关
home assistant可以添加小米网关,以及配套的设备进入集成到系统(integration)中。
但是需要注意,小米网关有两个版本,v1和v2。v1可以直接用到home assistant中。但是v2可能没有那么直接。需要打开本地API的选项。
支持的设备
(这里只翻译我认得的或者我可能用得到的)
- Aqara的设备基本都支持,例如空气净化器,墙壁开关,开关,门锁啥的
- 小米智能开关
- 智能魔方?
- 煤气泄漏检测器
- 网关(包括等,亮度传感器,报警器)
- 移动传感器
- 智能窗帘
- 智能插座
- 延误传感器
- 温度湿度传感器
- 振动传感器
- 漏水传感器
不支持的设备
- 小米一代网关,因为米家不支持打开开发者模式
- 网关的收音机(老年人模式呢!!)
- 网关的按钮(你也用不着啊)
- 小米空气净化器(尴尬)
设置小米网关
这里指向了一个domoticz的教程,我不知道为啥我打不开,但是具体的在米家app打开开发者模式的说明如下:
这里实际上是在米家的手机app上进行操作,方法是选中网关后,点击右上角的点点点,选择关于,狂点最下面的版本号,进入开发者模式,然后就可以选择局域网通讯协议,打开该协议即可。注意,这里网关会提供一个秘钥,这个是重要的参数。
然后编辑home assistant的configuration.yaml文件(肯定有人问这个文件在哪里,这个文件在~/.homeassistant目录下,因为是个隐藏文件夹所以藏得特别好!)
单个网关
# 你可以不写MAC地址,如果你只有一个网关
xiaomi_aqara:
discovery_retry: 5
gateways:
- key: xxxxxxxxxxxxxxxx
(译者注,看到这里的key了么,这就是米家app里面那个秘钥,抄下来)
多个网关
# 12位的MAC地址可以从网关上抄的来
# 译者注,当然如果你是比较会折腾路由器的,还能从路由器的设备列表里找
xiaomi_aqara:
gateways:
- mac: xxxxxxxxxxxx
key: xxxxxxxxxxxxxxxx
- mac: xxxxxxxxxxxx
key: xxxxxxxxxxxxxxxx
在网段内搜索网关
xiaomi_aqara:
interface: '192.168.0.1'
gateways:
- mac: xxxxxxxxxxxx
key: xxxxxxxxxxxxxxxx
配置参数说明
gateways
(map)(必要)
列出所有需要配置的网关
| mac
| (字符串)(可选)
| 网关的的MAC地址,不需要带:。如果只有一个网关,就是可选
|
| key
| (字符串)(可选)
| 网关的秘钥。
|
| host
| (字符串)(可选)
| 网关的ip地址、如果是使用多播寻找网关的方式,这个参数是没用的。
|
| disable
| (bool值)(可选)
| 使网关失效,只有当你不想让网关集成到系统中时,才有用,默认值是false
discovery_retry
(整数)(可选)
Home Assistant重新连接网关的次数。默认值,3
interface
(字符串)(可选)
网络的接口。(应该是搜索小米网关的网络断的大网关)
译者想折腾的一些内容
还没测试的一些想法。
如果是知道网关的mac地址,固定的ip地址,而且我有多个网关,那应该可以这么写配置。
xiaomi_aqara:
gateways:
- mac: xxxxxxxxxxxx
key: xxxxxxxxxxxxxxxx
host: xxx.xxx.xxx.xxx
- mac: xxxxxxxxxxxx
key: xxxxxxxxxxxxxxxx
host: xxx.xxx.xxx.xxx
而且如果根据官方文档对一些传感器的配置方式,还可以给每个网关起个名字?
xiaomi_aqara bedroom:
gateways:
- mac: xxxxxxxxxxxx
key: xxxxxxxxxxxxxxxx
host: xxx.xxx.xxx.xxx
xiaomi_aqara kitchen:
gateways:
- mac: xxxxxxxxxxxx
key: xxxxxxxxxxxxxxxx
host: xxx.xxx.xxx.xxx
服务
小米网关单独可以提供如下的服务:
服务 xiaomi_aqara.play_ringtone
播放一个特定的铃声,固件版本至少在1.4.1_145以上。下面是一个例子
服务属性 | 是否可选 | 描述 |
---|---|---|
gw_mac | 必选 | 小米网关的MAC地址 |
ringtone_id | 必选 | 一种铃声的id |
ringtone_vol | 可选 | 声音的音量 |
可选的铃声id有:
报警
- 0-警车声1
- 1-警车声2
- 2-事故
- 3-倒计时
- 4-闹鬼?
- 5-狙击枪
- 6-战斗
- 7-空袭
- 8-旺财叫
门铃
- 10-门铃
- 11-窍门声
- 12-笑声
- 13-闹铃
闹钟
- 大家自己去试吧。我也不知道怎么翻译这些歌
- 编号从20到29都是默认的闹钟声音
- 自定义铃声(通过米家上传,编号从10001开始)
服务 xiaomi_aqara.stop_ringtone
停止播放铃声,立刻,马上!!
服务属性 | 是否可选 | 描述 |
---|---|---|
gw_mac | 必选 | 小米网关的MAC地址 |
服务 xiaomi_aqara.add_device
允许网关添加设备权限。新设备在按了配对按钮后,可以添加到这个网关上。我个人建议还是用米家app干这个。
服务属性 | 是否可选 | 描述 |
---|---|---|
gw_mac | 必选 | 小米网关的MAC地址 |
服务 xiaomi_aqara.remove_device
删除一个特定的设备。如果该设备需要和另一个网关配对。
还是建议用米家app做这个。
服务属性 | 是否可选 | 描述 |
---|---|---|
gw_mac | 必选 | 小米网关的MAC地址 |
device_id | 必选 | 需要删除的硬件地址 |
例子
长按智能按钮
这个例子可以通过长按智能按钮,播放一段狗叫的声音。并且如果单击按钮一次,停止播放。只针对第一代智能按钮有效。
当然如果音效播放完了自动也就停了
- alias: Let a dog bark on long press
trigger:
platform: event
event_type: xiaomi_aqara.click
event_data:
entity_id: binary_sensor.switch_158d000xxxxxc2
click_type: long_click_press
action:
service: xiaomi_aqara.play_ringtone
data:
gw_mac: xxxxxxxxxxxx
ringtone_id: 8
ringtone_vol: 8
- alias: Stop barking immediately on single click
trigger:
platform: event
event_type: xiaomi_aqara.click
event_data:
entity_id: binary_sensor.switch_158d000xxxxxc2
click_type: single
action:
service: xiaomi_aqara.stop_ringtone
data:
gw_mac: xxxxxxxxxxxx
双击智能按钮
如果双击了按钮,开关客厅的灯。
- alias: Double Click to toggle living room lamp
trigger:
platform: event
event_type: xiaomi_aqara.click
event_data:
entity_id: binary_sensor.switch_158d000xxxxxc2
click_type: double
action:
service: light.toggle
data:
entity_id: light.living_room_lamp
故障排查
这里就暂时不翻译了,如果译者实际碰到这些问题,在做着重解释。
后记和一些废话
因为准备试一下添加小米网关,并且把所有的自动化控制做到本地。毕竟谁也不能保证家里不断网有一次电信神奇的断网导致家里的自动化控制全部失效,而且很神奇的是米家的一些智能化的控制,哪怕是同一个网关的多个操作,也要搞到云端,这直接导致一旦没网基本回到原始时代。
所以痛定思痛,开始折腾自己的智能化替代方案,原来试了domoticz,但是不好用,而且python的脚本还执行不了。然后就发现了基于python的home assistant,作为python忠实的信徒,决定基于raspberry搞一发。
关于添加网关暂时做了详细的翻译,自动化和智能因为原文例子本身很简单,这里就不做详细解释了。(其实是译者自己也没玩到这一步,如果有新的心得体会再做详细的解释或者翻译。估计会针对这些自动化配置写个详细的说明)
如果测试下来跟原文有出入的地方,我会直接修改。