HA文档 目录

  1. 主页
  2. HA文档
  3. HA文档
  4. 开发ABC
  5. 第三课:注册一个服务

第三课:注册一个服务

这篇文章是系列文章的第3/11篇:

【摘要】
注册一个新的服务,每次服务调用时,切换实体的状态值。同时为程序增加日志。

【程序】

【操作】

  1. 修改程序,重新启动hass。
  2. 在前端的开发者工具栏中,手工调用服务hachina.change_state。在前端观察实体设备的改变,以及hass程序的信息输出。

【知识点小结】

  1. 在HomeAssistant中注册一个新的服务,用hass.services.register(DOMAIN, service_name, func)这个函数。其中第三个参数代表,当服务被调用时,哪个函数被执行。 参考阅读:https://www.hachina.io/docs/471.html
  2. 服务函数的参数只有一个call,服务被调用时传入的数据会通过这个参数传入。在这里我们没有实际使用这个参数。
  3. 在python中一般使用logging库记录日志。日志可以以info、debug、warning、error、critical几个级别进行记录。在这里,当服务被调用时,我们记录了一条info级别的日志。
  4. 让我们回过头,对setup函数中传入的第一个参数hass有一个更深入的了解:
    在HomeAssistant开发过程中,会在很多地方看到hass这个对象。它代表当前运行的HomeAssistant,可以通过hass操作HomeAssistant的各个部分。

    对象 描述
    hass 代表当前运行的HomeAssistant。这个对象下有start(),stop(),is_running()等方法可以被调用。
    hass.config HomeAssistant的配置内容。
    hass.states HomeAssistant的状态机,状态相关的操作通过这个对象进行(第一课、第二课)。
    hass.bus HomeAssistant的事件总线,事件的触发与监听通过这个对象进行。
    hass.services HomeAssistant的服务,服务的注册和调用通过这个对象进行(第三课)。

    关于hass的更详细信息,可以在https://dev-docs.home-assistant.io/en/master/api/core.html中查看。

【结果展现】


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

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

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