IOS平台一大好处是通知推送,HomeAssistant中已经很完善了,简单地配置之后就可以用。
注意:本文内容已过时,仅做参考!
添加组件
配置文件里添加
ios:
重启加载IOS组件,在App中设置-通知设置-更新推送设置,可以看到IOS组件和通知平台都打勾了。
在开发者工具-服务里面也会有相应项,就可以使用了。
简单通知
通知一般在自动化里面调用通知服务,比如一个最简单的HomeAssistant启动通知。
可以添加标题副标题,这里的 unicode字串 是显示的表情。
- alias: hass_start_notify
trigger:
- event: start
platform: homeassistant
condition: []
action:
- service: notify.ios_taosky8p
data:
message: "{{ '/uD83D/uDE09' }}Home Assistant刚刚启动了。"
效果如下:
带操作按钮的通知
3D Touch通知之后会有选项的那种,比如收到树莓派温度过高的通知可以直接关闭它。
这个其实是两个自动化完成的,一个是通知的自动化,一个是收到通知按钮之后作出反应的自动化。
首先需要在ios.push里面添加一个按钮模板,也就是通知上的按钮的样子。具体参数的含义见 官方文档 ,这个对大小写很敏感,如出错可能是大小写问题。
其次是正常的一个自动化,相比较上面的简单通知,里面多了个
data
指定按钮的模板。
最后是触发按钮的自动化,用到
ios.notification_action_fired
这个事件,然后在action里面真正完成我们的关机的操作。
shell_command:
shutdown_pi: sudo shutdown -h now
script:
shutdown_pi:
alias: 关闭树莓派
sequence:
- service: shell_command.shutdown_pi
ios:
push:
categories:
- name: Piwarning
identifier: 'piwarning'
actions:
- identifier: 'SHUTDOWN_PI'
title: '立即关闭PI?'
activationMode: 'background'
authenticationRequired: yes
destructive: yes
behavior: 'default'
automation:
- alias: pi_temp_warning
trigger:
platform: numeric_state
entity_id: sensor.pi_temp
above: 50
condition: []
action:
- service: notify.ios_taosky8p
data:
message: "{{ '/uD83D/uDE31' }} 树莓派温度过高(超过50度)!"
data:
push:
category: "piwarning"
- alias: ios_action_shutdown_pi
trigger:
platform: event
event_type: ios.notification_action_fired
event_data:
actionName: SHUTDOWN_PI
action:
- service: script.turn_on
entity_id: script.shutdown_pi
参考
https://www.home-assistant.io/docs/ecosystem/ios/notifications/basic/
https://www.home-assistant.io/docs/ecosystem/ios/notifications/actions/
https://bbs.hassbian.com/thread-1430-1-1.html
https://bbs.hassbian.com/thread-3366-1-1.html