The implementation of the Automation ESH module is based on the declarative services concept, described in the OSGi specification. The automation logic is structured in several service components, declared and provided by several bundles.
The Rule Engine is the "heart" of the Automation ESH module. It is responsible for the execution of the automation rules, but it is not declared as a service. It can be accessed only through the Rule Registry service.
A significant part of the Automation ESH components are Providers of automation objects, Registries and Module Handlers. They are the Rule Engine's main assistants.
All Automation ESH Registries are wrapped with Functional Item admin services.
Three REST services implement the ESH-defined automation REST API
The additional utility services include the automation Storage service and the Backup Provider service.