Module modules.app.AppConfiguration
Basic application configuration.
- The settings files are read with pyyaml and processed by pydantic.
- Most values are rendered with pystache which uses the mustache syntax (https://mustache.github.io/).
Expand source code
'''
## Basic application configuration.
+ The settings files are read with pyyaml and processed by pydantic.
+ Most values are rendered with pystache which uses the mustache syntax (https://mustache.github.io/).
'''
from modules.base.Configuration import *
from modules.base.Instances import *
@configuration
class AppConfiguration(VariablesConfiguration):
"""Basic application configuration.
<details>
```YAML
device:
name: MyPiDevice
version: 1.0
platforms:
- platform: plugins.gpio
id: gpio
factory: rpigpio
- platform: plugins.console
id: console
actions:
- id: print
platform: console
type: PrintAction
sensors:
- id: button1
platform: gpio
pin: GPIO24
type: ButtonSensor
on_press:
- actions:
- action: print
values:
payload: Button1 pressed
```
</details>
"""
device: DeviceConfiguration
"""Device configuration.
<details>
Access the device from YAML:
```
values:
- payload: "{{id(device).configuration.name}}"
```
</details>
"""
platforms: Optional[list[WithPlugins(PlatformConfiguration)]] #type: ignore
"""List of platforms, see `plugins`
<details>
Access a platfrom from YAML:
```
values:
- payload: "{{id(id_of_the_platform).variables.myVariable}}"
```
</details>
"""
actions: Optional[list[WithPlugins(ActionConfiguration)]] #type: ignore
"""List of actions (=outputs), see `plugins`
<details>
Access an action from YAML:
```
values:
- payload: "{{id(id_of_the_action).variables.myVariable}}"
```
</details>
"""
sensors: Optional[list[WithPlugins(SensorConfiguration)]] #type: ignore
"""List of sensors (=inputs), see `plugins`
<details>
Access a sensor from YAML:
```
values:
- payload: "{{id(id_of_the_sensor).variables.myVariable}}"
```
</details>
"""
Classes
class AppConfiguration (**data: Any)-
Basic application configuration.
device: name: MyPiDevice version: 1.0 platforms: - platform: plugins.gpio id: gpio factory: rpigpio - platform: plugins.console id: console actions: - id: print platform: console type: PrintAction sensors: - id: button1 platform: gpio pin: GPIO24 type: ButtonSensor on_press: - actions: - action: print values: payload: Button1 pressedYAML configuration
Expand source code
@configuration class AppConfiguration(VariablesConfiguration): """Basic application configuration. <details> ```YAML device: name: MyPiDevice version: 1.0 platforms: - platform: plugins.gpio id: gpio factory: rpigpio - platform: plugins.console id: console actions: - id: print platform: console type: PrintAction sensors: - id: button1 platform: gpio pin: GPIO24 type: ButtonSensor on_press: - actions: - action: print values: payload: Button1 pressed ``` </details> """ device: DeviceConfiguration """Device configuration. <details> Access the device from YAML: ``` values: - payload: "{{id(device).configuration.name}}" ``` </details> """ platforms: Optional[list[WithPlugins(PlatformConfiguration)]] #type: ignore """List of platforms, see `plugins` <details> Access a platfrom from YAML: ``` values: - payload: "{{id(id_of_the_platform).variables.myVariable}}" ``` </details> """ actions: Optional[list[WithPlugins(ActionConfiguration)]] #type: ignore """List of actions (=outputs), see `plugins` <details> Access an action from YAML: ``` values: - payload: "{{id(id_of_the_action).variables.myVariable}}" ``` </details> """ sensors: Optional[list[WithPlugins(SensorConfiguration)]] #type: ignore """List of sensors (=inputs), see `plugins` <details> Access a sensor from YAML: ``` values: - payload: "{{id(id_of_the_sensor).variables.myVariable}}" ``` </details> """Ancestors
- VariablesConfiguration
- Configuration
- pydantic.main.BaseModel
- pydantic.utils.Representation
Class variables
var actions : Optional[list]-
List of actions (=outputs), see
pluginsAccess an action from YAML:values: - payload: "{{id(id_of_the_action).variables.myVariable}}" var device : DeviceConfiguration-
Device configuration.
Access the device from YAML:values: - payload: "{{id(device).configuration.name}}" var platforms : Optional[list]-
List of platforms, see
pluginsAccess a platfrom from YAML:values: - payload: "{{id(id_of_the_platform).variables.myVariable}}" var sensors : Optional[list]-
List of sensors (=inputs), see
pluginsAccess a sensor from YAML:values: - payload: "{{id(id_of_the_sensor).variables.myVariable}}"
Inherited members