跳转至

平台(platform)

理解平台概念

平台:当集成接入的设备,属于某种通用类型时,可以通过创建平台简化其开发

常见的通用类型:

  • alarm_control_panel:报警控制面板
  • air_quality:空气净化器
  • binary_sensor:开关型传感器
  • climate:空调
  • cover:窗帘
  • device_tracker:位置跟踪
  • fan:风扇
  • lock:智能锁
  • sensor:传感器
  • light:智能灯
  • switch:智能开关
  • camera:摄像头
  • media_player:媒体播放器
  • image_processing:图像处理
  • remote:无线遥控设备
  • weather:天气状况
  • ……

绝大多数的设备接入,都可以通过在集成中创建平台来简化开发

平台程序

配置与加载

  1. 在类型域中配置(configuration.yaml

    样例程序

    sensor:
      - platform: example_load_platform1
        name: abc
        value: 23.33
    
    • 流程入口:(async_)setup_platform

      • 配置被加载时,自动调用此函数
      • 配置内容通过config参数传入
      • 在此函数中通过传入的(async_)add_entities函数加载设备
  2. 在集成域中配置(configuration.yaml

    样例程序

    example_load_platform2:
        sensor:
            name: abc
            value: 25.55
    
    • 流程入口:(async_)setup

      • 在此函数中调用hass.helpers.discovery.(async_)load_platform函数
    • (async_)setup_platform

      • 调用hass.helpers.discovery.(async_)load_platform函数后,自动启动此函数
      • 配置内容可通过discovery_info参数传入
      • 在此函数中,通过传入的(async_)add_entities函数加载设备
  3. 前端配置

    样例程序

    • 流程入口:async_setup_entry

      • 在此函数中调用hass.config_entries.async_forward_entry_setup函数
    • async_setup_entry

      • 调用hass.config_entries.async_forward_entry_setup函数后,自动启动此函数
      • 配置信息通过config_entry参数传入
      • 在此函数中,通过传入的async_add_entities函数加载设备

以上三种方式并不互斥,可以同时实现

返回课程目录↩