diff --git a/atom.xml b/atom.xml index a4b72316fe..07405d2e52 100644 --- a/atom.xml +++ b/atom.xml @@ -4,7 +4,7 @@
The core of Home Assistant is responsible for the Home Control part and is made up:
+The Home Assistant core is responsible for Home Control. It has four parts to make this possible:
These components will track devices within a specific domain and make this information available via the State Machine and the Event Bus. The component will also register services in the Service Registry to expose control of the devices. Each of these components exist of a core part and small pieces of platform specific logic.
+These components will track devices within a specific domain and exist of a core part and platform specific logic. These components make their information available via the State Machine and the Event Bus. The component will also register services in the Service Registry to expose control of the devices.
For example, one of the built-in components is the switch
component. This component is responsible for interaction with different types of switches.
Another example of a home automation component can be found in /config/custom_components/example.py
.
When we put all the different pieces of Home Assistant together we see that we match pretty close to the initial sketched home automation overview. The smart home AI is not implemented yet and therefor ommitted from the following picture.
+ +
+
+
+
+ Overview of the full Home Assistant architecture with a couple of loaded components and platforms.
+
Component’s platform logic uses 3rd party Python libraries to communicate with the devices. This is done so that we can leverage great device libraries that are out there in the Python community.
+Home Assistant supports running multiple synchronzied instances using a master-slave model. Slaves forward all local fired events and set states to the master instance which will then replicate it to each slave.
+Home Assistant supports running multiple synchronzied instances using a master-slave model. Whenever events.fire
or states.set
is called on the salve it will forward it to the master. The master will replicate all events and changed states to its slaves.