HA文档 目录

  1. 主页
  2. HA文档
  3. HA文档
  4. 开发ABC
  5. 第六课:在sensor下创建一个新platform

第六课:在sensor下创建一个新platform

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

【摘要】
在sensor这个组件下,构建一个hachina的平台。平台生成一个温度传感器,温度值为一个随机数。

【程序】

【操作】

  1. 修改配置文件,在sensor域下增加hachina平台。
  2. 将hachina.py保存于“HomeAssistant配置目录/custom_components/sensor/hachina.py”。
  3. 重新启动hass。
  4. 观察前端显示的实体状态。

【知识点小结】

  1. 什么是平台?参考阅读:https://www.hachina.io/docs/474.html
  2. 在这个程序中,我们使用了两个以前没有用过的库——random用于产生随机数;库homeassistant.const中定义了一些常量,可以在程序中引入使用。
  3. 平台程序的入口通常是setup_platform(在某些组件平台下,也可能是其它)。
  4. 在setup_platform函数中,通常会构建一些Entity(实体),加入到系统设备列表中(add_devices)。
  5. 在程序中定义了一个继承自Entity的对象HAChinaTemperatureSensor用于实现我们的设备。因为这是一个sensor下的平台,所以对于这个类中的一些方法,会自动按照sensor的逻辑进行调用
  6. update函数缺省每30秒会被系统调用一次(可通过配置文件改变),用于实体的数据更新。此处每次更新时,将状态值设为一个随机数。
  7. 一般平台的编程逻辑是:实现一个类(此处为HAChinaTemperatureSensor),按照基础组件(此处为sensor)内的定义,将这个类的逻辑完善;将这个类的实例加入到设备列表中——仅此而已
  8. 在HomeAssistant0.63版本中,实现了entity registry,附带了一个变化:程序中的friendly_name属性会被registry_name或name覆盖。解决方案:可以用unique_id函数替代name函数,这时候friendly_name会起作用,同时在配置目录下会生成entity_registry.yaml文件;或者定义registry_name。我们选择了后者。

【结果展现】

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

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

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