Home Assistant系列 — 设备定位与追踪

HA 做为智能家居系统,也可以针对设备进行定位与追踪,并且可以通过ping 获得某个IP设备的在线与离线状态。

HA中 的定位方法分为两大类,一类基于通讯网络,一类基于GPS。下给出常见的位置追踪方法:


Home Assistant系列 -- 设备定位与追踪


前面三种都是基于通讯网络探测某个设备是否存在的方法。

  1. 第一种是登录到路由器上,通过路由器提供的信息确定设备是否在本局域网中。

  2. 第二种是直接扫描设备的IP地址,我们一般都是在树莓派上运行,可以直接在树莓派上进行扫描,从而获得设备是在线还是离线的信息。

  3. 第三种是通过蓝牙扫描,获得蓝牙设备是否在树莓派附近的信息,一旦发现设备存在,我们就可以认为设备的经纬度信息与HA是一致的,就可以定位设备。


后面三种都是基于GPS定位,能够准确定位设备的经纬度信息。


在HA中所有需要探测位置的设备,其信息都回保存在配置文件known_devices.yaml中,这个文件和主配置文件configuration.yaml 在相同目录,如果你没有,请自行创建,新建一个文本然后修改名称和后缀即可,先设置一个ping 组件,用于探测我正在运行的Windows 电脑是否在线,Windows电脑要被ping通,首先得打开它的防火墙设置,设置如下:

Home Assistant系列 -- 设备定位与追踪

找到这两个入站规则,然后点击右边的 启用规则。接下来我们编辑HA的configuration.yaml配置文件,在其中空白处添加如下配置:

device_tracker:

 - platform: ping

  hosts:

    desktop: xxx.xxx.x.xxx

上面的XXX 为你电脑的ip 地址,不知道怎么查IP的,可以百度IP,就会显示你当前电脑的ip,或者win+R  输入cmd 回车,在弹出的窗口中输入 ipconfig 就会显示当前电脑的IP。设置完HA配置后,启动HA系统,在界面中就会显示desktop 这个设备 同时显示其状态为 home。

Home Assistant系列 -- 设备定位与追踪

再打开 known_devices.yaml 这个文件,我们就可以看到这个设备的信息自动被添加到文件中。

Home Assistant系列 -- 设备定位与追踪

下面对这个配置进行修改,首先我们编辑它的name 属性,此处我们可以使用中文。


desktop:

 hide_if_away: false

 icon:

mac:

name: 我的电脑

picture:

track: true

consider_home: 10

这里增加了一项属性consider_home 此属性表示多少秒后不能ping通,就修改设备的状态为not home,保存配置文件,重启HA系统,就可以看到界面上显示的名称发送了改变。

Home Assistant系列 -- 设备定位与追踪

我们可以通过Windows防火墙规则,来模拟设备的在线和离线,通过之前的 入站规则,点击右边的 启用规则 / 禁用规则  这时观察HA 界面 我的电脑 状态的变化。

如果要删除一个被位置追踪的设备,需要删除HA的configuration.yaml配置文件中之前的配置,还需要将 known_devices.yaml 文件中 对应设备的 track 设置为 no 或者整个删除 即可。

注意:演示的配置在实际使用中一定要注意缩进,因为手机显示的原因可能没有对齐。


关注一下,

👇👇👇

Home Assistant系列 -- 设备定位与追踪




发表评论