Add entity architecture

This commit is contained in:
Paulus Schoutsen 2018-04-28 17:59:54 -04:00
parent 53badfcda3
commit 472a76c146
5 changed files with 42 additions and 1 deletions

View File

@ -0,0 +1,37 @@
---
title: "Entity Architecture"
sidebar_label: Entity
---
![Architecture overview of Hass.io](/img/en/architecture/entities_architecture.svg)
## Configuration
Configuration is provided by the configuration.yaml file or by a Config Entry from the Config Manager.
## Component
Examples of components: `light`, `switch`.
The component is responsible for defining the Abstract Entity Class and services to control the entities.
## Entity Component
The Entity Component is responsible for:
- Distributing the configuration to the platforms
- Forward config entries and discoveries
- Collect entities for service calls
- Optionally maintain a group of all entities
## Entity Platform
The Entity Platform manages all entities for the platform and polls them for updates if necessary.
When adding entities, the Entity Platform will query the Entity Registry to make sure that the entities to be added have the correct entity IDs.
## Platform
Examples of platforms: `light.hue`, `switch.wemo`.
Platform uses configuration to query the external device/service and add entities to the entity platform.

View File

@ -3,7 +3,7 @@ title: "Hass.io Architecture"
sidebar_label: Hass.io sidebar_label: Hass.io
--- ---
<img src='/img/en/architecture/hassio.png' alt='Architecture overview of Hass.io'> ![Architecture overview of Hass.io](/img/en/architecture/hassio.png)
## Host Control (HC) ## Host Control (HC)

View File

@ -6,6 +6,8 @@
"tagline": "All you need to start developing for Home Assistant", "tagline": "All you need to start developing for Home Assistant",
"architecture_components": "Components Architecture", "architecture_components": "Components Architecture",
"Components": "Components", "Components": "Components",
"architecture_entities": "Entity Architecture",
"Entity": "Entity",
"architecture_hassio": "Hass.io Architecture", "architecture_hassio": "Hass.io Architecture",
"Hass.io": "Hass.io", "Hass.io": "Hass.io",
"architecture_index": "Architecture", "architecture_index": "Architecture",

View File

@ -3,6 +3,7 @@
"Architecture": [ "Architecture": [
"architecture_index", "architecture_index",
"architecture_components", "architecture_components",
"architecture_entities",
"architecture_hassio" "architecture_hassio"
] ]
}, },

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 140 KiB