[进阶教程]用device tracker检测路由器上设备状态,并加入HA和创建自动化

本帖最后由 27hh 于 2018-6-7 16:28 编辑

改编自: https://philhawthorne.com/using- ... of-your-smart-home/

-----------------------------------------------------------

在享受着智能家庭便利的同时,我们可能会有着这样的需求:我想统计家庭成员在家的时间分布?

我想绘制家里人数的变化曲线?

我想当我睡觉或出门时,手机断开WiFi后,关闭所有灯光?

也可能有这样的担忧:

如果我的网关坏掉了,导致遥控器和传感器停止工作怎么办?

如果我的智能插座离线了,造成不方便甚至事故怎么办?

这篇文章将为大家讲解利用 device tracker 实时监测联网设备的状态,并以此创建自动化的方法。

已知支持的设备:使用华硕/梅林/pavadan系统的路由器、小米路由器、特定型号的TP-LINK路由器。

-----------------------------------------------------------

目录

1.配置路由器和HA

2.使tracker显示在HA中

3.使tracker的显示更加直观

4.创建自动化

-----------------------------------------------------------

配置路由器和HA

1. 打开路由器的SSH(以梅林固件为例):

登录/注册后可看大图

QQ截图20170903151932.png (82.44 KB, 下载次数: 0)

下载附件

2017-9-3 15:20 上传

2. 使HA对接路由器:

在congfigure.yaml中加入:

device_tracker:

- platform: asuswrt

host: 路由器地址,默认192.168.1.1

interval_seconds: 15

consider_home: 180

username: 路由器用户名,小米路由器者请删除本行

password: 路由器密码

track_new_devices: yes

platform: asuswrt 小米路由器请修改为 xiaomi,其他无需修改

interval_seconds 是每隔多少秒扫描一次,数值过低会加重路由器负担;

consider_home 是当设备持续离线多少秒后,认为离家;

track_new_devices 是对于新接入路由器的设备,默认跟踪还是不跟踪,yes或no都可以,无非就是下一步是选择需要不跟踪的设备还是需要跟踪的设备。

注:Home Assistant 0.60以后的版本写法有变动,敬请参阅:https://bbs.hassbian.com/forum.php?mod=viewthread&tid=2131

保存后重启Home Assistant,在HA的安装目录下发现known_devices.yaml文件,这个文件记录了目前连接到路由器的所有设备。对于不想关心的设备,将track改为false。对于想关心的设备,track应为true。配置完后,把track_new_devices改为no,再次重启HA。

-----------------------------------------------------------

使tracker显示在HA中

现在,在History页面里,你可以找到设备了,这就说明tracker已经配置成功了。接下来我们来看看,如何使它们“光明正大”地显示在页面里。

登录/注册后可看大图

QQ截图20170903153710.png (30.5 KB, 下载次数: 0)

下载附件

2017-9-3 15:38 上传

为了使某个entity(一般称之为组件)显示出来,我们常常使用group的方法。为了方便管理,我们在package文件夹里创建一个yaml,名称随意(本例为track.yaml),然后编辑其内容:

group:

devices:

name: 连接的设备

entities:

- device_tracker.android301d707279d953a9

现在,你应该可以在首页找到“连接的设备”分组,并且里面显示了 android301d707279d953a9 这个设备的状态。

-----------------------------------------------------------

使tracker的显示更加直观

我们现在看到的设备,状态只能是home或not home。如何自定义状态信息呢?我们可以创建一个自定义传感器。

回到刚才的track.yaml,加入以下内容:

sensor:

- platform: template

sensors:

anzhuo:

value_template: "{% if states.device_tracker.android301d707279d953a9%}

{% if is_state('device_tracker.android301d707279d953a9', 'home') %}

在线

{% else %}

离线

{% endif %}

{% else %}

未知

{% endif %}"

friendly_name: '安卓手机'

这样是不是直观多了?

登录/注册后可看大图

QQ截图20170903160026.png (13.6 KB, 下载次数: 0)

下载附件

2017-9-3 16:00 上传

-----------------------------------------------------------

创建自动化

有了sensor,我们创建自动化就易如反掌了。设置触发器,platform为state,entity_id为刚才例中的sensor.anzhuo,"to"为"离线"(是的,中文)。然后是关灯还是语音播报还是推送通知,就任由你自己决定了。

2018.3.10 更新:L大给出了新的传感器配置方法,对于多设备自定义状态更加友好,推荐使用此方法! https://bbs.hassbian.com/thread-3000-1-1.html