homeassistant主动推送信息
homeassistant推送信息
问题背景:
前端刚启动时,会向云端发送获取硬件信息的请求,然后云端再调⽤homeassistant的rest api请求这些信息,再把信息发回前端。
但是这样有个问题,前端收到信息后,这些信息不会再发⽣变化,⽐如温度计的信息,可能前端获取到的温度是25度,但是过了1个⼩时,温度变成了27度,那么前端如果不重新启动就不能获取这个信息。
所以希望homeassistant内部或者其控制的硬件发⽣变化后,能够主动向云端发送这个变化信息。
解决⽅法:
幸运的是,homeassistant本⾝就提供了这个接⼝,它有⼀个notify组件能实现这个功能。
notify组件位置在(这是在我电脑上的位置)
E:\Anaconda3\Lib\site-packages\homeassistant\components\notify
期中考试如何复习
在notify⽂件夹下增加⼀个⽂件sampleNotify.py
import requests
import logging
import voluptuous as vol
ify import (ATTR_TARGET, ATTR_TITLE, PLATFORM_SCHEMA, BaNotificationService) import fig_validation as cv
_LOGGER = Logger(__name__)
CONF_FROM_SOURCE = "from_source"
PLATFORM_SCHEMA = d({
vol.Required(CONF_FROM_SOURCE): cv.string,
})
dangerous的反义词def get_rvice(hass, config, discovery_info=None):
return SmartHomeNotificationService(config[CONF_FROM_SOURCE])
发型培训class SmartHomeNotificationService(BaNotificationService):
def__init__(lf, from_source):
lf.from_source = from_source
def nd_message(lf, message="", **kwargs):
receivers = (ATTR_TARGET)
title = (ATTR_TITLE)
try:
for receiver in receivers:
_LOGGER.info("已发送")
汉译英翻译器
data = {
一寸光阴一寸金英文
"source": lf.from_source,
"receiver": receiver,
"content": message,
"title": title
}
_LOGGER.info(data)
requests.post(
// 注意这⾥需要修改成你服务器的api
"1.2.3.4:8989/a/b/notify",
data=data
)
except ConnectionError:
_("连接失败")
广州留学机构使⽤⽅式:
1.在configuration.yaml⽂件中加⼊sampleNotify
notify:
- name: sample
platform: sampleNotify
from_source: '发送⽅⾝份标识'
注:sampleNotify是我们刚才在notify⽂件加下加⼊的sampleNotify.py的名字
2.在automations.yaml中加⼊
- alias: notify publish
trigger:
platform: homeassistant
英语 培训 机构event: start
影视特效
action:
rvice: _notify
data:
title: '题⽬'
百万瓦特message: 'homeassistant start'
target: '接收⽅⾝份标识'
chinasmack
这样在homeassistant启动后,云端就会收到homeassistant start这个信息