玩转智能家居 篇三:Home Assistant如何准确的判断某人在家(离家)
前言
当在智能家居联动配置的时候,触发条件往往是家居联动的一个瓶颈,如果没有办法根据自身需求来触发自动化,那么后面自动化执行也失去了意义。 Home Aisstant中触发条件有很多,包括日期、时间、设备的状态、webhook、MQTT等等,但是在实际生活中,基于位置的自动化是用得比较多的,比如快到家了,自动洗澡水等
HomeAssistant自带方案
通过【我的家】圈出来的范围,可以作为触发条件。
可以在【配置】->【区域和地点】->【地点】中进行【我的家】配置
点击右侧的【小齿轮】按钮,可以对海拔、时区、单位等进行设置
也可以在【地点】的右下角点击【添加地点】按钮添加新的地点,添加的时候可以设置经纬度和半径
如果需要小范围更改地点的位置,可以按住圆圈不动,当鼠标变为【+】号的时候,拖动进行调整
这样有了多个地点信息,当创建自动化的时候,就可以设置以【地点】作为触发条件
触发条件可以设置为进入(离开)家的范围。下图的位置追踪设备就是你的手机,Home Assistant是根据手机位置信息来进行追踪判断的,所以手机上也要安装Home Assistant客户端,并且要保持Home Assistant始终允许位置信息。在IPhone上设置始终允许位置是没有任何问题的,但是在安卓上,各自的手机厂商一旦把后台任务停了,就没办法实时获取位置信息了
社区方案
接下来介绍的方法是我使用了几年来最稳定、最简单的判定是否在家(离家)的方案,这里说的在家(离家)就不是前面介绍的一个大概位置,而是根据手机是否连上你家的WIFI来判断的。
点开【HACS】->【集成】,如果没有这个菜单,请看我前面的文章
选择右下角的【浏览并下载存储库】按钮,安装【iPhone Device Tracker】集成
安装完毕会提示重启,这里先不进行重启,等配置完成再重启
按照集成的文档,追踪的手机必须要使用静态IP,也就是说每次手机连上WIFI,手机的IP地址是不变的。 每种路由器的配置方法是不同的,下面以openwrt为例,找到【网络】下的【DHCP/DNS】
【静态地址分配】下添加一个新的记录。先去手机查看连接WIFI的IP地址,iPhone点击【设置】->【无线局域网】中的WIFI,就可以看到MAC地址和IP地址了。再回到刚刚添加的新纪录,根据IP选择好设备,并设置一个主机名,把IPv4地址设置为一个特定的IP,把租期改为永久,这样就把手机的MAC地址和IP绑定起来了。后面当你手机连接路由器时,永远都是这个IP,也就是静态IP了
如果家里的智能设备比较多,设备的租期到了,路由器又回重新给设备分配不同的IP,不方便管理设备。我们可以在DHCP服务器选项中,把起始分配地址改为100,这样后面有新设备连接到WIFI的时候,就会从192.168.1.100开始分配(如果你家的路由器是192.168.1.1)
回到群晖的【File Station】,找到Home Assistant的configuration.yaml文件。如果你的Home Assistant不是使用Docker安装,直接找到configuration.yaml文件即可
修改配置文件,添加下面几行。hosts下面的ning可以随便改,192.168.2.14更改为刚刚在路由器上设置的静态IP地址,yaml文件要特别注意缩进,: 后面是有一个空格的,修改完毕后保存
device_tracker:
- platform: iphonedetect
consider_home: 30
scan_interval: 3
new_device_defaults:
track_new_devices: true
hosts:
ning: 192.168.2.14
回到Home Assistant中,点击【开发者工具】->【yaml配置】,点击下面的【检查配置】,出现如图所示的绿字,则表示上面修改的配置文件格式是正确的
重新启动Home Assistant。再进到【开发者工具】->【状态】中,全局搜索device_tracker找到device_tracker.ning,后面的ning就是前面配置文件中hosts下设置的名称
当手机断开WIFI的时候,状态就会变为no_home。这样只有回家时会才会自动连接WIFI,离开家时WIFI就会断开
注意
如果重启Home Assistant还没有找到你的设备,那么需要把手机WIFI断开再重新连接
安卓设备也可以使用同样的方法进行绑定。需要注意是,有的手机系统会在连接WIFI时,会随机生成MAC地址,这样就做不到静态IP绑定了,需要把随机MAC关闭
补充
来说说状态如何作为触发条件。在【自动化与场景】中添加新的自动化,选择【状态】为触发条件
实体选择刚刚的device_tracker.ning
在下拉选项中选择从在家变为离家。简单来说就是你的手机从家里连着WIFI,一直到出门WIFI断开的瞬间(集成判WIFI断开是有延时的,这里为了理解说成断开的瞬间)作为触发条件
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
打工仔王富贵
校验提示文案
电器狂友
校验提示文案
矿物质水
校验提示文案
做IT的农民
办公室有个电热水器的天猫精灵的app,就没这个功能,不安逸,
校验提示文案
最爱早睡的人
校验提示文案
WillY_C
校验提示文案
WillY_C
校验提示文案
最爱早睡的人
校验提示文案
做IT的农民
办公室有个电热水器的天猫精灵的app,就没这个功能,不安逸,
校验提示文案
电器狂友
校验提示文案
打工仔王富贵
校验提示文案
矿物质水
校验提示文案