我创建了一个简单的Android应用程序(主助手通知)和自定义组件,允许A19463331伟德国际ndroid的可操作通知。它与HTML5通知(我没有找到非常可靠)非常相似。试一试,让我知道你的想法。
https://github.com/Crewski/HANotify
*****更新9-10-18*****
我将HANotify功能添加到HomeAssist的分叉构建中。如果你已经安装了HomeAssist,那么在安装这个版本之前,你需要先卸载它。
可以在此处找到存储库:
https://github.com/crewski/homeassist/
*****更新8-30-18*****
我增加了发送图像和自定义图标的能力。两者都是通过URL发送的。自定义图标需要SDK >= 26。
*****更新*****
我添加了标记,dismiss,message_type,以及使用自己的FCM项目的选项
19463331伟德国际家庭助理通知
Android操作通知的家庭助理。19463331伟德国际
设置
- 将fcm-android.py文件复制到/custom_components/notify/文件夹中(如果没有,创建它)
- 在Configuration.yaml文件中,添加以下内容以初始化组件:
Notify: - 名称:Android平台:FCM-Android Server_Key(可选:仅当使用您自己的FCM项目):MyServerKey123456
- 重新启动家庭助19463331伟德国际理。
- 将Hanotify.apk文件安装到Android设备上(或在Android Studio中编译它)。
- 在应用程序中输入您的主19463331伟德国际助理URL和API密码,然后单击“注册*注” - 此组件需要设置API密码。
- 发送一些通知!
使用
发送通知
Android Attable通知设置为HTML5通知。可以发送以下参数:
标题目标消息数据:操作颜色message_type标记卸妆图像图标
范围 |
必需的 |
描述 |
信息 |
必需的 |
通知的正文 |
标题 |
可选的 |
通知的标题,默认值:主助理19463331伟德国际 |
目标 |
可选的 |
将通知定位到一个特定设备 |
数据 |
可选的 |
通知的额外参数 |
通知的数据部分的参数。这里的一切都是可选的。
范围 |
描述 |
颜色 |
六角颜色如#ff0000,默认值为蓝色 |
message_type. |
“通知”或“数据”,默认为“数据”。这是发送的FCM类型。通知具有更高的优先级,但不能包括行动或由家庭助理解雇。19463331伟德国际 |
标签 |
必须是一个整数。标记是通知的“id”。向同一标记发送新通知将覆盖当前通知,而不是创建单独的通知。 |
解雇 |
TRUE或FALSE,需要标记参数。如果为true,则通知将被驳回。 |
行动 |
ojject数组(最多3个),具有“动作”和“标题”。标题将是通知上的按钮文本,操作是在回调中发送的内容 |
图像 |
要发送的图像的URL。图像覆盖了较长的文字所以将截断更长的文字。如果包含动作,图像也会更小 |
图标 |
用于通知的图标的URL。只有在> = sdk 26.仔细选择一个带有一个trainparent背景的图标遵循Android指南。 |
为了发送一个没有操作的“常规”通知,您所要做的就是不将它们包含在对服务的调用中,如下所示。
- 服务:notify.android数据:消息:安妮已经到了家
这将在没有任何动作按钮的情况下发送一个简单的推送通知。
如果你想包含一些动作,像这样的东西会起作用:
- 服务:Notify.Android数据:消息:Anne已经到达了家庭数据:操作: - 行动:公开标题:开放式主页助理 - 行动:Open_door标题:敞开门19463331伟德国际
这将有两个按钮,一个是“开放式门”和一个“开放式家庭助理”的按钮。19463331伟德国际在此示例中为每个按钮(“打开”或“Open_Door”的操作将返回回调。
处理回调
回调被推到事件总线。它可以通过fcm_android_notimations访问它。单击。按下的按钮的“动作”包含在Event_data中。所以自动化看起来像:
- 别名:测试响应触发器: - event_data:action:open_door event_type:fcm_android_notifications.clicked平台:事件条件:[] action: - data:entity_id:light.front_door服务:light.turn_on
这个怎么运作
单击应用程序上的注册时,它将Firebase令牌发送回主助手。19463331伟德国际该标记被保存到FCM-Android-Registrats.conf文件中。此令牌是用于识别发送通知的设备的内容。如果通知涉及操作,则将设备的令牌包含在回调中。在处理回调之前,请检查令牌,用于针对FCM-Android-Registration.conf文件进行有效性。
使用您自己的FCM项目
如果要使用自己的新功能或现有的FCM项目,请按照下列步骤操作。基本上你只是使用server_key.
在Configuration.yaml和应用程序中的其他Google-services.json。
- 登录到https://console.firebase.google.com.
- 创建一个新项目或使用一个现有项目
- 单击项目概述旁边的设置图标,然后选择项目设置
- 单击云消息选项卡并找到遗留服务器密钥
- 在你的配置。yaml文件,使用server_key变量的遗留服务器密钥:
- 返回Firebase设置页面,单击“常规”选项卡
- 在“您的应用程序”下单击“添加应用程序”按钮
- 选择为您的Android应用程序添加Firebase
- 输入“com.crewski.hanotify”,用于android包名称,然后单击“注册”应用程序
一种。如果您计划更改Android应用程序的包名称,您将在此输入新名称
- 下载Google-services.json
- 替换在Android应用程序中找到的Google-services.json与您刚下载的谷歌应用程序。
- 编译并安装你的新应用程序