enhomie.homie.params package#

Submodules#

enhomie.homie.params.aspire module#

Functions and routines associated with Enasis Network Homie Automate.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

pydantic model enhomie.homie.params.aspire.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

enhomie.homie.params.child module#

Functions and routines associated with Enasis Network Homie Automate.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

pydantic model enhomie.homie.params.child.HomieChildParams[source]#

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomieChildParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {},
   "additionalProperties": false
}

Config:
  • extra: str = forbid

enhomie.homie.params.common module#

Functions and routines associated with Enasis Network Homie Automate.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

pydantic model enhomie.homie.params.common.HomieParamsModel[source]#

Bases: BaseModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomieParamsModel",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {},
   "additionalProperties": false
}

Config:
  • extra: str = forbid

enhomie.homie.params.desire module#

Functions and routines associated with Enasis Network Homie Automate.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

pydantic model enhomie.homie.params.desire.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

enhomie.homie.params.device module#

Functions and routines associated with Enasis Network Homie Automate.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

pydantic model enhomie.homie.params.device.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

field origin: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Origin where device exists', metadata=[MinLen(min_length=1)])] [Required]#

Origin where device exists

Constraints:
  • min_length = 1

field unique: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Unique identifier in origin', metadata=[MinLen(min_length=1)])] = None#

Unique identifier in origin

Constraints:
  • min_length = 1

enhomie.homie.params.group module#

Functions and routines associated with Enasis Network Homie Automate.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

pydantic model enhomie.homie.params.group.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

field label: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Group name in the origin', metadata=[MinLen(min_length=1)])] = None#

Group name in the origin

Constraints:
  • min_length = 1

field origin: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Origin where group exists', metadata=[MinLen(min_length=1)])] = None#

Origin where group exists

Constraints:
  • min_length = 1

enhomie.homie.params.homie module#

Functions and routines associated with Enasis Network Homie Automate.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

pydantic model enhomie.homie.params.homie.HomieFiltersParams[source]#

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomieFiltersParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "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"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field aspires: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Patterns the names must match', metadata=[MinLen(min_length=1)])] = None#

Patterns the names must match

Constraints:
  • min_length = 1

field desires: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Patterns the names must match', metadata=[MinLen(min_length=1)])] = None#

Patterns the names must match

Constraints:
  • min_length = 1

pydantic model enhomie.homie.params.homie.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:
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 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

pydantic model enhomie.homie.params.homie.HomiePrinterParams[source]#

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomiePrinterParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "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"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field action: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Print the actions to console')] = False#

Print the actions to console

field aspire: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Print the aspires to console')] = False#

Print the aspires to console

field desire: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Print the aspires to console')] = False#

Print the aspires to console

field stream: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Print the streams to console')] = False#

Print the streams to console

field update: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Print the updates to console')] = False#

Print the updates to console

enhomie.homie.params.occur module#

Functions and routines associated with Enasis Network Homie Automate.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

pydantic model enhomie.homie.params.occur.HomieOccurParams[source]#

Bases: HomiePluginParams

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomieOccurParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "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"
      }
   },
   "$defs": {
      "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"
      },
      "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"
      },
      "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"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field builtins_regexp: Annotated[DriverBltnRegexpParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')] = None#

Plugin for the operations

field philips_button: Annotated[DriverPhueButtonParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')] = None#

Plugin for the operations

field philips_contact: Annotated[DriverPhueContactParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')] = None#

Plugin for the operations

field philips_motion: Annotated[DriverPhueMotionParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')] = None#

Plugin for the operations

field philips_scene: Annotated[DriverPhueSceneParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')] = None#

Plugin for the operations

enhomie.homie.params.origin module#

Functions and routines associated with Enasis Network Homie Automate.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

pydantic model enhomie.homie.params.origin.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

enhomie.homie.params.persist module#

Functions and routines associated with Enasis Network Homie Automate.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

pydantic model enhomie.homie.params.persist.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

field value_label: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Label for persist value', metadata=[MinLen(min_length=1)])] = None#

Label for persist value

Constraints:
  • min_length = 1

field value_unit: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Unit for persist value', metadata=[MinLen(min_length=1)])] = None#

Unit for persist value

Constraints:
  • min_length = 1

enhomie.homie.params.plugin module#

Functions and routines associated with Enasis Network Homie Automate.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

pydantic model enhomie.homie.params.plugin.HomiePluginParams[source]#

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomiePluginParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {},
   "additionalProperties": false
}

Config:
  • extra: str = forbid

enhomie.homie.params.scene module#

Functions and routines associated with Enasis Network Homie Automate.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

pydantic model enhomie.homie.params.scene.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

enhomie.homie.params.service module#

Functions and routines associated with Enasis Network Homie Automate.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

pydantic model enhomie.homie.params.service.HomieServiceMembersParams[source]#

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomieServiceMembersParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "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"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field actions: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=True, description='Determine whether created')] = True#

Determine whether created

field restful: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Determine whether created')] = False#

Determine whether created

field streams: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=True, description='Determine whether created')] = True#

Determine whether created

field updates: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=True, description='Determine whether created')] = True#

Determine whether created

pydantic model enhomie.homie.params.service.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

pydantic model enhomie.homie.params.service.HomieServiceRespiteParams[source]#

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomieServiceRespiteParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "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"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field desire: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=60, description='How often desires performed', metadata=[Ge(ge=1), Le(le=900)])] = 60#

How often desires performed

Constraints:
  • ge = 1

  • le = 900

field health: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=3, description='How often health is checked', metadata=[Ge(ge=1), Le(le=15)])] = 3#

How often health is checked

Constraints:
  • ge = 1

  • le = 15

field update: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=60, description='How often updates performed', metadata=[Ge(ge=1), Le(le=900)])] = 60#

How often updates performed

Constraints:
  • ge = 1

  • le = 900

pydantic model enhomie.homie.params.service.HomieServiceTimeoutParams[source]#

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomieServiceTimeoutParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "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"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field action: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=5, description='Override the actions timeout', metadata=[Ge(ge=1), Le(le=30)])] = 5#

Override the actions timeout

Constraints:
  • ge = 1

  • le = 30

field stream: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=60, description='Override the stream timeout', metadata=[Ge(ge=1), Le(le=900)])] = 60#

Override the stream timeout

Constraints:
  • ge = 1

  • le = 900

field update: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=3, description='Override the updates timeout', metadata=[Ge(ge=1), Le(le=30)])] = 3#

Override the updates timeout

Constraints:
  • ge = 1

  • le = 30

enhomie.homie.params.stage module#

Functions and routines associated with Enasis Network Homie Automate.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

pydantic model enhomie.homie.params.stage.HomieStageParams[source]#

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomieStageParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "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"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field color: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Setting for the light color', metadata=[MinLen(min_length=6), MaxLen(max_length=6)])] = None#

Setting for the light color

Constraints:
  • min_length = 6

  • max_length = 6

field level: Annotated[int | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Setting for the light level', metadata=[Ge(ge=0), Le(le=100)])] = None#

Setting for the light level

Constraints:
  • ge = 0

  • le = 100

field state: Annotated[Literal['poweron', 'nopower'] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Setting for the light state')] = None#

Setting for the light state

enhomie.homie.params.store module#

Functions and routines associated with Enasis Network Homie Automate.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

pydantic model enhomie.homie.params.store.HomieStoreParams[source]#

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomieStoreParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "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"
      }
   },
   "additionalProperties": false,
   "required": [
      "unique",
      "value"
   ]
}

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))*$'))])] = '1d'#

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 unique: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Unique key for the value', metadata=[MinLen(min_length=1)])] [Required]#

Unique key for the value

Constraints:
  • min_length = 1

field value: Annotated[int | float | bool | str | None, FieldInfo(annotation=NoneType, required=True, description='Value stored at unique')] [Required]#

Value stored at unique

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

field value_label: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Label for persist value', metadata=[MinLen(min_length=1)])] = None#

Label for persist value

Constraints:
  • min_length = 1

field value_unit: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Unit for persist value', metadata=[MinLen(min_length=1)])] = None#

Unit for persist value

Constraints:
  • min_length = 1

enhomie.homie.params.where module#

Functions and routines associated with Enasis Network Homie Automate.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

pydantic model enhomie.homie.params.where.HomieWhereParams[source]#

Bases: HomiePluginParams

Process and validate the Homie configuration parameters.

Note

When using the default family, the conditons are in an AND relationship. If another name is given for family, those will be with an OR relationship.

Show JSON schema
{
   "title": "HomieWhereParams",
   "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.",
   "type": "object",
   "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"
      }
   },
   "$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"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field builtins_period: Annotated[DriverBltnPeriodParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')] = None#

Plugin for the operations

field builtins_store: Annotated[DriverBltnStoreParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')] = None#

Plugin for the operations

field family: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='default', description='Combine conditions in group', metadata=[MinLen(min_length=1)])] = 'default'#

Combine conditions in group

Constraints:
  • min_length = 1

field negate: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Invert conditional outcome')] = False#

Invert conditional outcome

field philips_change: Annotated[DriverPhueChangeParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')] = None#

Plugin for the operations

field ubiquiti_client: Annotated[DriverUbiqClientParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')] = None#

Plugin for the operations

Module contents#

Functions and routines associated with Enasis Network Homie Automate.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

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

pydantic model enhomie.homie.params.HomieChildParams[source]#

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomieChildParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {},
   "additionalProperties": false
}

Config:
  • extra: str = forbid

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.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

field origin: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Origin where device exists', metadata=[MinLen(min_length=1)])] [Required]#

Origin where device exists

Constraints:
  • min_length = 1

field unique: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Unique identifier in origin', metadata=[MinLen(min_length=1)])] = None#

Unique identifier in 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

field label: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Group name in the origin', metadata=[MinLen(min_length=1)])] = None#

Group name in the origin

Constraints:
  • min_length = 1

field origin: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Origin where group exists', metadata=[MinLen(min_length=1)])] = None#

Origin where group exists

Constraints:
  • min_length = 1

pydantic model enhomie.homie.params.HomieOccurParams[source]#

Bases: HomiePluginParams

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomieOccurParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "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"
      }
   },
   "$defs": {
      "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"
      },
      "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"
      },
      "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"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field builtins_regexp: Annotated[DriverBltnRegexpParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')] = None#

Plugin for the operations

field philips_button: Annotated[DriverPhueButtonParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')] = None#

Plugin for the operations

field philips_contact: Annotated[DriverPhueContactParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')] = None#

Plugin for the operations

field philips_motion: Annotated[DriverPhueMotionParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')] = None#

Plugin for the operations

field philips_scene: Annotated[DriverPhueSceneParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')] = None#

Plugin for the operations

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.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:
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

pydantic model enhomie.homie.params.HomieParamsModel[source]#

Bases: BaseModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomieParamsModel",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {},
   "additionalProperties": false
}

Config:
  • extra: str = forbid

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

field value_label: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Label for persist value', metadata=[MinLen(min_length=1)])] = None#

Label for persist value

Constraints:
  • min_length = 1

field value_unit: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Unit for persist value', metadata=[MinLen(min_length=1)])] = None#

Unit for persist value

Constraints:
  • min_length = 1

pydantic model enhomie.homie.params.HomiePluginParams[source]#

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomiePluginParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {},
   "additionalProperties": false
}

Config:
  • extra: str = forbid

pydantic model enhomie.homie.params.HomiePrinterParams[source]#

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomiePrinterParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "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"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field action: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Print the actions to console')] = False#

Print the actions to console

field aspire: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Print the aspires to console')] = False#

Print the aspires to console

field desire: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Print the aspires to console')] = False#

Print the aspires to console

field stream: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Print the streams to console')] = False#

Print the streams to console

field update: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Print the updates to console')] = False#

Print the updates to console

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.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

pydantic model enhomie.homie.params.HomieStoreParams[source]#

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomieStoreParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "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"
      }
   },
   "additionalProperties": false,
   "required": [
      "unique",
      "value"
   ]
}

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))*$'))])] = '1d'#

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 unique: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Unique key for the value', metadata=[MinLen(min_length=1)])] [Required]#

Unique key for the value

Constraints:
  • min_length = 1

field value: Annotated[int | float | bool | str | None, FieldInfo(annotation=NoneType, required=True, description='Value stored at unique')] [Required]#

Value stored at unique

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

field value_label: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Label for persist value', metadata=[MinLen(min_length=1)])] = None#

Label for persist value

Constraints:
  • min_length = 1

field value_unit: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Unit for persist value', metadata=[MinLen(min_length=1)])] = None#

Unit for persist value

Constraints:
  • min_length = 1

pydantic model enhomie.homie.params.HomieWhereParams[source]#

Bases: HomiePluginParams

Process and validate the Homie configuration parameters.

Note

When using the default family, the conditons are in an AND relationship. If another name is given for family, those will be with an OR relationship.

Show JSON schema
{
   "title": "HomieWhereParams",
   "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.",
   "type": "object",
   "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"
      }
   },
   "$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"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field builtins_period: Annotated[DriverBltnPeriodParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')] = None#

Plugin for the operations

field builtins_store: Annotated[DriverBltnStoreParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')] = None#

Plugin for the operations

field family: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='default', description='Combine conditions in group', metadata=[MinLen(min_length=1)])] = 'default'#

Combine conditions in group

Constraints:
  • min_length = 1

field negate: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Invert conditional outcome')] = False#

Invert conditional outcome

field philips_change: Annotated[DriverPhueChangeParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')] = None#

Plugin for the operations

field ubiquiti_client: Annotated[DriverUbiqClientParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')] = None#

Plugin for the operations