custom integration

 

Install vscode server on rpi

 

step 1.create mainfest.json

manifest.json 包含了我们这个组件的基础信息,Home Assistant 在加载的时候会读取。

run ok

{
  "domain": "learn_integration",
  "name": "Learn Integration",
  "version": "v0.1.0",
  "codeowners": ["@mslycn"],
  "config_flow": false,
  "dependencies": [],
  "documentation": "https://github.com/mslycn/learn_integration/blob/main/README.md",
  "integration_type": "hub",
  "iot_class": "cloud_polling",
  "requirements": []
}

 

此时自定义组件是合法的,如果你放在自己的 Home Assistant config 目录下,Home Assistant 会正常加载,并不会实际创建任何实体(entities)

learn-integration-1.png

add learn integration

 

learn-integration-2.png

 

step 2.add __init__.py

 

在__init__.py中,创建一个实体(entities)

run ok

import asyncio


DOMAIN = "learn_integration"   
# DOMAIN的定义,每个集成只有一个DOMAIN,"learn_integration"。


async def async_setup(hass, config):
    hass.states.async_set("learn_integration.world", "hello word")
    # 在 Home Assistant 状态机中创建一个实体,实体 ID 为 learn_integration.world,状态值为 "hello word",字符串 "hello word",可替换为数值、布尔值或其他类型。。
 
    # Return boolean to indicate that initialization was successful.
    # 返回 True 表示集成初始化成功;若返回 False,Home Assistant 会记录错误。
    return True

# 初始化组件
# 添加集成后,会执行该函数
async def async_setup_entry(hass, entry):
    # 在这里设置配置流
    return True

# 卸载组件
# 在前端删除集成配置时,会执行该函数
# 关闭HomeAssistant时,会执行该函数
async def async_unload_entry(hass, entry):
    # 卸载配置流
    return True


# come from:https://developers.home-assistant.io/docs/creating_component_index
# https://blog.csdn.net/tre4321/article/details/144350503
# https://blog.csdn.net/gitblog_00687/article/details/141208354

 

step 3. Add Integration

To load this, add learn_integration: to your configuration.yaml file

configuration.yaml

# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
input_boolean: !include input_boolean.yaml

learn_integration:

# https://www.home-assistant.io/integrations/recorder
recorder:
  #purge_interval: 2 

 

step 4.test

 

restart ha

 

在开发者工具 → 状态中搜索 learn_integration.world,可见状态为 hello word

learn-integration-4.png

 

add flow =true

 

learn-integration-3.png

 

 

http://localhost:4999/boards/topic/14510/how-to-building-a-home-assistant-custom-integration-step-by-step

Comments


Comments are closed