Enasis Network Homie Automate#
Configuration Container#
- class enhomie.homie.HomieConfig(sargs: dict[str, Any] | None = None, files: str | Path | list[str | Path] | tuple[str | Path] | set[str] | None = None, cargs: dict[str, Any] | None = None)[source]
Bases:
Config
Contain the configurations from the arguments and files.
- Parameters:
sargs – Additional arguments on the command line.
files – Complete or relative path to config files.
cargs – Configuration arguments in dictionary form, which will override contents from the config files.
- property params: HomieParams
Return the Pydantic model containing the configuration.
Warning
This method completely overrides the parent but is based on that code, would be unfortunate if upstream changes meant this breaks or breaks something else.
- Returns:
Pydantic model containing the configuration.
Parameters Container#
- pydantic model enhomie.homie.params.HomieParams[source]
Bases:
Params
Process and validate the core configuration parameters.
Show JSON schema
{ "title": "HomieParams", "description": "Process and validate the core configuration parameters.", "type": "object", "properties": { "enconfig": { "anyOf": [ { "$ref": "#/$defs/ConfigParams" }, { "type": "null" } ], "default": null, "description": "Parameters for Config instance" }, "enlogger": { "anyOf": [ { "$ref": "#/$defs/LoggerParams" }, { "type": "null" } ], "default": null, "description": "Parameters for Logger instance" }, "encrypts": { "anyOf": [ { "$ref": "#/$defs/CryptsParams" }, { "type": "null" } ], "default": null, "description": "Parameters for Crypts instance" }, "database": { "default": "sqlite:///:memory:", "description": "Database connection string", "minLength": 1, "title": "Database", "type": "string" }, "dryrun": { "default": false, "description": "Determine if changes applied", "title": "Dryrun", "type": "boolean" }, "potent": { "default": true, "description": "Ignore idempotency in change", "title": "Potent", "type": "boolean" }, "printer": { "$ref": "#/$defs/HomiePrinterParams", "description": "Print the stream to console" }, "service": { "$ref": "#/$defs/HomieServiceParams", "description": "Parameters for Homie Service" }, "restful": { "$ref": "#/$defs/RestfulServiceParams", "description": "Parameters for Homie RESTful" }, "persists": { "anyOf": [ { "additionalProperties": { "$ref": "#/$defs/HomiePersistParams" }, "minProperties": 1, "type": "object" }, { "type": "null" } ], "default": null, "description": "Parameters for common persists", "title": "Persists" }, "filters": { "$ref": "#/$defs/HomieFiltersParams", "description": "Determine object instantiation" }, "origins": { "anyOf": [ { "additionalProperties": { "$ref": "#/$defs/HomieOriginParams" }, "minProperties": 1, "type": "object" }, { "type": "null" } ], "default": null, "description": "Parameters for Homie origins", "title": "Origins" }, "devices": { "anyOf": [ { "additionalProperties": { "$ref": "#/$defs/HomieDeviceParams" }, "minProperties": 1, "type": "object" }, { "type": "null" } ], "default": null, "description": "Parameters for Homie devices", "title": "Devices" }, "groups": { "anyOf": [ { "additionalProperties": { "$ref": "#/$defs/HomieGroupParams" }, "minProperties": 1, "type": "object" }, { "type": "null" } ], "default": null, "description": "Parameters for Homie groups", "title": "Groups" }, "scenes": { "anyOf": [ { "additionalProperties": { "$ref": "#/$defs/HomieSceneParams" }, "minProperties": 1, "type": "object" }, { "type": "null" } ], "default": null, "description": "Parameters for Homie scenes", "title": "Scenes" }, "desires": { "anyOf": [ { "additionalProperties": { "$ref": "#/$defs/HomieDesireParams" }, "minProperties": 1, "type": "object" }, { "type": "null" } ], "default": null, "description": "Parameters for Homie desires", "title": "Desires" }, "aspires": { "anyOf": [ { "additionalProperties": { "$ref": "#/$defs/HomieAspireParams" }, "minProperties": 1, "type": "object" }, { "type": "null" } ], "default": null, "description": "Parameters for Homie aspires", "title": "Aspires" } }, "$defs": { "ConfigParams": { "additionalProperties": false, "description": "Process and validate the core configuration parameters.", "properties": { "paths": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Location of configuration files", "title": "Paths" } }, "title": "ConfigParams", "type": "object" }, "CryptParams": { "additionalProperties": false, "description": "Process and validate the core configuration parameters.", "properties": { "phrase": { "description": "Passphrase for the operations", "minLength": 1, "title": "Phrase", "type": "string" } }, "required": [ "phrase" ], "title": "CryptParams", "type": "object" }, "CryptsParams": { "additionalProperties": false, "description": "Process and validate the core configuration parameters.", "properties": { "phrases": { "additionalProperties": { "$ref": "#/$defs/CryptParams" }, "description": "Passphrases for the operations", "minProperties": 0, "title": "Phrases", "type": "object" } }, "required": [ "phrases" ], "title": "CryptsParams", "type": "object" }, "DriverBltnPeriodParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "start": { "anyOf": [ { "pattern": "^([01]\\d|2[0-3]):([0-5]\\d)$", "type": "string" }, { "type": "null" } ], "default": null, "description": "Start time in 24 hour format", "title": "Start" }, "stop": { "anyOf": [ { "pattern": "^([01]\\d|2[0-3]):([0-5]\\d)$", "type": "string" }, { "type": "null" } ], "default": null, "description": "Stop time in 24 hour format", "title": "Stop" }, "days": { "anyOf": [ { "items": { "enum": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ], "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Days of the week in scope", "title": "Days" }, "tzname": { "default": "UTC", "description": "Timezone parsed with Time", "minLength": 1, "title": "Tzname", "type": "string" } }, "title": "DriverBltnPeriodParams", "type": "object" }, "DriverBltnRegexpParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "patterns": { "description": "Regular expression match", "items": { "type": "string" }, "minItems": 1, "title": "Patterns", "type": "array" }, "complete": { "default": false, "description": "Perform complete match", "title": "Complete", "type": "boolean" } }, "required": [ "patterns" ], "title": "DriverBltnRegexpParams", "type": "object" }, "DriverBltnStoreParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "unique": { "description": "Unique key for the value", "minLength": 1, "title": "Unique", "type": "string" }, "operator": { "description": "Operator for the condition", "enum": [ "present", "absent", "eq", "neq", "lt", "lte", "gt", "gte" ], "title": "Operator", "type": "string" }, "value": { "anyOf": [ { "type": "integer" }, { "type": "number" }, { "type": "boolean" }, { "type": "string" }, { "type": "null" } ], "default": null, "description": "Value for the condition", "title": "Value" } }, "required": [ "unique", "operator" ], "title": "DriverBltnStoreParams", "type": "object" }, "DriverPhueButtonParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "device": { "description": "Device that is in scope", "minLength": 1, "title": "Device", "type": "string" }, "events": { "anyOf": [ { "items": { "enum": [ "initial_press", "long_release", "short_release" ], "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Events that will be matched", "title": "Events" }, "sensor": { "description": "Sensor that will be matched", "enum": [ "button1", "button2", "button3", "button4" ], "title": "Sensor", "type": "string" } }, "required": [ "device", "sensor" ], "title": "DriverPhueButtonParams", "type": "object" }, "DriverPhueChangeParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "devices": { "description": "Devices that are in scope", "items": { "type": "string" }, "minItems": 1, "title": "Devices", "type": "array" }, "sensors": { "anyOf": [ { "items": { "enum": [ "button1", "button2", "button3", "button4", "contact", "motion", "temperature" ], "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Sensors that will be matched", "title": "Sensors" }, "since": { "default": 0, "description": "Minimum time since changed", "minimum": 0, "title": "Since", "type": "integer" } }, "required": [ "devices" ], "title": "DriverPhueChangeParams", "type": "object" }, "DriverPhueContactParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "device": { "description": "Device that is in scope", "minLength": 1, "title": "Device", "type": "string" }, "states": { "anyOf": [ { "items": { "enum": [ "contact", "no_contact" ], "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "States that will be matched", "title": "States" } }, "required": [ "device" ], "title": "DriverPhueContactParams", "type": "object" }, "DriverPhueMotionParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "device": { "description": "Device that is in scope", "minLength": 1, "title": "Device", "type": "string" }, "states": { "anyOf": [ { "items": { "enum": [ "motion", "no_motion" ], "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "States that will be matched", "title": "States" } }, "required": [ "device" ], "title": "DriverPhueMotionParams", "type": "object" }, "DriverPhueSceneParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "scene": { "description": "Scene that is in scope", "minLength": 1, "title": "Scene", "type": "string" }, "group": { "description": "Group that is in scope", "minLength": 1, "title": "Group", "type": "string" }, "states": { "anyOf": [ { "items": { "enum": [ "active", "inactive" ], "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "States that will be matched", "title": "States" } }, "required": [ "scene", "group" ], "title": "DriverPhueSceneParams", "type": "object" }, "DriverUbiqClientParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "clients": { "description": "Clients that are in scope", "items": { "type": "string" }, "minItems": 1, "title": "Clients", "type": "array" }, "since": { "default": 0, "description": "Minimum time since changed", "minimum": 0, "title": "Since", "type": "integer" } }, "required": [ "clients" ], "title": "DriverUbiqClientParams", "type": "object" }, "HomieAspireParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "devices": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Devices that are in scope", "title": "Devices" }, "groups": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Groups that are in scope", "title": "Groups" }, "stage": { "anyOf": [ { "$ref": "#/$defs/HomieStageParams" }, { "type": "null" } ], "default": null, "description": "Default device scene config" }, "scene": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Update the group light scene", "title": "Scene" }, "store": { "anyOf": [ { "items": { "$ref": "#/$defs/HomieStoreParams" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Update values in database", "title": "Store" }, "occurs": { "anyOf": [ { "items": { "$ref": "#/$defs/HomieOccurParams" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Plugins for the conditions", "title": "Occurs" }, "wheres": { "anyOf": [ { "items": { "$ref": "#/$defs/HomieWhereParams" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Plugins for the conditions", "title": "Wheres" }, "pause": { "default": 3, "description": "Delay before acting again", "maximum": 86400, "minimum": 1, "title": "Pause", "type": "integer" } }, "title": "HomieAspireParams", "type": "object" }, "HomieDesireParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "devices": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Devices that are in scope", "title": "Devices" }, "groups": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Groups that are in scope", "title": "Groups" }, "stage": { "anyOf": [ { "$ref": "#/$defs/HomieStageParams" }, { "type": "null" } ], "default": null, "description": "Default device scene config" }, "scene": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Update the group light scene", "title": "Scene" }, "store": { "anyOf": [ { "items": { "$ref": "#/$defs/HomieStoreParams" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Update values in database", "title": "Store" }, "wheres": { "anyOf": [ { "items": { "$ref": "#/$defs/HomieWhereParams" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Plugins for the conditions", "title": "Wheres" }, "pause": { "default": 0, "description": "Delay before acting again", "maximum": 86400, "minimum": 0, "title": "Pause", "type": "integer" }, "delay": { "default": true, "description": "Enforce pause on initial", "title": "Delay", "type": "boolean" }, "weight": { "default": 0, "description": "Precedence when multiple", "maximum": 1000.0, "minimum": 0, "title": "Weight", "type": "integer" } }, "title": "HomieDesireParams", "type": "object" }, "HomieDeviceParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "origin": { "description": "Origin where device exists", "minLength": 1, "title": "Origin", "type": "string" }, "label": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Device name in the origin", "title": "Label" }, "unique": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Unique identifier in origin", "title": "Unique" } }, "required": [ "origin" ], "title": "HomieDeviceParams", "type": "object" }, "HomieFiltersParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "aspires": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Patterns the names must match", "title": "Aspires" }, "desires": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Patterns the names must match", "title": "Desires" } }, "title": "HomieFiltersParams", "type": "object" }, "HomieGroupParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "origin": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Origin where group exists", "title": "Origin" }, "label": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Group name in the origin", "title": "Label" }, "devices": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "List of devices in group", "title": "Devices" } }, "title": "HomieGroupParams", "type": "object" }, "HomieOccurParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "builtins_regexp": { "anyOf": [ { "$ref": "#/$defs/DriverBltnRegexpParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" }, "philips_button": { "anyOf": [ { "$ref": "#/$defs/DriverPhueButtonParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" }, "philips_contact": { "anyOf": [ { "$ref": "#/$defs/DriverPhueContactParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" }, "philips_motion": { "anyOf": [ { "$ref": "#/$defs/DriverPhueMotionParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" }, "philips_scene": { "anyOf": [ { "$ref": "#/$defs/DriverPhueSceneParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" } }, "title": "HomieOccurParams", "type": "object" }, "HomieOriginParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "hubitat": { "anyOf": [ { "$ref": "#/$defs/HubiOriginParams" }, { "type": "null" } ], "default": null, "description": "Connection specific parameters" }, "philips": { "anyOf": [ { "$ref": "#/$defs/PhueOriginParams" }, { "type": "null" } ], "default": null, "description": "Connection specific parameters" }, "ubiquiti": { "anyOf": [ { "$ref": "#/$defs/UbiqOriginParams" }, { "type": "null" } ], "default": null, "description": "Connection specific parameters" } }, "title": "HomieOriginParams", "type": "object" }, "HomiePersistParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "value_unit": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Unit for persist value", "title": "Value Unit" }, "value_label": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Label for persist value", "title": "Value Label" }, "value_icon": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon for persist value", "title": "Value Icon" }, "about": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "About the persist entry", "title": "About" }, "about_label": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Label for persist entry", "title": "About Label" }, "about_icon": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon for persist entry", "title": "About Icon" }, "level": { "anyOf": [ { "enum": [ "failure", "information", "success", "warning" ], "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Severity of persist entry", "title": "Level" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Tags for persist entry", "title": "Tags" }, "expire": { "anyOf": [ { "minLength": 1, "pattern": "^(\\d+(s|m|h|d|w|y))*$", "type": "string" }, { "type": "null" } ], "default": null, "description": "After when the key expires", "examples": [ "1h", "1h30m", "1d" ], "title": "Expire" } }, "title": "HomiePersistParams", "type": "object" }, "HomiePrinterParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "action": { "default": false, "description": "Print the actions to console", "title": "Action", "type": "boolean" }, "update": { "default": false, "description": "Print the updates to console", "title": "Update", "type": "boolean" }, "stream": { "default": false, "description": "Print the streams to console", "title": "Stream", "type": "boolean" }, "desire": { "default": false, "description": "Print the aspires to console", "title": "Desire", "type": "boolean" }, "aspire": { "default": false, "description": "Print the aspires to console", "title": "Aspire", "type": "boolean" } }, "title": "HomiePrinterParams", "type": "object" }, "HomieSceneParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "label": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Scene name in the origin", "title": "Label" }, "stage": { "$ref": "#/$defs/HomieStageParams", "description": "Default device scene config" }, "devices": { "anyOf": [ { "additionalProperties": { "$ref": "#/$defs/HomieStageParams" }, "minProperties": 1, "type": "object" }, { "type": "null" } ], "default": null, "description": "Device specific scene config", "title": "Devices" } }, "title": "HomieSceneParams", "type": "object" }, "HomieServiceMembersParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "actions": { "default": true, "description": "Determine whether created", "title": "Actions", "type": "boolean" }, "streams": { "default": true, "description": "Determine whether created", "title": "Streams", "type": "boolean" }, "updates": { "default": true, "description": "Determine whether created", "title": "Updates", "type": "boolean" }, "restful": { "default": false, "description": "Determine whether created", "title": "Restful", "type": "boolean" } }, "title": "HomieServiceMembersParams", "type": "object" }, "HomieServiceParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "respite": { "$ref": "#/$defs/HomieServiceRespiteParams", "description": "When operates are performed" }, "timeout": { "$ref": "#/$defs/HomieServiceTimeoutParams", "description": "Override source or defaults" }, "members": { "$ref": "#/$defs/HomieServiceMembersParams", "description": "Which members are created" } }, "title": "HomieServiceParams", "type": "object" }, "HomieServiceRespiteParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "desire": { "default": 60, "description": "How often desires performed", "maximum": 900, "minimum": 1, "title": "Desire", "type": "integer" }, "update": { "default": 60, "description": "How often updates performed", "maximum": 900, "minimum": 1, "title": "Update", "type": "integer" }, "health": { "default": 3, "description": "How often health is checked", "maximum": 15, "minimum": 1, "title": "Health", "type": "integer" } }, "title": "HomieServiceRespiteParams", "type": "object" }, "HomieServiceTimeoutParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "action": { "default": 5, "description": "Override the actions timeout", "maximum": 30, "minimum": 1, "title": "Action", "type": "integer" }, "update": { "default": 3, "description": "Override the updates timeout", "maximum": 30, "minimum": 1, "title": "Update", "type": "integer" }, "stream": { "default": 60, "description": "Override the stream timeout", "maximum": 900, "minimum": 1, "title": "Stream", "type": "integer" } }, "title": "HomieServiceTimeoutParams", "type": "object" }, "HomieStageParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "state": { "anyOf": [ { "enum": [ "poweron", "nopower" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Setting for the light state", "title": "State" }, "color": { "anyOf": [ { "maxLength": 6, "minLength": 6, "type": "string" }, { "type": "null" } ], "default": null, "description": "Setting for the light color", "title": "Color" }, "level": { "anyOf": [ { "maximum": 100, "minimum": 0, "type": "integer" }, { "type": "null" } ], "default": null, "description": "Setting for the light level", "title": "Level" } }, "title": "HomieStageParams", "type": "object" }, "HomieStoreParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "unique": { "description": "Unique key for the value", "minLength": 1, "title": "Unique", "type": "string" }, "value": { "anyOf": [ { "type": "integer" }, { "type": "number" }, { "type": "boolean" }, { "type": "string" }, { "type": "null" } ], "description": "Value stored at unique", "title": "Value" }, "value_unit": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Unit for persist value", "title": "Value Unit" }, "value_label": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Label for persist value", "title": "Value Label" }, "value_icon": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon for persist value", "title": "Value Icon" }, "about": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "About the persist entry", "title": "About" }, "about_label": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Label for persist entry", "title": "About Label" }, "about_icon": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon for persist entry", "title": "About Icon" }, "level": { "anyOf": [ { "enum": [ "failure", "information", "success", "warning" ], "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Severity of persist entry", "title": "Level" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Tags for persist entry", "title": "Tags" }, "expire": { "anyOf": [ { "minLength": 1, "pattern": "^(\\d+(s|m|h|d|w|y))*$", "type": "string" }, { "type": "null" } ], "default": "1d", "description": "After when the key expires", "examples": [ "1h", "1h30m", "1d" ], "title": "Expire" } }, "required": [ "unique", "value" ], "title": "HomieStoreParams", "type": "object" }, "HomieWhereParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.\n\n.. note::\n When using the `default` `family`, the conditons are\n in an `AND` relationship. If another name is given\n for `family`, those will be with an OR relationship.", "properties": { "negate": { "default": false, "description": "Invert conditional outcome", "title": "Negate", "type": "boolean" }, "family": { "default": "default", "description": "Combine conditions in group", "minLength": 1, "title": "Family", "type": "string" }, "builtins_store": { "anyOf": [ { "$ref": "#/$defs/DriverBltnStoreParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" }, "builtins_period": { "anyOf": [ { "$ref": "#/$defs/DriverBltnPeriodParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" }, "philips_change": { "anyOf": [ { "$ref": "#/$defs/DriverPhueChangeParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" }, "ubiquiti_client": { "anyOf": [ { "$ref": "#/$defs/DriverUbiqClientParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" } }, "title": "HomieWhereParams", "type": "object" }, "HubiOriginParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "bridge": { "$ref": "#/$defs/enconnect__hubitat__params__BridgeParams", "description": "Connection specific parameters" } }, "required": [ "bridge" ], "title": "HubiOriginParams", "type": "object" }, "LoggerParams": { "additionalProperties": false, "description": "Process and validate the core configuration parameters.", "properties": { "stdo_level": { "anyOf": [ { "enum": [ "critical", "debug", "error", "info", "warning" ], "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Minimum logging message level", "title": "Stdo Level" }, "file_level": { "anyOf": [ { "enum": [ "critical", "debug", "error", "info", "warning" ], "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Minimum logging message level", "title": "File Level" }, "file_path": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Enable output to the log file", "title": "File Path" } }, "title": "LoggerParams", "type": "object" }, "PhueOriginParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "bridge": { "$ref": "#/$defs/enconnect__philips__params__BridgeParams", "description": "Connection specific parameters" } }, "required": [ "bridge" ], "title": "PhueOriginParams", "type": "object" }, "RestfulServiceParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "bind_addr": { "default": "127.0.0.1", "description": "Which local address to bind", "minLength": 1, "title": "Bind Addr", "type": "string" }, "bind_port": { "default": 8420, "description": "Which port on address to bind", "maximum": 65535, "minimum": 0, "title": "Bind Port", "type": "integer" }, "authenticate": { "anyOf": [ { "additionalProperties": { "type": "string" }, "minProperties": 1, "type": "object" }, { "type": "null" } ], "default": null, "description": "Credentials for authentication", "title": "Authenticate" }, "ssl_capem": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Filesystem path to certificate", "title": "Ssl Capem" }, "ssl_mypem": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Filesystem path to certificate", "title": "Ssl Mypem" }, "ssl_mykey": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Filesystem path to certificate", "title": "Ssl Mykey" } }, "title": "RestfulServiceParams", "type": "object" }, "RouterParams": { "additionalProperties": false, "description": "Process and validate the class configuration parameters.", "properties": { "server": { "description": "Server address for connection", "minLength": 1, "title": "Server", "type": "string" }, "timeout": { "default": 30, "description": "Timeout connecting to server", "maximum": 300, "minimum": 1, "title": "Timeout", "type": "integer" }, "username": { "description": "Parameter for the integration", "minLength": 1, "title": "Username", "type": "string" }, "password": { "description": "Parameter for the integration", "minLength": 1, "title": "Password", "type": "string" }, "site": { "default": "default", "description": "Parameter for the integration", "minLength": 1, "title": "Site", "type": "string" }, "ssl_verify": { "default": true, "description": "Verify the ceritifcate valid", "title": "Ssl Verify", "type": "boolean" }, "ssl_capem": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Verify the ceritifcate valid", "title": "Ssl Capem" } }, "required": [ "server", "username", "password" ], "title": "RouterParams", "type": "object" }, "UbiqOriginParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "router": { "$ref": "#/$defs/RouterParams", "description": "Connection specific parameters" } }, "required": [ "router" ], "title": "UbiqOriginParams", "type": "object" }, "enconnect__hubitat__params__BridgeParams": { "additionalProperties": false, "description": "Process and validate the class configuration parameters.", "properties": { "server": { "description": "Server address for connection", "minLength": 1, "title": "Server", "type": "string" }, "timeout": { "default": 30, "description": "Timeout connecting to server", "maximum": 300, "minimum": 1, "title": "Timeout", "type": "integer" }, "appid": { "description": "Parameter for the integration", "minimum": 0, "title": "Appid", "type": "integer" }, "token": { "description": "Parameter for the integration", "minLength": 1, "title": "Token", "type": "string" }, "ssl_verify": { "default": false, "description": "Verify the ceritifcate valid", "title": "Ssl Verify", "type": "boolean" }, "ssl_capem": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Verify the ceritifcate valid", "title": "Ssl Capem" } }, "required": [ "server", "appid", "token" ], "title": "BridgeParams", "type": "object" }, "enconnect__philips__params__BridgeParams": { "additionalProperties": false, "description": "Process and validate the class configuration parameters.", "properties": { "server": { "description": "Server address for connection", "minLength": 1, "title": "Server", "type": "string" }, "timeout": { "default": 30, "description": "Timeout connecting to server", "maximum": 300, "minimum": 1, "title": "Timeout", "type": "integer" }, "token": { "description": "Parameter for the integration", "minLength": 1, "title": "Token", "type": "string" }, "ssl_verify": { "default": true, "description": "Verify the ceritifcate valid", "title": "Ssl Verify", "type": "boolean" }, "ssl_capem": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Verify the ceritifcate valid", "title": "Ssl Capem" } }, "required": [ "server", "token" ], "title": "BridgeParams", "type": "object" } }, "additionalProperties": false }
- Config:
extra: str = forbid
- Fields:
enconfig (Annotated[Optional[ConfigParams], Field(None, description='Parameters for Config instance')])
encrypts (Annotated[Optional[CryptsParams], Field(None, description='Parameters for Crypts instance')])
enlogger (Annotated[Optional[LoggerParams], Field(None, description='Parameters for Logger instance')])
- field aspires: Annotated[dict[str, HomieAspireParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie aspires', metadata=[MinLen(min_length=1)])] = None
Parameters for Homie aspires
- Constraints:
min_length = 1
- field database: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='sqlite:///:memory:', description='Database connection string', metadata=[MinLen(min_length=1)])] = 'sqlite:///:memory:'
Database connection string
- Constraints:
min_length = 1
- field desires: Annotated[dict[str, HomieDesireParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie desires', metadata=[MinLen(min_length=1)])] = None
Parameters for Homie desires
- Constraints:
min_length = 1
- field devices: Annotated[dict[str, HomieDeviceParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie devices', metadata=[MinLen(min_length=1)])] = None
Parameters for Homie devices
- Constraints:
min_length = 1
- field dryrun: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Determine if changes applied')] = False
Determine if changes applied
- field enconfig: Annotated[ConfigParams | None, Field(None, description='Parameters for Config instance')] = None
Parameters for Config instance
- field encrypts: Annotated[CryptsParams | None, Field(None, description='Parameters for Crypts instance')] = None
Parameters for Crypts instance
- field enlogger: Annotated[LoggerParams | None, Field(None, description='Parameters for Logger instance')] = None
Parameters for Logger instance
- field filters: Annotated[HomieFiltersParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieFiltersParams, description='Determine object instantiation')] [Optional]
Determine object instantiation
- field groups: Annotated[dict[str, HomieGroupParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie groups', metadata=[MinLen(min_length=1)])] = None
Parameters for Homie groups
- Constraints:
min_length = 1
- field origins: Annotated[dict[str, HomieOriginParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie origins', metadata=[MinLen(min_length=1)])] = None
Parameters for Homie origins
- Constraints:
min_length = 1
- field persists: Annotated[dict[str, HomiePersistParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for common persists', metadata=[MinLen(min_length=1)])] = None
Parameters for common persists
- Constraints:
min_length = 1
- field potent: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=True, description='Ignore idempotency in change')] = True
Ignore idempotency in change
- field printer: Annotated[HomiePrinterParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomiePrinterParams, description='Print the stream to console')] [Optional]
Print the stream to console
- field restful: Annotated[RestfulServiceParams, FieldInfo(annotation=NoneType, required=False, default_factory=RestfulServiceParams, description='Parameters for Homie RESTful')] [Optional]
Parameters for Homie RESTful
- field scenes: Annotated[dict[str, HomieSceneParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie scenes', metadata=[MinLen(min_length=1)])] = None
Parameters for Homie scenes
- Constraints:
min_length = 1
- field service: Annotated[HomieServiceParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieServiceParams, description='Parameters for Homie Service')] [Optional]
Parameters for Homie Service
Homie Children#
- pydantic model enhomie.homie.params.HomieOriginParams[source]
Bases:
HomieChildParams
Process and validate the Homie configuration parameters.
Show JSON schema
{ "title": "HomieOriginParams", "description": "Process and validate the Homie configuration parameters.", "type": "object", "properties": { "hubitat": { "anyOf": [ { "$ref": "#/$defs/HubiOriginParams" }, { "type": "null" } ], "default": null, "description": "Connection specific parameters" }, "philips": { "anyOf": [ { "$ref": "#/$defs/PhueOriginParams" }, { "type": "null" } ], "default": null, "description": "Connection specific parameters" }, "ubiquiti": { "anyOf": [ { "$ref": "#/$defs/UbiqOriginParams" }, { "type": "null" } ], "default": null, "description": "Connection specific parameters" } }, "$defs": { "HubiOriginParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "bridge": { "$ref": "#/$defs/enconnect__hubitat__params__BridgeParams", "description": "Connection specific parameters" } }, "required": [ "bridge" ], "title": "HubiOriginParams", "type": "object" }, "PhueOriginParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "bridge": { "$ref": "#/$defs/enconnect__philips__params__BridgeParams", "description": "Connection specific parameters" } }, "required": [ "bridge" ], "title": "PhueOriginParams", "type": "object" }, "RouterParams": { "additionalProperties": false, "description": "Process and validate the class configuration parameters.", "properties": { "server": { "description": "Server address for connection", "minLength": 1, "title": "Server", "type": "string" }, "timeout": { "default": 30, "description": "Timeout connecting to server", "maximum": 300, "minimum": 1, "title": "Timeout", "type": "integer" }, "username": { "description": "Parameter for the integration", "minLength": 1, "title": "Username", "type": "string" }, "password": { "description": "Parameter for the integration", "minLength": 1, "title": "Password", "type": "string" }, "site": { "default": "default", "description": "Parameter for the integration", "minLength": 1, "title": "Site", "type": "string" }, "ssl_verify": { "default": true, "description": "Verify the ceritifcate valid", "title": "Ssl Verify", "type": "boolean" }, "ssl_capem": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Verify the ceritifcate valid", "title": "Ssl Capem" } }, "required": [ "server", "username", "password" ], "title": "RouterParams", "type": "object" }, "UbiqOriginParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "router": { "$ref": "#/$defs/RouterParams", "description": "Connection specific parameters" } }, "required": [ "router" ], "title": "UbiqOriginParams", "type": "object" }, "enconnect__hubitat__params__BridgeParams": { "additionalProperties": false, "description": "Process and validate the class configuration parameters.", "properties": { "server": { "description": "Server address for connection", "minLength": 1, "title": "Server", "type": "string" }, "timeout": { "default": 30, "description": "Timeout connecting to server", "maximum": 300, "minimum": 1, "title": "Timeout", "type": "integer" }, "appid": { "description": "Parameter for the integration", "minimum": 0, "title": "Appid", "type": "integer" }, "token": { "description": "Parameter for the integration", "minLength": 1, "title": "Token", "type": "string" }, "ssl_verify": { "default": false, "description": "Verify the ceritifcate valid", "title": "Ssl Verify", "type": "boolean" }, "ssl_capem": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Verify the ceritifcate valid", "title": "Ssl Capem" } }, "required": [ "server", "appid", "token" ], "title": "BridgeParams", "type": "object" }, "enconnect__philips__params__BridgeParams": { "additionalProperties": false, "description": "Process and validate the class configuration parameters.", "properties": { "server": { "description": "Server address for connection", "minLength": 1, "title": "Server", "type": "string" }, "timeout": { "default": 30, "description": "Timeout connecting to server", "maximum": 300, "minimum": 1, "title": "Timeout", "type": "integer" }, "token": { "description": "Parameter for the integration", "minLength": 1, "title": "Token", "type": "string" }, "ssl_verify": { "default": true, "description": "Verify the ceritifcate valid", "title": "Ssl Verify", "type": "boolean" }, "ssl_capem": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Verify the ceritifcate valid", "title": "Ssl Capem" } }, "required": [ "server", "token" ], "title": "BridgeParams", "type": "object" } }, "additionalProperties": false }
- Config:
extra: str = forbid
- Fields:
- field hubitat: Annotated[HubiOriginParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Connection specific parameters')] = None
Connection specific parameters
- field philips: Annotated[PhueOriginParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Connection specific parameters')] = None
Connection specific parameters
- field ubiquiti: Annotated[UbiqOriginParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Connection specific parameters')] = None
Connection specific parameters
- pydantic model enhomie.homie.params.HomieDeviceParams[source]
Bases:
HomieChildParams
Process and validate the Homie configuration parameters.
Show JSON schema
{ "title": "HomieDeviceParams", "description": "Process and validate the Homie configuration parameters.", "type": "object", "properties": { "origin": { "description": "Origin where device exists", "minLength": 1, "title": "Origin", "type": "string" }, "label": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Device name in the origin", "title": "Label" }, "unique": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Unique identifier in origin", "title": "Unique" } }, "additionalProperties": false, "required": [ "origin" ] }
- Config:
extra: str = forbid
- Fields:
- field label: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Device name in the origin', metadata=[MinLen(min_length=1)])] = None
Device name in the origin
- Constraints:
min_length = 1
- pydantic model enhomie.homie.params.HomieGroupParams[source]
Bases:
HomieChildParams
Process and validate the Homie configuration parameters.
Show JSON schema
{ "title": "HomieGroupParams", "description": "Process and validate the Homie configuration parameters.", "type": "object", "properties": { "origin": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Origin where group exists", "title": "Origin" }, "label": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Group name in the origin", "title": "Label" }, "devices": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "List of devices in group", "title": "Devices" } }, "additionalProperties": false }
- Config:
extra: str = forbid
- Fields:
- field devices: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='List of devices in group', metadata=[MinLen(min_length=1)])] = None
List of devices in group
- Constraints:
min_length = 1
- pydantic model enhomie.homie.params.HomieSceneParams[source]
Bases:
HomieChildParams
Process and validate the Homie configuration parameters.
Show JSON schema
{ "title": "HomieSceneParams", "description": "Process and validate the Homie configuration parameters.", "type": "object", "properties": { "label": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Scene name in the origin", "title": "Label" }, "stage": { "$ref": "#/$defs/HomieStageParams", "description": "Default device scene config" }, "devices": { "anyOf": [ { "additionalProperties": { "$ref": "#/$defs/HomieStageParams" }, "minProperties": 1, "type": "object" }, { "type": "null" } ], "default": null, "description": "Device specific scene config", "title": "Devices" } }, "$defs": { "HomieStageParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "state": { "anyOf": [ { "enum": [ "poweron", "nopower" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Setting for the light state", "title": "State" }, "color": { "anyOf": [ { "maxLength": 6, "minLength": 6, "type": "string" }, { "type": "null" } ], "default": null, "description": "Setting for the light color", "title": "Color" }, "level": { "anyOf": [ { "maximum": 100, "minimum": 0, "type": "integer" }, { "type": "null" } ], "default": null, "description": "Setting for the light level", "title": "Level" } }, "title": "HomieStageParams", "type": "object" } }, "additionalProperties": false }
- Config:
extra: str = forbid
- Fields:
- field devices: Annotated[dict[str, HomieStageParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Device specific scene config', metadata=[MinLen(min_length=1)])] = None
Device specific scene config
- Constraints:
min_length = 1
- field label: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Scene name in the origin', metadata=[MinLen(min_length=1)])] = None
Scene name in the origin
- Constraints:
min_length = 1
- field stage: Annotated[HomieStageParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieStageParams, description='Default device scene config')] [Optional]
Default device scene config
- pydantic model enhomie.homie.params.HomieDesireParams[source]
Bases:
HomieChildParams
Process and validate the Homie configuration parameters.
Show JSON schema
{ "title": "HomieDesireParams", "description": "Process and validate the Homie configuration parameters.", "type": "object", "properties": { "devices": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Devices that are in scope", "title": "Devices" }, "groups": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Groups that are in scope", "title": "Groups" }, "stage": { "anyOf": [ { "$ref": "#/$defs/HomieStageParams" }, { "type": "null" } ], "default": null, "description": "Default device scene config" }, "scene": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Update the group light scene", "title": "Scene" }, "store": { "anyOf": [ { "items": { "$ref": "#/$defs/HomieStoreParams" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Update values in database", "title": "Store" }, "wheres": { "anyOf": [ { "items": { "$ref": "#/$defs/HomieWhereParams" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Plugins for the conditions", "title": "Wheres" }, "pause": { "default": 0, "description": "Delay before acting again", "maximum": 86400, "minimum": 0, "title": "Pause", "type": "integer" }, "delay": { "default": true, "description": "Enforce pause on initial", "title": "Delay", "type": "boolean" }, "weight": { "default": 0, "description": "Precedence when multiple", "maximum": 1000.0, "minimum": 0, "title": "Weight", "type": "integer" } }, "$defs": { "DriverBltnPeriodParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "start": { "anyOf": [ { "pattern": "^([01]\\d|2[0-3]):([0-5]\\d)$", "type": "string" }, { "type": "null" } ], "default": null, "description": "Start time in 24 hour format", "title": "Start" }, "stop": { "anyOf": [ { "pattern": "^([01]\\d|2[0-3]):([0-5]\\d)$", "type": "string" }, { "type": "null" } ], "default": null, "description": "Stop time in 24 hour format", "title": "Stop" }, "days": { "anyOf": [ { "items": { "enum": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ], "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Days of the week in scope", "title": "Days" }, "tzname": { "default": "UTC", "description": "Timezone parsed with Time", "minLength": 1, "title": "Tzname", "type": "string" } }, "title": "DriverBltnPeriodParams", "type": "object" }, "DriverBltnStoreParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "unique": { "description": "Unique key for the value", "minLength": 1, "title": "Unique", "type": "string" }, "operator": { "description": "Operator for the condition", "enum": [ "present", "absent", "eq", "neq", "lt", "lte", "gt", "gte" ], "title": "Operator", "type": "string" }, "value": { "anyOf": [ { "type": "integer" }, { "type": "number" }, { "type": "boolean" }, { "type": "string" }, { "type": "null" } ], "default": null, "description": "Value for the condition", "title": "Value" } }, "required": [ "unique", "operator" ], "title": "DriverBltnStoreParams", "type": "object" }, "DriverPhueChangeParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "devices": { "description": "Devices that are in scope", "items": { "type": "string" }, "minItems": 1, "title": "Devices", "type": "array" }, "sensors": { "anyOf": [ { "items": { "enum": [ "button1", "button2", "button3", "button4", "contact", "motion", "temperature" ], "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Sensors that will be matched", "title": "Sensors" }, "since": { "default": 0, "description": "Minimum time since changed", "minimum": 0, "title": "Since", "type": "integer" } }, "required": [ "devices" ], "title": "DriverPhueChangeParams", "type": "object" }, "DriverUbiqClientParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "clients": { "description": "Clients that are in scope", "items": { "type": "string" }, "minItems": 1, "title": "Clients", "type": "array" }, "since": { "default": 0, "description": "Minimum time since changed", "minimum": 0, "title": "Since", "type": "integer" } }, "required": [ "clients" ], "title": "DriverUbiqClientParams", "type": "object" }, "HomieStageParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "state": { "anyOf": [ { "enum": [ "poweron", "nopower" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Setting for the light state", "title": "State" }, "color": { "anyOf": [ { "maxLength": 6, "minLength": 6, "type": "string" }, { "type": "null" } ], "default": null, "description": "Setting for the light color", "title": "Color" }, "level": { "anyOf": [ { "maximum": 100, "minimum": 0, "type": "integer" }, { "type": "null" } ], "default": null, "description": "Setting for the light level", "title": "Level" } }, "title": "HomieStageParams", "type": "object" }, "HomieStoreParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "unique": { "description": "Unique key for the value", "minLength": 1, "title": "Unique", "type": "string" }, "value": { "anyOf": [ { "type": "integer" }, { "type": "number" }, { "type": "boolean" }, { "type": "string" }, { "type": "null" } ], "description": "Value stored at unique", "title": "Value" }, "value_unit": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Unit for persist value", "title": "Value Unit" }, "value_label": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Label for persist value", "title": "Value Label" }, "value_icon": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon for persist value", "title": "Value Icon" }, "about": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "About the persist entry", "title": "About" }, "about_label": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Label for persist entry", "title": "About Label" }, "about_icon": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon for persist entry", "title": "About Icon" }, "level": { "anyOf": [ { "enum": [ "failure", "information", "success", "warning" ], "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Severity of persist entry", "title": "Level" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Tags for persist entry", "title": "Tags" }, "expire": { "anyOf": [ { "minLength": 1, "pattern": "^(\\d+(s|m|h|d|w|y))*$", "type": "string" }, { "type": "null" } ], "default": "1d", "description": "After when the key expires", "examples": [ "1h", "1h30m", "1d" ], "title": "Expire" } }, "required": [ "unique", "value" ], "title": "HomieStoreParams", "type": "object" }, "HomieWhereParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.\n\n.. note::\n When using the `default` `family`, the conditons are\n in an `AND` relationship. If another name is given\n for `family`, those will be with an OR relationship.", "properties": { "negate": { "default": false, "description": "Invert conditional outcome", "title": "Negate", "type": "boolean" }, "family": { "default": "default", "description": "Combine conditions in group", "minLength": 1, "title": "Family", "type": "string" }, "builtins_store": { "anyOf": [ { "$ref": "#/$defs/DriverBltnStoreParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" }, "builtins_period": { "anyOf": [ { "$ref": "#/$defs/DriverBltnPeriodParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" }, "philips_change": { "anyOf": [ { "$ref": "#/$defs/DriverPhueChangeParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" }, "ubiquiti_client": { "anyOf": [ { "$ref": "#/$defs/DriverUbiqClientParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" } }, "title": "HomieWhereParams", "type": "object" } }, "additionalProperties": false }
- Config:
extra: str = forbid
- Fields:
- field delay: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=True, description='Enforce pause on initial')] = True
Enforce pause on initial
- field devices: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Devices that are in scope', metadata=[MinLen(min_length=1)])] = None
Devices that are in scope
- Constraints:
min_length = 1
- field groups: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Groups that are in scope', metadata=[MinLen(min_length=1)])] = None
Groups that are in scope
- Constraints:
min_length = 1
- field pause: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=0, description='Delay before acting again', metadata=[Ge(ge=0), Le(le=86400)])] = 0
Delay before acting again
- Constraints:
ge = 0
le = 86400
- field scene: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Update the group light scene', metadata=[MinLen(min_length=1)])] = None
Update the group light scene
- Constraints:
min_length = 1
- field stage: Annotated[HomieStageParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Default device scene config')] = None
Default device scene config
- field store: Annotated[list[HomieStoreParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Update values in database', metadata=[MinLen(min_length=1)])] = None
Update values in database
- Constraints:
min_length = 1
- field weight: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=0, description='Precedence when multiple', metadata=[Ge(ge=0), Le(le=1000.0)])] = 0
Precedence when multiple
- Constraints:
ge = 0
le = 1000.0
- field wheres: Annotated[list[HomieWhereParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugins for the conditions', metadata=[MinLen(min_length=1)])] = None
Plugins for the conditions
- Constraints:
min_length = 1
- pydantic model enhomie.homie.params.HomieAspireParams[source]
Bases:
HomieChildParams
Process and validate the Homie configuration parameters.
Show JSON schema
{ "title": "HomieAspireParams", "description": "Process and validate the Homie configuration parameters.", "type": "object", "properties": { "devices": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Devices that are in scope", "title": "Devices" }, "groups": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Groups that are in scope", "title": "Groups" }, "stage": { "anyOf": [ { "$ref": "#/$defs/HomieStageParams" }, { "type": "null" } ], "default": null, "description": "Default device scene config" }, "scene": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Update the group light scene", "title": "Scene" }, "store": { "anyOf": [ { "items": { "$ref": "#/$defs/HomieStoreParams" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Update values in database", "title": "Store" }, "occurs": { "anyOf": [ { "items": { "$ref": "#/$defs/HomieOccurParams" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Plugins for the conditions", "title": "Occurs" }, "wheres": { "anyOf": [ { "items": { "$ref": "#/$defs/HomieWhereParams" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Plugins for the conditions", "title": "Wheres" }, "pause": { "default": 3, "description": "Delay before acting again", "maximum": 86400, "minimum": 1, "title": "Pause", "type": "integer" } }, "$defs": { "DriverBltnPeriodParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "start": { "anyOf": [ { "pattern": "^([01]\\d|2[0-3]):([0-5]\\d)$", "type": "string" }, { "type": "null" } ], "default": null, "description": "Start time in 24 hour format", "title": "Start" }, "stop": { "anyOf": [ { "pattern": "^([01]\\d|2[0-3]):([0-5]\\d)$", "type": "string" }, { "type": "null" } ], "default": null, "description": "Stop time in 24 hour format", "title": "Stop" }, "days": { "anyOf": [ { "items": { "enum": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ], "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Days of the week in scope", "title": "Days" }, "tzname": { "default": "UTC", "description": "Timezone parsed with Time", "minLength": 1, "title": "Tzname", "type": "string" } }, "title": "DriverBltnPeriodParams", "type": "object" }, "DriverBltnRegexpParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "patterns": { "description": "Regular expression match", "items": { "type": "string" }, "minItems": 1, "title": "Patterns", "type": "array" }, "complete": { "default": false, "description": "Perform complete match", "title": "Complete", "type": "boolean" } }, "required": [ "patterns" ], "title": "DriverBltnRegexpParams", "type": "object" }, "DriverBltnStoreParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "unique": { "description": "Unique key for the value", "minLength": 1, "title": "Unique", "type": "string" }, "operator": { "description": "Operator for the condition", "enum": [ "present", "absent", "eq", "neq", "lt", "lte", "gt", "gte" ], "title": "Operator", "type": "string" }, "value": { "anyOf": [ { "type": "integer" }, { "type": "number" }, { "type": "boolean" }, { "type": "string" }, { "type": "null" } ], "default": null, "description": "Value for the condition", "title": "Value" } }, "required": [ "unique", "operator" ], "title": "DriverBltnStoreParams", "type": "object" }, "DriverPhueButtonParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "device": { "description": "Device that is in scope", "minLength": 1, "title": "Device", "type": "string" }, "events": { "anyOf": [ { "items": { "enum": [ "initial_press", "long_release", "short_release" ], "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Events that will be matched", "title": "Events" }, "sensor": { "description": "Sensor that will be matched", "enum": [ "button1", "button2", "button3", "button4" ], "title": "Sensor", "type": "string" } }, "required": [ "device", "sensor" ], "title": "DriverPhueButtonParams", "type": "object" }, "DriverPhueChangeParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "devices": { "description": "Devices that are in scope", "items": { "type": "string" }, "minItems": 1, "title": "Devices", "type": "array" }, "sensors": { "anyOf": [ { "items": { "enum": [ "button1", "button2", "button3", "button4", "contact", "motion", "temperature" ], "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Sensors that will be matched", "title": "Sensors" }, "since": { "default": 0, "description": "Minimum time since changed", "minimum": 0, "title": "Since", "type": "integer" } }, "required": [ "devices" ], "title": "DriverPhueChangeParams", "type": "object" }, "DriverPhueContactParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "device": { "description": "Device that is in scope", "minLength": 1, "title": "Device", "type": "string" }, "states": { "anyOf": [ { "items": { "enum": [ "contact", "no_contact" ], "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "States that will be matched", "title": "States" } }, "required": [ "device" ], "title": "DriverPhueContactParams", "type": "object" }, "DriverPhueMotionParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "device": { "description": "Device that is in scope", "minLength": 1, "title": "Device", "type": "string" }, "states": { "anyOf": [ { "items": { "enum": [ "motion", "no_motion" ], "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "States that will be matched", "title": "States" } }, "required": [ "device" ], "title": "DriverPhueMotionParams", "type": "object" }, "DriverPhueSceneParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "scene": { "description": "Scene that is in scope", "minLength": 1, "title": "Scene", "type": "string" }, "group": { "description": "Group that is in scope", "minLength": 1, "title": "Group", "type": "string" }, "states": { "anyOf": [ { "items": { "enum": [ "active", "inactive" ], "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "States that will be matched", "title": "States" } }, "required": [ "scene", "group" ], "title": "DriverPhueSceneParams", "type": "object" }, "DriverUbiqClientParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "clients": { "description": "Clients that are in scope", "items": { "type": "string" }, "minItems": 1, "title": "Clients", "type": "array" }, "since": { "default": 0, "description": "Minimum time since changed", "minimum": 0, "title": "Since", "type": "integer" } }, "required": [ "clients" ], "title": "DriverUbiqClientParams", "type": "object" }, "HomieOccurParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "builtins_regexp": { "anyOf": [ { "$ref": "#/$defs/DriverBltnRegexpParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" }, "philips_button": { "anyOf": [ { "$ref": "#/$defs/DriverPhueButtonParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" }, "philips_contact": { "anyOf": [ { "$ref": "#/$defs/DriverPhueContactParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" }, "philips_motion": { "anyOf": [ { "$ref": "#/$defs/DriverPhueMotionParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" }, "philips_scene": { "anyOf": [ { "$ref": "#/$defs/DriverPhueSceneParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" } }, "title": "HomieOccurParams", "type": "object" }, "HomieStageParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "state": { "anyOf": [ { "enum": [ "poweron", "nopower" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Setting for the light state", "title": "State" }, "color": { "anyOf": [ { "maxLength": 6, "minLength": 6, "type": "string" }, { "type": "null" } ], "default": null, "description": "Setting for the light color", "title": "Color" }, "level": { "anyOf": [ { "maximum": 100, "minimum": 0, "type": "integer" }, { "type": "null" } ], "default": null, "description": "Setting for the light level", "title": "Level" } }, "title": "HomieStageParams", "type": "object" }, "HomieStoreParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "unique": { "description": "Unique key for the value", "minLength": 1, "title": "Unique", "type": "string" }, "value": { "anyOf": [ { "type": "integer" }, { "type": "number" }, { "type": "boolean" }, { "type": "string" }, { "type": "null" } ], "description": "Value stored at unique", "title": "Value" }, "value_unit": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Unit for persist value", "title": "Value Unit" }, "value_label": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Label for persist value", "title": "Value Label" }, "value_icon": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon for persist value", "title": "Value Icon" }, "about": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "About the persist entry", "title": "About" }, "about_label": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Label for persist entry", "title": "About Label" }, "about_icon": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon for persist entry", "title": "About Icon" }, "level": { "anyOf": [ { "enum": [ "failure", "information", "success", "warning" ], "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Severity of persist entry", "title": "Level" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Tags for persist entry", "title": "Tags" }, "expire": { "anyOf": [ { "minLength": 1, "pattern": "^(\\d+(s|m|h|d|w|y))*$", "type": "string" }, { "type": "null" } ], "default": "1d", "description": "After when the key expires", "examples": [ "1h", "1h30m", "1d" ], "title": "Expire" } }, "required": [ "unique", "value" ], "title": "HomieStoreParams", "type": "object" }, "HomieWhereParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.\n\n.. note::\n When using the `default` `family`, the conditons are\n in an `AND` relationship. If another name is given\n for `family`, those will be with an OR relationship.", "properties": { "negate": { "default": false, "description": "Invert conditional outcome", "title": "Negate", "type": "boolean" }, "family": { "default": "default", "description": "Combine conditions in group", "minLength": 1, "title": "Family", "type": "string" }, "builtins_store": { "anyOf": [ { "$ref": "#/$defs/DriverBltnStoreParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" }, "builtins_period": { "anyOf": [ { "$ref": "#/$defs/DriverBltnPeriodParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" }, "philips_change": { "anyOf": [ { "$ref": "#/$defs/DriverPhueChangeParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" }, "ubiquiti_client": { "anyOf": [ { "$ref": "#/$defs/DriverUbiqClientParams" }, { "type": "null" } ], "default": null, "description": "Plugin for the operations" } }, "title": "HomieWhereParams", "type": "object" } }, "additionalProperties": false }
- Config:
extra: str = forbid
- Fields:
- field devices: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Devices that are in scope', metadata=[MinLen(min_length=1)])] = None
Devices that are in scope
- Constraints:
min_length = 1
- field groups: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Groups that are in scope', metadata=[MinLen(min_length=1)])] = None
Groups that are in scope
- Constraints:
min_length = 1
- field occurs: Annotated[list[HomieOccurParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugins for the conditions', metadata=[MinLen(min_length=1)])] = None
Plugins for the conditions
- Constraints:
min_length = 1
- field pause: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=3, description='Delay before acting again', metadata=[Ge(ge=1), Le(le=86400)])] = 3
Delay before acting again
- Constraints:
ge = 1
le = 86400
- field scene: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Update the group light scene', metadata=[MinLen(min_length=1)])] = None
Update the group light scene
- Constraints:
min_length = 1
- field stage: Annotated[HomieStageParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Default device scene config')] = None
Default device scene config
- field store: Annotated[list[HomieStoreParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Update values in database', metadata=[MinLen(min_length=1)])] = None
Update values in database
- Constraints:
min_length = 1
- field wheres: Annotated[list[HomieWhereParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugins for the conditions', metadata=[MinLen(min_length=1)])] = None
Plugins for the conditions
- Constraints:
min_length = 1
Persistent Defaults#
- pydantic model enhomie.homie.params.HomiePersistParams[source]
Bases:
HomieParamsModel
Process and validate the Homie configuration parameters.
Show JSON schema
{ "title": "HomiePersistParams", "description": "Process and validate the Homie configuration parameters.", "type": "object", "properties": { "value_unit": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Unit for persist value", "title": "Value Unit" }, "value_label": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Label for persist value", "title": "Value Label" }, "value_icon": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon for persist value", "title": "Value Icon" }, "about": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "About the persist entry", "title": "About" }, "about_label": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Label for persist entry", "title": "About Label" }, "about_icon": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Icon for persist entry", "title": "About Icon" }, "level": { "anyOf": [ { "enum": [ "failure", "information", "success", "warning" ], "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Severity of persist entry", "title": "Level" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Tags for persist entry", "title": "Tags" }, "expire": { "anyOf": [ { "minLength": 1, "pattern": "^(\\d+(s|m|h|d|w|y))*$", "type": "string" }, { "type": "null" } ], "default": null, "description": "After when the key expires", "examples": [ "1h", "1h30m", "1d" ], "title": "Expire" } }, "additionalProperties": false }
- Config:
extra: str = forbid
- Fields:
- field about: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='About the persist entry', metadata=[MinLen(min_length=1)])] = None
About the persist entry
- Constraints:
min_length = 1
- field about_icon: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Icon for persist entry', metadata=[MinLen(min_length=1)])] = None
Icon for persist entry
- Constraints:
min_length = 1
- field about_label: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Label for persist entry', metadata=[MinLen(min_length=1)])] = None
Label for persist entry
- Constraints:
min_length = 1
- field expire: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='After when the key expires', examples=['1h', '1h30m', '1d'], metadata=[MinLen(min_length=1), _PydanticGeneralMetadata(pattern=re.compile('^(\\d+(s|m|h|d|w|y))*$'))])] = None
After when the key expires
- Constraints:
min_length = 1
pattern = re.compile(‘^(\d+(s|m|h|d|w|y))*$’)
- field level: Annotated[Literal['failure', 'information', 'success', 'warning'] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Severity of persist entry', metadata=[MinLen(min_length=1)])] = None
Severity of persist entry
- Constraints:
min_length = 1
- field tags: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Tags for persist entry', metadata=[MinLen(min_length=1)])] = None
Tags for persist entry
- Constraints:
min_length = 1
- field value_icon: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Icon for persist value', metadata=[MinLen(min_length=1)])] = None
Icon for persist value
- Constraints:
min_length = 1
Multithread Service#
- pydantic model enhomie.homie.params.HomieServiceParams[source]
Bases:
HomieParamsModel
Process and validate the Homie configuration parameters.
Show JSON schema
{ "title": "HomieServiceParams", "description": "Process and validate the Homie configuration parameters.", "type": "object", "properties": { "respite": { "$ref": "#/$defs/HomieServiceRespiteParams", "description": "When operates are performed" }, "timeout": { "$ref": "#/$defs/HomieServiceTimeoutParams", "description": "Override source or defaults" }, "members": { "$ref": "#/$defs/HomieServiceMembersParams", "description": "Which members are created" } }, "$defs": { "HomieServiceMembersParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "actions": { "default": true, "description": "Determine whether created", "title": "Actions", "type": "boolean" }, "streams": { "default": true, "description": "Determine whether created", "title": "Streams", "type": "boolean" }, "updates": { "default": true, "description": "Determine whether created", "title": "Updates", "type": "boolean" }, "restful": { "default": false, "description": "Determine whether created", "title": "Restful", "type": "boolean" } }, "title": "HomieServiceMembersParams", "type": "object" }, "HomieServiceRespiteParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "desire": { "default": 60, "description": "How often desires performed", "maximum": 900, "minimum": 1, "title": "Desire", "type": "integer" }, "update": { "default": 60, "description": "How often updates performed", "maximum": 900, "minimum": 1, "title": "Update", "type": "integer" }, "health": { "default": 3, "description": "How often health is checked", "maximum": 15, "minimum": 1, "title": "Health", "type": "integer" } }, "title": "HomieServiceRespiteParams", "type": "object" }, "HomieServiceTimeoutParams": { "additionalProperties": false, "description": "Process and validate the Homie configuration parameters.", "properties": { "action": { "default": 5, "description": "Override the actions timeout", "maximum": 30, "minimum": 1, "title": "Action", "type": "integer" }, "update": { "default": 3, "description": "Override the updates timeout", "maximum": 30, "minimum": 1, "title": "Update", "type": "integer" }, "stream": { "default": 60, "description": "Override the stream timeout", "maximum": 900, "minimum": 1, "title": "Stream", "type": "integer" } }, "title": "HomieServiceTimeoutParams", "type": "object" } }, "additionalProperties": false }
- Config:
extra: str = forbid
- Fields:
- field members: Annotated[HomieServiceMembersParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieServiceMembersParams, description='Which members are created')] [Optional]
Which members are created
- field respite: Annotated[HomieServiceRespiteParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieServiceRespiteParams, description='When operates are performed')] [Optional]
When operates are performed
- field timeout: Annotated[HomieServiceTimeoutParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieServiceTimeoutParams, description='Override source or defaults')] [Optional]
Override source or defaults
Restful Service#
Hubitat Origin#
- pydantic model enhomie.hubitat.params.HubiOriginParams[source]
Bases:
HomieParamsModel
Process and validate the Homie configuration parameters.
Show JSON schema
{ "title": "HubiOriginParams", "description": "Process and validate the Homie configuration parameters.", "type": "object", "properties": { "bridge": { "$ref": "#/$defs/BridgeParams", "description": "Connection specific parameters" } }, "$defs": { "BridgeParams": { "additionalProperties": false, "description": "Process and validate the class configuration parameters.", "properties": { "server": { "description": "Server address for connection", "minLength": 1, "title": "Server", "type": "string" }, "timeout": { "default": 30, "description": "Timeout connecting to server", "maximum": 300, "minimum": 1, "title": "Timeout", "type": "integer" }, "appid": { "description": "Parameter for the integration", "minimum": 0, "title": "Appid", "type": "integer" }, "token": { "description": "Parameter for the integration", "minLength": 1, "title": "Token", "type": "string" }, "ssl_verify": { "default": false, "description": "Verify the ceritifcate valid", "title": "Ssl Verify", "type": "boolean" }, "ssl_capem": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Verify the ceritifcate valid", "title": "Ssl Capem" } }, "required": [ "server", "appid", "token" ], "title": "BridgeParams", "type": "object" } }, "additionalProperties": false, "required": [ "bridge" ] }
- Config:
extra: str = forbid
- Fields:
- field bridge: Annotated[BridgeParams, FieldInfo(annotation=NoneType, required=True, description='Connection specific parameters')] [Required]
Connection specific parameters
Philips Origin#
- pydantic model enhomie.philips.params.PhueOriginParams[source]
Bases:
HomieParamsModel
Process and validate the Homie configuration parameters.
Show JSON schema
{ "title": "PhueOriginParams", "description": "Process and validate the Homie configuration parameters.", "type": "object", "properties": { "bridge": { "$ref": "#/$defs/BridgeParams", "description": "Connection specific parameters" } }, "$defs": { "BridgeParams": { "additionalProperties": false, "description": "Process and validate the class configuration parameters.", "properties": { "server": { "description": "Server address for connection", "minLength": 1, "title": "Server", "type": "string" }, "timeout": { "default": 30, "description": "Timeout connecting to server", "maximum": 300, "minimum": 1, "title": "Timeout", "type": "integer" }, "token": { "description": "Parameter for the integration", "minLength": 1, "title": "Token", "type": "string" }, "ssl_verify": { "default": true, "description": "Verify the ceritifcate valid", "title": "Ssl Verify", "type": "boolean" }, "ssl_capem": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Verify the ceritifcate valid", "title": "Ssl Capem" } }, "required": [ "server", "token" ], "title": "BridgeParams", "type": "object" } }, "additionalProperties": false, "required": [ "bridge" ] }
- Config:
extra: str = forbid
- Fields:
- field bridge: Annotated[BridgeParams, FieldInfo(annotation=NoneType, required=True, description='Connection specific parameters')] [Required]
Connection specific parameters
Ubiquiti Origin#
- pydantic model enhomie.ubiquiti.params.UbiqOriginParams[source]
Bases:
HomieParamsModel
Process and validate the Homie configuration parameters.
Show JSON schema
{ "title": "UbiqOriginParams", "description": "Process and validate the Homie configuration parameters.", "type": "object", "properties": { "router": { "$ref": "#/$defs/RouterParams", "description": "Connection specific parameters" } }, "$defs": { "RouterParams": { "additionalProperties": false, "description": "Process and validate the class configuration parameters.", "properties": { "server": { "description": "Server address for connection", "minLength": 1, "title": "Server", "type": "string" }, "timeout": { "default": 30, "description": "Timeout connecting to server", "maximum": 300, "minimum": 1, "title": "Timeout", "type": "integer" }, "username": { "description": "Parameter for the integration", "minLength": 1, "title": "Username", "type": "string" }, "password": { "description": "Parameter for the integration", "minLength": 1, "title": "Password", "type": "string" }, "site": { "default": "default", "description": "Parameter for the integration", "minLength": 1, "title": "Site", "type": "string" }, "ssl_verify": { "default": true, "description": "Verify the ceritifcate valid", "title": "Ssl Verify", "type": "boolean" }, "ssl_capem": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Verify the ceritifcate valid", "title": "Ssl Capem" } }, "required": [ "server", "username", "password" ], "title": "RouterParams", "type": "object" } }, "additionalProperties": false, "required": [ "router" ] }
- Config:
extra: str = forbid
- Fields:
- field router: Annotated[RouterParams, FieldInfo(annotation=NoneType, required=True, description='Connection specific parameters')] [Required]
Connection specific parameters
Builtin Plugins#
- pydantic model enhomie.builtins.params.DriverBltnPeriodParams[source]
Bases:
HomieParamsModel
Process and validate the Homie configuration parameters.
Show JSON schema
{ "title": "DriverBltnPeriodParams", "description": "Process and validate the Homie configuration parameters.", "type": "object", "properties": { "start": { "anyOf": [ { "pattern": "^([01]\\d|2[0-3]):([0-5]\\d)$", "type": "string" }, { "type": "null" } ], "default": null, "description": "Start time in 24 hour format", "title": "Start" }, "stop": { "anyOf": [ { "pattern": "^([01]\\d|2[0-3]):([0-5]\\d)$", "type": "string" }, { "type": "null" } ], "default": null, "description": "Stop time in 24 hour format", "title": "Stop" }, "days": { "anyOf": [ { "items": { "enum": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ], "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Days of the week in scope", "title": "Days" }, "tzname": { "default": "UTC", "description": "Timezone parsed with Time", "minLength": 1, "title": "Tzname", "type": "string" } }, "additionalProperties": false }
- Config:
extra: str = forbid
- Fields:
- field days: Annotated[list[Literal['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Days of the week in scope', metadata=[MinLen(min_length=1)])] = None
Days of the week in scope
- Constraints:
min_length = 1
- field start: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Start time in 24 hour format', metadata=[_PydanticGeneralMetadata(pattern=re.compile('^([01]\\d|2[0-3]):([0-5]\\d)$'))])] = None
Start time in 24 hour format
- Constraints:
pattern = re.compile(‘^([01]\d|2[0-3]):([0-5]\d)$’)
- field stop: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Stop time in 24 hour format', metadata=[_PydanticGeneralMetadata(pattern=re.compile('^([01]\\d|2[0-3]):([0-5]\\d)$'))])] = None
Stop time in 24 hour format
- Constraints:
pattern = re.compile(‘^([01]\d|2[0-3]):([0-5]\d)$’)
- pydantic model enhomie.builtins.params.DriverBltnRegexpParams[source]
Bases:
HomieParamsModel
Process and validate the Homie configuration parameters.
Show JSON schema
{ "title": "DriverBltnRegexpParams", "description": "Process and validate the Homie configuration parameters.", "type": "object", "properties": { "patterns": { "description": "Regular expression match", "items": { "type": "string" }, "minItems": 1, "title": "Patterns", "type": "array" }, "complete": { "default": false, "description": "Perform complete match", "title": "Complete", "type": "boolean" } }, "additionalProperties": false, "required": [ "patterns" ] }
- Config:
extra: str = forbid
- Fields:
- pydantic model enhomie.builtins.params.DriverBltnStoreParams[source]
Bases:
HomieParamsModel
Process and validate the Homie configuration parameters.
Show JSON schema
{ "title": "DriverBltnStoreParams", "description": "Process and validate the Homie configuration parameters.", "type": "object", "properties": { "unique": { "description": "Unique key for the value", "minLength": 1, "title": "Unique", "type": "string" }, "operator": { "description": "Operator for the condition", "enum": [ "present", "absent", "eq", "neq", "lt", "lte", "gt", "gte" ], "title": "Operator", "type": "string" }, "value": { "anyOf": [ { "type": "integer" }, { "type": "number" }, { "type": "boolean" }, { "type": "string" }, { "type": "null" } ], "default": null, "description": "Value for the condition", "title": "Value" } }, "additionalProperties": false, "required": [ "unique", "operator" ] }
- Config:
extra: str = forbid
- Fields:
- field operator: Annotated[Literal['present', 'absent', 'eq', 'neq', 'lt', 'lte', 'gt', 'gte'], FieldInfo(annotation=NoneType, required=True, description='Operator for the condition')] [Required]
Operator for the condition
Philips Plugins#
- pydantic model enhomie.philips.params.DriverPhueButtonParams[source]
Bases:
HomieParamsModel
Process and validate the Homie configuration parameters.
Show JSON schema
{ "title": "DriverPhueButtonParams", "description": "Process and validate the Homie configuration parameters.", "type": "object", "properties": { "device": { "description": "Device that is in scope", "minLength": 1, "title": "Device", "type": "string" }, "events": { "anyOf": [ { "items": { "enum": [ "initial_press", "long_release", "short_release" ], "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Events that will be matched", "title": "Events" }, "sensor": { "description": "Sensor that will be matched", "enum": [ "button1", "button2", "button3", "button4" ], "title": "Sensor", "type": "string" } }, "additionalProperties": false, "required": [ "device", "sensor" ] }
- Config:
extra: str = forbid
- Fields:
- field device: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Device that is in scope', metadata=[MinLen(min_length=1)])] [Required]
Device that is in scope
- Constraints:
min_length = 1
- pydantic model enhomie.philips.params.DriverPhueChangeParams[source]
Bases:
HomieParamsModel
Process and validate the Homie configuration parameters.
Show JSON schema
{ "title": "DriverPhueChangeParams", "description": "Process and validate the Homie configuration parameters.", "type": "object", "properties": { "devices": { "description": "Devices that are in scope", "items": { "type": "string" }, "minItems": 1, "title": "Devices", "type": "array" }, "sensors": { "anyOf": [ { "items": { "enum": [ "button1", "button2", "button3", "button4", "contact", "motion", "temperature" ], "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "Sensors that will be matched", "title": "Sensors" }, "since": { "default": 0, "description": "Minimum time since changed", "minimum": 0, "title": "Since", "type": "integer" } }, "additionalProperties": false, "required": [ "devices" ] }
- Config:
extra: str = forbid
- Fields:
- field devices: Annotated[list[str], FieldInfo(annotation=NoneType, required=True, description='Devices that are in scope', metadata=[MinLen(min_length=1)])] [Required]
Devices that are in scope
- Constraints:
min_length = 1
- field sensors: Annotated[list[Literal['button1', 'button2', 'button3', 'button4', 'contact', 'motion', 'temperature']] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Sensors that will be matched', metadata=[MinLen(min_length=1)])] = None
Sensors that will be matched
- Constraints:
min_length = 1
- pydantic model enhomie.philips.params.DriverPhueContactParams[source]
Bases:
HomieParamsModel
Process and validate the Homie configuration parameters.
Show JSON schema
{ "title": "DriverPhueContactParams", "description": "Process and validate the Homie configuration parameters.", "type": "object", "properties": { "device": { "description": "Device that is in scope", "minLength": 1, "title": "Device", "type": "string" }, "states": { "anyOf": [ { "items": { "enum": [ "contact", "no_contact" ], "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "States that will be matched", "title": "States" } }, "additionalProperties": false, "required": [ "device" ] }
- Config:
extra: str = forbid
- Fields:
- pydantic model enhomie.philips.params.DriverPhueMotionParams[source]
Bases:
HomieParamsModel
Process and validate the Homie configuration parameters.
Show JSON schema
{ "title": "DriverPhueMotionParams", "description": "Process and validate the Homie configuration parameters.", "type": "object", "properties": { "device": { "description": "Device that is in scope", "minLength": 1, "title": "Device", "type": "string" }, "states": { "anyOf": [ { "items": { "enum": [ "motion", "no_motion" ], "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "States that will be matched", "title": "States" } }, "additionalProperties": false, "required": [ "device" ] }
- Config:
extra: str = forbid
- Fields:
- pydantic model enhomie.philips.params.DriverPhueSceneParams[source]
Bases:
HomieParamsModel
Process and validate the Homie configuration parameters.
Show JSON schema
{ "title": "DriverPhueSceneParams", "description": "Process and validate the Homie configuration parameters.", "type": "object", "properties": { "scene": { "description": "Scene that is in scope", "minLength": 1, "title": "Scene", "type": "string" }, "group": { "description": "Group that is in scope", "minLength": 1, "title": "Group", "type": "string" }, "states": { "anyOf": [ { "items": { "enum": [ "active", "inactive" ], "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "default": null, "description": "States that will be matched", "title": "States" } }, "additionalProperties": false, "required": [ "scene", "group" ] }
- Config:
extra: str = forbid
- Fields:
- field group: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Group that is in scope', metadata=[MinLen(min_length=1)])] [Required]
Group that is in scope
- Constraints:
min_length = 1
Philips Helpers#
- enhomie.philips.plugins.phue_sensors(source: PhueFetch) dict[str, str] [source]
Return the unique identifier for services on the device.
- Parameters:
source – Dictionary of parameters from the bridge.
- Returns:
Timestamp for the services that have changed.
Ubiquiti Plugins#
- pydantic model enhomie.ubiquiti.params.DriverUbiqClientParams[source]
Bases:
HomieParamsModel
Process and validate the Homie configuration parameters.
Show JSON schema
{ "title": "DriverUbiqClientParams", "description": "Process and validate the Homie configuration parameters.", "type": "object", "properties": { "clients": { "description": "Clients that are in scope", "items": { "type": "string" }, "minItems": 1, "title": "Clients", "type": "array" }, "since": { "default": 0, "description": "Minimum time since changed", "minimum": 0, "title": "Since", "type": "integer" } }, "additionalProperties": false, "required": [ "clients" ] }
- Config:
extra: str = forbid
- Fields:
Ubiquiti Helpers#
Interface JavaScript#
- persist_datagrid(refresh)#
Construct the table with the header using the contents.