HA文档 目录

  1. 主页
  2. HA文档
  3. HA文档
  4. 核心机制
  5. 服务(service)

服务(service)

这篇文章是系列文章的第4/8篇:

服务表示组件对外公布的一个功能,比如“switch.turn_on”表示打开开关这个功能,当被调用时,组件就完成对应的打开开关的动作。组件可以在HomeAssistant中注册一个服务,可以调用任意的已注册的服务。

服务被注册在某一个域(domain)中,以服务名(字符串)标识。服务被调用时,一般会传入数据,传入的数据为JSON格式的字典类型数据,例如,调用“switch”域中注册的服务“turn_off”,可以传入以下参数来告诉这个服务要关闭是哪个开关:
{"entity_id":"switch.living_room"}

在HomeAssistant的WEB前端的开发者工具栏中,点击对应图标(下图中红色框部分),可以看到在系统各个域中注册的服务。在这个界面中可以输入JSON格式的服务参数,手动调用服务。

服务在内核中的实现是基于事件机制的。在注册、删除、调用、执行服务时,会在内核中自动触发service_registered、service_removed、call_service、service_executed等事件,内核程序也是通过对call_service事件的监听来启动具体服务程序的运行。

遇到问题了?快来学习免费在线课程吧,博学老司机在线答疑,找到更多志同道合的HA玩家一起进步

此文不允许转载,如需转载请与BD@hachina.io联系。

这篇文章对您有用吗? 1 0