developers.home-assistant/docs/config_entries_index.md
Robert Svensson 6ab90d72af
Dev docs for config entry options (#185)
* Dev docs for config entry options
2019-02-24 17:51:56 +01:00

2.4 KiB

title, sidebar_label
title sidebar_label
Config Entries Introduction

Config Entries are configuration data that are persistently stored by Home Assistant. A config entry is created by a user via the UI. The UI flow is powered by a config flow handler as defined by the component. Config entries can also have an extra options flow handler, also defined by the component.

Setting up an entry

During startup, Home Assistant first calls the normal component setup, and then call the method async_setup_entry(hass, entry) for each entry. If a new Config Entry is created at runtime, Home Assistant will also call async_setup_entry(hass, entry) (example).

For platforms

If a component includes platforms, it will need to forward the Config Entry to the platform. This can be done by calling the forward function on the config entry manager (example):

# Use `hass.async_add_job` to avoid a circular dependency between the platform and the component
hass.async_add_job(hass.config_entries.async_forward_entry_setup(config_entry, 'light'))

For a platform to support config entries, it will need to add a setup entry method (example):

async def async_setup_entry(hass, config_entry, async_add_devices):

Unloading entries

Components can optionally support unloading a config entry. When unloading an entry, the component needs to clean up all entities, unsubscribe any event listener and close all connections. To implement this, add async_unload_entry(hass, entry) to your component (example).

Platforms will not need to add any logic for unloading a config entry. The entity component will take care of this. If you need to clean up resources used for an entity, implement the async_will_remove_from_hass method on the Entity (example).