在 Home Assistant 中创建行程时间传感器和出发提醒

如果您住在市区,需要定期接人,例如: 下班的家庭成员或放学的孩子,智能手机上的简单闹钟可能对您有用,但不是最佳解决方案。 在Home Assistant的帮助下,我们可以利用实时交通信息和家庭自动化使其更加智能。

让我们看看这里的一个用例:

  • 学校接送时间是每个工作日下午3:00
  • 考虑从家到学校的交通拥堵情况并相应调整
  • 准时向用户发送提醒,以便学校接送

由于当今交通拥堵加剧,从家到学校的行程时间在 13 至 22 分钟之间。 当然,您总是可以提早出发,并使用 22 分钟作为一个很可靠的预估,但是如果使用Home Assistant来提醒您,您可以节省一些宝贵的时间。

我的解决方案是使用实时交通流量估计自动提醒,并事先向手机发送推送通知。 步骤如下:

1. Waze Travel Time integration

第一, 我们需要在Home Assistant中安装waze travel time集成组件。 前往Home Assistant,并添加“waze Travel Time”集成组件,并填写出发地和目的地,以及友好名称。 注意地址可以是 GPS 坐标或街道地址。

为了方便快速查看出行时间,lovelace UI中还可以添加出行时间卡片,如下图。

waze travel time integration waze travel time
waze travel time integration waze travel time

2. 自定义模板传感器,用于计算剩余时间

这个想法是创建一个模板传感器,在您必须出发之前跟踪剩余时间。 例如,如果实时旅行时间为 20 分钟,学校接送时间为下午 3:00,则您必须在下午 2:40 离开。 这通常是假设您已经在车上并准备开车的理论估计。 因此创建了一个模板传感器,以适应更多的准备时间。 请注意,模板的价值也会随着时间的推移而减少,以便可以更轻松地在自动化中使用。

假设当前时间是下午 2 点 35 分,位智旅行时间是 15 分钟,以下模板传感器将评估为 5 分钟,这意味着您有 10 分钟时间到下午 3 点 40 分准备起飞并在下午 3 点 45 分开始驾驶。 5 分钟的准备时间可以调整为任何首选值。

1   - name: "Time remaining to go to pickup"
2     icon: "mdi:clock"
3     unit_of_measurement: min
4     state: >
5       {{ (14 - now().hour)*60 + (60- now().minute) + 5 - states('sensor.school_pickup_time') | int }}
6     # sensor.school_pickup_time is the waze integration sensor

3. 自动发送提醒

一旦我们具备了上述先决条件,设置自动化就非常容易了。 创建一个新的自动化并选择模板传感器作为实体触发器。 由于剩余时间是一个数值,您可以通过多种方式调整触发条件。 我的设置是检查铰孔时间在 0 到 3 分钟之间。 条件是周一至周五。 该操作是使用通用服务 notify.notify 和文本消息发送通知。 就我而言,我在手机上收到通知。 根据您的家庭助理功能,这可能是一条短信,也可能是一个电话。

automation setup notification
automation notification

结论

Home Assistant提供无限潜力,为日常生活带来便利。 这里提出了一个简单的解决方案,可以根据实时交通信息提醒出发时间。 未来的一些改进可能是:

  1. 与谷歌日历集成,因此自动化能够考虑到法定假期以及非上学日
  2. 制作自定义组件,以便添加新提醒更容易,配置开销更少。
comments powered by Disqus

翻译: