Movatterモバイル変換


[0]ホーム

URL:


Skip to main content

Creating your first integration

Alright, so it's time to write your first code for your integration. AWESOME. Don't worry, we've tried hard to keep it as easy as possible. From a Home Assistant development environment, type the following and follow the instructions:

python3 -m script.scaffold integration

This will set you up with everything that you need to build an integration that is able to be set up via the user interface. More extensive examples of integrations are available fromour example repository.

tip

This example repository shows custom integrations that live in the<config_dir>/custom_components directory. These MUST have aversion key in theirmanifest file. Core integrations live in thehomeassistant/components directory, and do not need aversion key. The architecture is the same in both cases.

The minimum

The scaffold integration contains a bit more than just the bare minimum. The minimum is that you define aDOMAIN constant that contains the domain of the integration. The second part is that it needs to define a setup method that returns a boolean if the set-up was successful.

Create a filehomeassistant/components/hello_state/__init__.py with one of the two following codeblocks, depending on what you need:

  • Sync component:
DOMAIN="hello_state"


defsetup(hass, config):
hass.states.set("hello_state.world","Paulus")

# Return boolean to indicate that initialization was successful.
returnTrue
  • And if you prefer an async component:
DOMAIN="hello_state"


asyncdefasync_setup(hass, config):
hass.states.async_set("hello_state.world","Paulus")

# Return boolean to indicate that initialization was successful.
returnTrue

In addition, a manifest file is required with the following keys as the bare minimum. Createhomeassistant/components/hello_state/manifest.json.

{
"domain": "hello_state",
"name": "Hello, state!"
}

To load this, addhello_state: to yourconfiguration.yaml file.

What the scaffold offers

When using the scaffold script, it will go past the bare minimum of an integration. It will include a config flow, tests for the config flow and basic translation infrastructure to provide internationalization for your config flow.


[8]ページ先頭

©2009-2025 Movatter.jp