Enasis Network Homie Automate#

Configuration Container#

class enhomie.homie.HomieConfig(sargs: dict[str, Any] | None = None, files: str | Path | list[str | Path] | tuple[str | Path] | set[str] | None = None, cargs: dict[str, Any] | None = None)[source]

Bases: Config

Contain the configurations from the arguments and files.

Parameters:
  • sargs – Additional arguments on the command line.

  • files – Complete or relative path to config files.

  • cargs – Configuration arguments in dictionary form, which will override contents from the config files.

merge_params() None[source]

Update the Pydantic model containing the configuration.

property params: HomieParams

Return the Pydantic model containing the configuration.

Warning

This method completely overrides the parent but is based on that code, would be unfortunate if upstream changes meant this breaks or breaks something else.

Returns:

Pydantic model containing the configuration.

Parameters Container#

pydantic model enhomie.homie.params.HomieParams[source]

Bases: Params

Process and validate the core configuration parameters.

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

Config:
  • extra: str = forbid

Fields:
field aspires: Annotated[dict[str, HomieAspireParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie aspires', metadata=[MinLen(min_length=1)])] = None

Parameters for Homie aspires

Constraints:
  • min_length = 1

field database: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='sqlite:///:memory:', description='Database connection string', metadata=[MinLen(min_length=1)])] = 'sqlite:///:memory:'

Database connection string

Constraints:
  • min_length = 1

field desires: Annotated[dict[str, HomieDesireParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie desires', metadata=[MinLen(min_length=1)])] = None

Parameters for Homie desires

Constraints:
  • min_length = 1

field devices: Annotated[dict[str, HomieDeviceParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie devices', metadata=[MinLen(min_length=1)])] = None

Parameters for Homie devices

Constraints:
  • min_length = 1

field dryrun: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Determine if changes applied')] = False

Determine if changes applied

field enconfig: Annotated[ConfigParams | None, Field(None, description='Parameters for Config instance')] = None

Parameters for Config instance

field encrypts: Annotated[CryptsParams | None, Field(None, description='Parameters for Crypts instance')] = None

Parameters for Crypts instance

field enlogger: Annotated[LoggerParams | None, Field(None, description='Parameters for Logger instance')] = None

Parameters for Logger instance

field filters: Annotated[HomieFiltersParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieFiltersParams, description='Determine object instantiation')] [Optional]

Determine object instantiation

field groups: Annotated[dict[str, HomieGroupParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie groups', metadata=[MinLen(min_length=1)])] = None

Parameters for Homie groups

Constraints:
  • min_length = 1

field origins: Annotated[dict[str, HomieOriginParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie origins', metadata=[MinLen(min_length=1)])] = None

Parameters for Homie origins

Constraints:
  • min_length = 1

field persists: Annotated[dict[str, HomiePersistParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for common persists', metadata=[MinLen(min_length=1)])] = None

Parameters for common persists

Constraints:
  • min_length = 1

field potent: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=True, description='Ignore idempotency in change')] = True

Ignore idempotency in change

field printer: Annotated[HomiePrinterParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomiePrinterParams, description='Print the stream to console')] [Optional]

Print the stream to console

field restful: Annotated[RestfulServiceParams, FieldInfo(annotation=NoneType, required=False, default_factory=RestfulServiceParams, description='Parameters for Homie RESTful')] [Optional]

Parameters for Homie RESTful

field scenes: Annotated[dict[str, HomieSceneParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie scenes', metadata=[MinLen(min_length=1)])] = None

Parameters for Homie scenes

Constraints:
  • min_length = 1

field service: Annotated[HomieServiceParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieServiceParams, description='Parameters for Homie Service')] [Optional]

Parameters for Homie Service

Homie Children#

pydantic model enhomie.homie.params.HomieOriginParams[source]

Bases: HomieChildParams

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomieOriginParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {
      "hubitat": {
         "anyOf": [
            {
               "$ref": "#/$defs/HubiOriginParams"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Connection specific parameters"
      },
      "philips": {
         "anyOf": [
            {
               "$ref": "#/$defs/PhueOriginParams"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Connection specific parameters"
      },
      "ubiquiti": {
         "anyOf": [
            {
               "$ref": "#/$defs/UbiqOriginParams"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Connection specific parameters"
      }
   },
   "$defs": {
      "HubiOriginParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "bridge": {
               "$ref": "#/$defs/enconnect__hubitat__params__BridgeParams",
               "description": "Connection specific parameters"
            }
         },
         "required": [
            "bridge"
         ],
         "title": "HubiOriginParams",
         "type": "object"
      },
      "PhueOriginParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "bridge": {
               "$ref": "#/$defs/enconnect__philips__params__BridgeParams",
               "description": "Connection specific parameters"
            }
         },
         "required": [
            "bridge"
         ],
         "title": "PhueOriginParams",
         "type": "object"
      },
      "RouterParams": {
         "additionalProperties": false,
         "description": "Process and validate the class configuration parameters.",
         "properties": {
            "server": {
               "description": "Server address for connection",
               "minLength": 1,
               "title": "Server",
               "type": "string"
            },
            "timeout": {
               "default": 30,
               "description": "Timeout connecting to server",
               "maximum": 300,
               "minimum": 1,
               "title": "Timeout",
               "type": "integer"
            },
            "username": {
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "Username",
               "type": "string"
            },
            "password": {
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "Password",
               "type": "string"
            },
            "site": {
               "default": "default",
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "Site",
               "type": "string"
            },
            "ssl_verify": {
               "default": true,
               "description": "Verify the ceritifcate valid",
               "title": "Ssl Verify",
               "type": "boolean"
            },
            "ssl_capem": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Verify the ceritifcate valid",
               "title": "Ssl Capem"
            }
         },
         "required": [
            "server",
            "username",
            "password"
         ],
         "title": "RouterParams",
         "type": "object"
      },
      "UbiqOriginParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "router": {
               "$ref": "#/$defs/RouterParams",
               "description": "Connection specific parameters"
            }
         },
         "required": [
            "router"
         ],
         "title": "UbiqOriginParams",
         "type": "object"
      },
      "enconnect__hubitat__params__BridgeParams": {
         "additionalProperties": false,
         "description": "Process and validate the class configuration parameters.",
         "properties": {
            "server": {
               "description": "Server address for connection",
               "minLength": 1,
               "title": "Server",
               "type": "string"
            },
            "timeout": {
               "default": 30,
               "description": "Timeout connecting to server",
               "maximum": 300,
               "minimum": 1,
               "title": "Timeout",
               "type": "integer"
            },
            "appid": {
               "description": "Parameter for the integration",
               "minimum": 0,
               "title": "Appid",
               "type": "integer"
            },
            "token": {
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "Token",
               "type": "string"
            },
            "ssl_verify": {
               "default": false,
               "description": "Verify the ceritifcate valid",
               "title": "Ssl Verify",
               "type": "boolean"
            },
            "ssl_capem": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Verify the ceritifcate valid",
               "title": "Ssl Capem"
            }
         },
         "required": [
            "server",
            "appid",
            "token"
         ],
         "title": "BridgeParams",
         "type": "object"
      },
      "enconnect__philips__params__BridgeParams": {
         "additionalProperties": false,
         "description": "Process and validate the class configuration parameters.",
         "properties": {
            "server": {
               "description": "Server address for connection",
               "minLength": 1,
               "title": "Server",
               "type": "string"
            },
            "timeout": {
               "default": 30,
               "description": "Timeout connecting to server",
               "maximum": 300,
               "minimum": 1,
               "title": "Timeout",
               "type": "integer"
            },
            "token": {
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "Token",
               "type": "string"
            },
            "ssl_verify": {
               "default": true,
               "description": "Verify the ceritifcate valid",
               "title": "Ssl Verify",
               "type": "boolean"
            },
            "ssl_capem": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Verify the ceritifcate valid",
               "title": "Ssl Capem"
            }
         },
         "required": [
            "server",
            "token"
         ],
         "title": "BridgeParams",
         "type": "object"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field hubitat: Annotated[HubiOriginParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Connection specific parameters')] = None

Connection specific parameters

field philips: Annotated[PhueOriginParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Connection specific parameters')] = None

Connection specific parameters

field ubiquiti: Annotated[UbiqOriginParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Connection specific parameters')] = None

Connection specific parameters

pydantic model enhomie.homie.params.HomieDeviceParams[source]

Bases: HomieChildParams

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomieDeviceParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {
      "origin": {
         "description": "Origin where device exists",
         "minLength": 1,
         "title": "Origin",
         "type": "string"
      },
      "label": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Device name in the origin",
         "title": "Label"
      },
      "unique": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Unique identifier in origin",
         "title": "Unique"
      }
   },
   "additionalProperties": false,
   "required": [
      "origin"
   ]
}

Config:
  • extra: str = forbid

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

Device name in the origin

Constraints:
  • min_length = 1

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.HomieSceneParams[source]

Bases: HomieChildParams

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomieSceneParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {
      "label": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Scene name in the origin",
         "title": "Label"
      },
      "stage": {
         "$ref": "#/$defs/HomieStageParams",
         "description": "Default device scene config"
      },
      "devices": {
         "anyOf": [
            {
               "additionalProperties": {
                  "$ref": "#/$defs/HomieStageParams"
               },
               "minProperties": 1,
               "type": "object"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Device specific scene config",
         "title": "Devices"
      }
   },
   "$defs": {
      "HomieStageParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "state": {
               "anyOf": [
                  {
                     "enum": [
                        "poweron",
                        "nopower"
                     ],
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Setting for the light state",
               "title": "State"
            },
            "color": {
               "anyOf": [
                  {
                     "maxLength": 6,
                     "minLength": 6,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Setting for the light color",
               "title": "Color"
            },
            "level": {
               "anyOf": [
                  {
                     "maximum": 100,
                     "minimum": 0,
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Setting for the light level",
               "title": "Level"
            }
         },
         "title": "HomieStageParams",
         "type": "object"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field devices: Annotated[dict[str, HomieStageParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Device specific scene config', metadata=[MinLen(min_length=1)])] = None

Device specific scene config

Constraints:
  • min_length = 1

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

Scene name in the origin

Constraints:
  • min_length = 1

field stage: Annotated[HomieStageParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieStageParams, description='Default device scene config')] [Optional]

Default device scene config

pydantic model enhomie.homie.params.HomieDesireParams[source]

Bases: HomieChildParams

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomieDesireParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {
      "devices": {
         "anyOf": [
            {
               "items": {
                  "type": "string"
               },
               "minItems": 1,
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Devices that are in scope",
         "title": "Devices"
      },
      "groups": {
         "anyOf": [
            {
               "items": {
                  "type": "string"
               },
               "minItems": 1,
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Groups that are in scope",
         "title": "Groups"
      },
      "stage": {
         "anyOf": [
            {
               "$ref": "#/$defs/HomieStageParams"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Default device scene config"
      },
      "scene": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Update the group light scene",
         "title": "Scene"
      },
      "store": {
         "anyOf": [
            {
               "items": {
                  "$ref": "#/$defs/HomieStoreParams"
               },
               "minItems": 1,
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Update values in database",
         "title": "Store"
      },
      "wheres": {
         "anyOf": [
            {
               "items": {
                  "$ref": "#/$defs/HomieWhereParams"
               },
               "minItems": 1,
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Plugins for the conditions",
         "title": "Wheres"
      },
      "pause": {
         "default": 0,
         "description": "Delay before acting again",
         "maximum": 86400,
         "minimum": 0,
         "title": "Pause",
         "type": "integer"
      },
      "delay": {
         "default": true,
         "description": "Enforce pause on initial",
         "title": "Delay",
         "type": "boolean"
      },
      "weight": {
         "default": 0,
         "description": "Precedence when multiple",
         "maximum": 1000.0,
         "minimum": 0,
         "title": "Weight",
         "type": "integer"
      }
   },
   "$defs": {
      "DriverBltnPeriodParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "start": {
               "anyOf": [
                  {
                     "pattern": "^([01]\\d|2[0-3]):([0-5]\\d)$",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Start time in 24 hour format",
               "title": "Start"
            },
            "stop": {
               "anyOf": [
                  {
                     "pattern": "^([01]\\d|2[0-3]):([0-5]\\d)$",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Stop time in 24 hour format",
               "title": "Stop"
            },
            "days": {
               "anyOf": [
                  {
                     "items": {
                        "enum": [
                           "Monday",
                           "Tuesday",
                           "Wednesday",
                           "Thursday",
                           "Friday",
                           "Saturday",
                           "Sunday"
                        ],
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Days of the week in scope",
               "title": "Days"
            },
            "tzname": {
               "default": "UTC",
               "description": "Timezone parsed with Time",
               "minLength": 1,
               "title": "Tzname",
               "type": "string"
            }
         },
         "title": "DriverBltnPeriodParams",
         "type": "object"
      },
      "DriverBltnStoreParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "unique": {
               "description": "Unique key for the value",
               "minLength": 1,
               "title": "Unique",
               "type": "string"
            },
            "operator": {
               "description": "Operator for the condition",
               "enum": [
                  "present",
                  "absent",
                  "eq",
                  "neq",
                  "lt",
                  "lte",
                  "gt",
                  "gte"
               ],
               "title": "Operator",
               "type": "string"
            },
            "value": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "number"
                  },
                  {
                     "type": "boolean"
                  },
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Value for the condition",
               "title": "Value"
            }
         },
         "required": [
            "unique",
            "operator"
         ],
         "title": "DriverBltnStoreParams",
         "type": "object"
      },
      "DriverPhueChangeParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "devices": {
               "description": "Devices that are in scope",
               "items": {
                  "type": "string"
               },
               "minItems": 1,
               "title": "Devices",
               "type": "array"
            },
            "sensors": {
               "anyOf": [
                  {
                     "items": {
                        "enum": [
                           "button1",
                           "button2",
                           "button3",
                           "button4",
                           "contact",
                           "motion",
                           "temperature"
                        ],
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Sensors that will be matched",
               "title": "Sensors"
            },
            "since": {
               "default": 0,
               "description": "Minimum time since changed",
               "minimum": 0,
               "title": "Since",
               "type": "integer"
            }
         },
         "required": [
            "devices"
         ],
         "title": "DriverPhueChangeParams",
         "type": "object"
      },
      "DriverUbiqClientParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "clients": {
               "description": "Clients that are in scope",
               "items": {
                  "type": "string"
               },
               "minItems": 1,
               "title": "Clients",
               "type": "array"
            },
            "since": {
               "default": 0,
               "description": "Minimum time since changed",
               "minimum": 0,
               "title": "Since",
               "type": "integer"
            }
         },
         "required": [
            "clients"
         ],
         "title": "DriverUbiqClientParams",
         "type": "object"
      },
      "HomieStageParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "state": {
               "anyOf": [
                  {
                     "enum": [
                        "poweron",
                        "nopower"
                     ],
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Setting for the light state",
               "title": "State"
            },
            "color": {
               "anyOf": [
                  {
                     "maxLength": 6,
                     "minLength": 6,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Setting for the light color",
               "title": "Color"
            },
            "level": {
               "anyOf": [
                  {
                     "maximum": 100,
                     "minimum": 0,
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Setting for the light level",
               "title": "Level"
            }
         },
         "title": "HomieStageParams",
         "type": "object"
      },
      "HomieStoreParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "unique": {
               "description": "Unique key for the value",
               "minLength": 1,
               "title": "Unique",
               "type": "string"
            },
            "value": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "number"
                  },
                  {
                     "type": "boolean"
                  },
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "description": "Value stored at unique",
               "title": "Value"
            },
            "value_unit": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Unit for persist value",
               "title": "Value Unit"
            },
            "value_label": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Label for persist value",
               "title": "Value Label"
            },
            "value_icon": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Icon for persist value",
               "title": "Value Icon"
            },
            "about": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "About the persist entry",
               "title": "About"
            },
            "about_label": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Label for persist entry",
               "title": "About Label"
            },
            "about_icon": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Icon for persist entry",
               "title": "About Icon"
            },
            "level": {
               "anyOf": [
                  {
                     "enum": [
                        "failure",
                        "information",
                        "success",
                        "warning"
                     ],
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Severity of persist entry",
               "title": "Level"
            },
            "tags": {
               "anyOf": [
                  {
                     "items": {
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Tags for persist entry",
               "title": "Tags"
            },
            "expire": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "pattern": "^(\\d+(s|m|h|d|w|y))*$",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": "1d",
               "description": "After when the key expires",
               "examples": [
                  "1h",
                  "1h30m",
                  "1d"
               ],
               "title": "Expire"
            }
         },
         "required": [
            "unique",
            "value"
         ],
         "title": "HomieStoreParams",
         "type": "object"
      },
      "HomieWhereParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.\n\n.. note::\n   When using the `default` `family`, the conditons are\n   in an `AND` relationship. If another name is given\n   for `family`, those will be with an OR relationship.",
         "properties": {
            "negate": {
               "default": false,
               "description": "Invert conditional outcome",
               "title": "Negate",
               "type": "boolean"
            },
            "family": {
               "default": "default",
               "description": "Combine conditions in group",
               "minLength": 1,
               "title": "Family",
               "type": "string"
            },
            "builtins_store": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/DriverBltnStoreParams"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Plugin for the operations"
            },
            "builtins_period": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/DriverBltnPeriodParams"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Plugin for the operations"
            },
            "philips_change": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/DriverPhueChangeParams"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Plugin for the operations"
            },
            "ubiquiti_client": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/DriverUbiqClientParams"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Plugin for the operations"
            }
         },
         "title": "HomieWhereParams",
         "type": "object"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field delay: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=True, description='Enforce pause on initial')] = True

Enforce pause on initial

field devices: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Devices that are in scope', metadata=[MinLen(min_length=1)])] = None

Devices that are in scope

Constraints:
  • min_length = 1

field groups: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Groups that are in scope', metadata=[MinLen(min_length=1)])] = None

Groups that are in scope

Constraints:
  • min_length = 1

field pause: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=0, description='Delay before acting again', metadata=[Ge(ge=0), Le(le=86400)])] = 0

Delay before acting again

Constraints:
  • ge = 0

  • le = 86400

field scene: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Update the group light scene', metadata=[MinLen(min_length=1)])] = None

Update the group light scene

Constraints:
  • min_length = 1

field stage: Annotated[HomieStageParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Default device scene config')] = None

Default device scene config

field store: Annotated[list[HomieStoreParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Update values in database', metadata=[MinLen(min_length=1)])] = None

Update values in database

Constraints:
  • min_length = 1

field weight: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=0, description='Precedence when multiple', metadata=[Ge(ge=0), Le(le=1000.0)])] = 0

Precedence when multiple

Constraints:
  • ge = 0

  • le = 1000.0

field wheres: Annotated[list[HomieWhereParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugins for the conditions', metadata=[MinLen(min_length=1)])] = None

Plugins for the conditions

Constraints:
  • min_length = 1

pydantic model enhomie.homie.params.HomieAspireParams[source]

Bases: HomieChildParams

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomieAspireParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {
      "devices": {
         "anyOf": [
            {
               "items": {
                  "type": "string"
               },
               "minItems": 1,
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Devices that are in scope",
         "title": "Devices"
      },
      "groups": {
         "anyOf": [
            {
               "items": {
                  "type": "string"
               },
               "minItems": 1,
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Groups that are in scope",
         "title": "Groups"
      },
      "stage": {
         "anyOf": [
            {
               "$ref": "#/$defs/HomieStageParams"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Default device scene config"
      },
      "scene": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Update the group light scene",
         "title": "Scene"
      },
      "store": {
         "anyOf": [
            {
               "items": {
                  "$ref": "#/$defs/HomieStoreParams"
               },
               "minItems": 1,
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Update values in database",
         "title": "Store"
      },
      "occurs": {
         "anyOf": [
            {
               "items": {
                  "$ref": "#/$defs/HomieOccurParams"
               },
               "minItems": 1,
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Plugins for the conditions",
         "title": "Occurs"
      },
      "wheres": {
         "anyOf": [
            {
               "items": {
                  "$ref": "#/$defs/HomieWhereParams"
               },
               "minItems": 1,
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Plugins for the conditions",
         "title": "Wheres"
      },
      "pause": {
         "default": 3,
         "description": "Delay before acting again",
         "maximum": 86400,
         "minimum": 1,
         "title": "Pause",
         "type": "integer"
      }
   },
   "$defs": {
      "DriverBltnPeriodParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "start": {
               "anyOf": [
                  {
                     "pattern": "^([01]\\d|2[0-3]):([0-5]\\d)$",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Start time in 24 hour format",
               "title": "Start"
            },
            "stop": {
               "anyOf": [
                  {
                     "pattern": "^([01]\\d|2[0-3]):([0-5]\\d)$",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Stop time in 24 hour format",
               "title": "Stop"
            },
            "days": {
               "anyOf": [
                  {
                     "items": {
                        "enum": [
                           "Monday",
                           "Tuesday",
                           "Wednesday",
                           "Thursday",
                           "Friday",
                           "Saturday",
                           "Sunday"
                        ],
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Days of the week in scope",
               "title": "Days"
            },
            "tzname": {
               "default": "UTC",
               "description": "Timezone parsed with Time",
               "minLength": 1,
               "title": "Tzname",
               "type": "string"
            }
         },
         "title": "DriverBltnPeriodParams",
         "type": "object"
      },
      "DriverBltnRegexpParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "patterns": {
               "description": "Regular expression match",
               "items": {
                  "type": "string"
               },
               "minItems": 1,
               "title": "Patterns",
               "type": "array"
            },
            "complete": {
               "default": false,
               "description": "Perform complete match",
               "title": "Complete",
               "type": "boolean"
            }
         },
         "required": [
            "patterns"
         ],
         "title": "DriverBltnRegexpParams",
         "type": "object"
      },
      "DriverBltnStoreParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "unique": {
               "description": "Unique key for the value",
               "minLength": 1,
               "title": "Unique",
               "type": "string"
            },
            "operator": {
               "description": "Operator for the condition",
               "enum": [
                  "present",
                  "absent",
                  "eq",
                  "neq",
                  "lt",
                  "lte",
                  "gt",
                  "gte"
               ],
               "title": "Operator",
               "type": "string"
            },
            "value": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "number"
                  },
                  {
                     "type": "boolean"
                  },
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Value for the condition",
               "title": "Value"
            }
         },
         "required": [
            "unique",
            "operator"
         ],
         "title": "DriverBltnStoreParams",
         "type": "object"
      },
      "DriverPhueButtonParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "device": {
               "description": "Device that is in scope",
               "minLength": 1,
               "title": "Device",
               "type": "string"
            },
            "events": {
               "anyOf": [
                  {
                     "items": {
                        "enum": [
                           "initial_press",
                           "long_release",
                           "short_release"
                        ],
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Events that will be matched",
               "title": "Events"
            },
            "sensor": {
               "description": "Sensor that will be matched",
               "enum": [
                  "button1",
                  "button2",
                  "button3",
                  "button4"
               ],
               "title": "Sensor",
               "type": "string"
            }
         },
         "required": [
            "device",
            "sensor"
         ],
         "title": "DriverPhueButtonParams",
         "type": "object"
      },
      "DriverPhueChangeParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "devices": {
               "description": "Devices that are in scope",
               "items": {
                  "type": "string"
               },
               "minItems": 1,
               "title": "Devices",
               "type": "array"
            },
            "sensors": {
               "anyOf": [
                  {
                     "items": {
                        "enum": [
                           "button1",
                           "button2",
                           "button3",
                           "button4",
                           "contact",
                           "motion",
                           "temperature"
                        ],
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Sensors that will be matched",
               "title": "Sensors"
            },
            "since": {
               "default": 0,
               "description": "Minimum time since changed",
               "minimum": 0,
               "title": "Since",
               "type": "integer"
            }
         },
         "required": [
            "devices"
         ],
         "title": "DriverPhueChangeParams",
         "type": "object"
      },
      "DriverPhueContactParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "device": {
               "description": "Device that is in scope",
               "minLength": 1,
               "title": "Device",
               "type": "string"
            },
            "states": {
               "anyOf": [
                  {
                     "items": {
                        "enum": [
                           "contact",
                           "no_contact"
                        ],
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "States that will be matched",
               "title": "States"
            }
         },
         "required": [
            "device"
         ],
         "title": "DriverPhueContactParams",
         "type": "object"
      },
      "DriverPhueMotionParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "device": {
               "description": "Device that is in scope",
               "minLength": 1,
               "title": "Device",
               "type": "string"
            },
            "states": {
               "anyOf": [
                  {
                     "items": {
                        "enum": [
                           "motion",
                           "no_motion"
                        ],
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "States that will be matched",
               "title": "States"
            }
         },
         "required": [
            "device"
         ],
         "title": "DriverPhueMotionParams",
         "type": "object"
      },
      "DriverPhueSceneParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "scene": {
               "description": "Scene that is in scope",
               "minLength": 1,
               "title": "Scene",
               "type": "string"
            },
            "group": {
               "description": "Group that is in scope",
               "minLength": 1,
               "title": "Group",
               "type": "string"
            },
            "states": {
               "anyOf": [
                  {
                     "items": {
                        "enum": [
                           "active",
                           "inactive"
                        ],
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "States that will be matched",
               "title": "States"
            }
         },
         "required": [
            "scene",
            "group"
         ],
         "title": "DriverPhueSceneParams",
         "type": "object"
      },
      "DriverUbiqClientParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "clients": {
               "description": "Clients that are in scope",
               "items": {
                  "type": "string"
               },
               "minItems": 1,
               "title": "Clients",
               "type": "array"
            },
            "since": {
               "default": 0,
               "description": "Minimum time since changed",
               "minimum": 0,
               "title": "Since",
               "type": "integer"
            }
         },
         "required": [
            "clients"
         ],
         "title": "DriverUbiqClientParams",
         "type": "object"
      },
      "HomieOccurParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "builtins_regexp": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/DriverBltnRegexpParams"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Plugin for the operations"
            },
            "philips_button": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/DriverPhueButtonParams"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Plugin for the operations"
            },
            "philips_contact": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/DriverPhueContactParams"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Plugin for the operations"
            },
            "philips_motion": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/DriverPhueMotionParams"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Plugin for the operations"
            },
            "philips_scene": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/DriverPhueSceneParams"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Plugin for the operations"
            }
         },
         "title": "HomieOccurParams",
         "type": "object"
      },
      "HomieStageParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "state": {
               "anyOf": [
                  {
                     "enum": [
                        "poweron",
                        "nopower"
                     ],
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Setting for the light state",
               "title": "State"
            },
            "color": {
               "anyOf": [
                  {
                     "maxLength": 6,
                     "minLength": 6,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Setting for the light color",
               "title": "Color"
            },
            "level": {
               "anyOf": [
                  {
                     "maximum": 100,
                     "minimum": 0,
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Setting for the light level",
               "title": "Level"
            }
         },
         "title": "HomieStageParams",
         "type": "object"
      },
      "HomieStoreParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "unique": {
               "description": "Unique key for the value",
               "minLength": 1,
               "title": "Unique",
               "type": "string"
            },
            "value": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "number"
                  },
                  {
                     "type": "boolean"
                  },
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "description": "Value stored at unique",
               "title": "Value"
            },
            "value_unit": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Unit for persist value",
               "title": "Value Unit"
            },
            "value_label": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Label for persist value",
               "title": "Value Label"
            },
            "value_icon": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Icon for persist value",
               "title": "Value Icon"
            },
            "about": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "About the persist entry",
               "title": "About"
            },
            "about_label": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Label for persist entry",
               "title": "About Label"
            },
            "about_icon": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Icon for persist entry",
               "title": "About Icon"
            },
            "level": {
               "anyOf": [
                  {
                     "enum": [
                        "failure",
                        "information",
                        "success",
                        "warning"
                     ],
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Severity of persist entry",
               "title": "Level"
            },
            "tags": {
               "anyOf": [
                  {
                     "items": {
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Tags for persist entry",
               "title": "Tags"
            },
            "expire": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "pattern": "^(\\d+(s|m|h|d|w|y))*$",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": "1d",
               "description": "After when the key expires",
               "examples": [
                  "1h",
                  "1h30m",
                  "1d"
               ],
               "title": "Expire"
            }
         },
         "required": [
            "unique",
            "value"
         ],
         "title": "HomieStoreParams",
         "type": "object"
      },
      "HomieWhereParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.\n\n.. note::\n   When using the `default` `family`, the conditons are\n   in an `AND` relationship. If another name is given\n   for `family`, those will be with an OR relationship.",
         "properties": {
            "negate": {
               "default": false,
               "description": "Invert conditional outcome",
               "title": "Negate",
               "type": "boolean"
            },
            "family": {
               "default": "default",
               "description": "Combine conditions in group",
               "minLength": 1,
               "title": "Family",
               "type": "string"
            },
            "builtins_store": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/DriverBltnStoreParams"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Plugin for the operations"
            },
            "builtins_period": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/DriverBltnPeriodParams"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Plugin for the operations"
            },
            "philips_change": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/DriverPhueChangeParams"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Plugin for the operations"
            },
            "ubiquiti_client": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/DriverUbiqClientParams"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Plugin for the operations"
            }
         },
         "title": "HomieWhereParams",
         "type": "object"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field devices: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Devices that are in scope', metadata=[MinLen(min_length=1)])] = None

Devices that are in scope

Constraints:
  • min_length = 1

field groups: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Groups that are in scope', metadata=[MinLen(min_length=1)])] = None

Groups that are in scope

Constraints:
  • min_length = 1

field occurs: Annotated[list[HomieOccurParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugins for the conditions', metadata=[MinLen(min_length=1)])] = None

Plugins for the conditions

Constraints:
  • min_length = 1

field pause: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=3, description='Delay before acting again', metadata=[Ge(ge=1), Le(le=86400)])] = 3

Delay before acting again

Constraints:
  • ge = 1

  • le = 86400

field scene: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Update the group light scene', metadata=[MinLen(min_length=1)])] = None

Update the group light scene

Constraints:
  • min_length = 1

field stage: Annotated[HomieStageParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Default device scene config')] = None

Default device scene config

field store: Annotated[list[HomieStoreParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Update values in database', metadata=[MinLen(min_length=1)])] = None

Update values in database

Constraints:
  • min_length = 1

field wheres: Annotated[list[HomieWhereParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugins for the conditions', metadata=[MinLen(min_length=1)])] = None

Plugins for the conditions

Constraints:
  • min_length = 1

Persistent Defaults#

pydantic model enhomie.homie.params.HomiePersistParams[source]

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomiePersistParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {
      "value_unit": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Unit for persist value",
         "title": "Value Unit"
      },
      "value_label": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Label for persist value",
         "title": "Value Label"
      },
      "value_icon": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Icon for persist value",
         "title": "Value Icon"
      },
      "about": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "About the persist entry",
         "title": "About"
      },
      "about_label": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Label for persist entry",
         "title": "About Label"
      },
      "about_icon": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Icon for persist entry",
         "title": "About Icon"
      },
      "level": {
         "anyOf": [
            {
               "enum": [
                  "failure",
                  "information",
                  "success",
                  "warning"
               ],
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Severity of persist entry",
         "title": "Level"
      },
      "tags": {
         "anyOf": [
            {
               "items": {
                  "type": "string"
               },
               "minItems": 1,
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Tags for persist entry",
         "title": "Tags"
      },
      "expire": {
         "anyOf": [
            {
               "minLength": 1,
               "pattern": "^(\\d+(s|m|h|d|w|y))*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "After when the key expires",
         "examples": [
            "1h",
            "1h30m",
            "1d"
         ],
         "title": "Expire"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field about: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='About the persist entry', metadata=[MinLen(min_length=1)])] = None

About the persist entry

Constraints:
  • min_length = 1

field about_icon: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Icon for persist entry', metadata=[MinLen(min_length=1)])] = None

Icon for persist entry

Constraints:
  • min_length = 1

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

Label for persist entry

Constraints:
  • min_length = 1

field expire: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='After when the key expires', examples=['1h', '1h30m', '1d'], metadata=[MinLen(min_length=1), _PydanticGeneralMetadata(pattern=re.compile('^(\\d+(s|m|h|d|w|y))*$'))])] = None

After when the key expires

Constraints:
  • min_length = 1

  • pattern = re.compile(‘^(\d+(s|m|h|d|w|y))*$’)

field level: Annotated[Literal['failure', 'information', 'success', 'warning'] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Severity of persist entry', metadata=[MinLen(min_length=1)])] = None

Severity of persist entry

Constraints:
  • min_length = 1

field tags: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Tags for persist entry', metadata=[MinLen(min_length=1)])] = None

Tags for persist entry

Constraints:
  • min_length = 1

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

Icon for persist value

Constraints:
  • min_length = 1

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

Multithread Service#

pydantic model enhomie.homie.params.HomieServiceParams[source]

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HomieServiceParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {
      "respite": {
         "$ref": "#/$defs/HomieServiceRespiteParams",
         "description": "When operates are performed"
      },
      "timeout": {
         "$ref": "#/$defs/HomieServiceTimeoutParams",
         "description": "Override source or defaults"
      },
      "members": {
         "$ref": "#/$defs/HomieServiceMembersParams",
         "description": "Which members are created"
      }
   },
   "$defs": {
      "HomieServiceMembersParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "actions": {
               "default": true,
               "description": "Determine whether created",
               "title": "Actions",
               "type": "boolean"
            },
            "streams": {
               "default": true,
               "description": "Determine whether created",
               "title": "Streams",
               "type": "boolean"
            },
            "updates": {
               "default": true,
               "description": "Determine whether created",
               "title": "Updates",
               "type": "boolean"
            },
            "restful": {
               "default": false,
               "description": "Determine whether created",
               "title": "Restful",
               "type": "boolean"
            }
         },
         "title": "HomieServiceMembersParams",
         "type": "object"
      },
      "HomieServiceRespiteParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "desire": {
               "default": 60,
               "description": "How often desires performed",
               "maximum": 900,
               "minimum": 1,
               "title": "Desire",
               "type": "integer"
            },
            "update": {
               "default": 60,
               "description": "How often updates performed",
               "maximum": 900,
               "minimum": 1,
               "title": "Update",
               "type": "integer"
            },
            "health": {
               "default": 3,
               "description": "How often health is checked",
               "maximum": 15,
               "minimum": 1,
               "title": "Health",
               "type": "integer"
            }
         },
         "title": "HomieServiceRespiteParams",
         "type": "object"
      },
      "HomieServiceTimeoutParams": {
         "additionalProperties": false,
         "description": "Process and validate the Homie configuration parameters.",
         "properties": {
            "action": {
               "default": 5,
               "description": "Override the actions timeout",
               "maximum": 30,
               "minimum": 1,
               "title": "Action",
               "type": "integer"
            },
            "update": {
               "default": 3,
               "description": "Override the updates timeout",
               "maximum": 30,
               "minimum": 1,
               "title": "Update",
               "type": "integer"
            },
            "stream": {
               "default": 60,
               "description": "Override the stream timeout",
               "maximum": 900,
               "minimum": 1,
               "title": "Stream",
               "type": "integer"
            }
         },
         "title": "HomieServiceTimeoutParams",
         "type": "object"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field members: Annotated[HomieServiceMembersParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieServiceMembersParams, description='Which members are created')] [Optional]

Which members are created

field respite: Annotated[HomieServiceRespiteParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieServiceRespiteParams, description='When operates are performed')] [Optional]

When operates are performed

field timeout: Annotated[HomieServiceTimeoutParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieServiceTimeoutParams, description='Override source or defaults')] [Optional]

Override source or defaults

Restful Service#

Hubitat Origin#

pydantic model enhomie.hubitat.params.HubiOriginParams[source]

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "HubiOriginParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {
      "bridge": {
         "$ref": "#/$defs/BridgeParams",
         "description": "Connection specific parameters"
      }
   },
   "$defs": {
      "BridgeParams": {
         "additionalProperties": false,
         "description": "Process and validate the class configuration parameters.",
         "properties": {
            "server": {
               "description": "Server address for connection",
               "minLength": 1,
               "title": "Server",
               "type": "string"
            },
            "timeout": {
               "default": 30,
               "description": "Timeout connecting to server",
               "maximum": 300,
               "minimum": 1,
               "title": "Timeout",
               "type": "integer"
            },
            "appid": {
               "description": "Parameter for the integration",
               "minimum": 0,
               "title": "Appid",
               "type": "integer"
            },
            "token": {
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "Token",
               "type": "string"
            },
            "ssl_verify": {
               "default": false,
               "description": "Verify the ceritifcate valid",
               "title": "Ssl Verify",
               "type": "boolean"
            },
            "ssl_capem": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Verify the ceritifcate valid",
               "title": "Ssl Capem"
            }
         },
         "required": [
            "server",
            "appid",
            "token"
         ],
         "title": "BridgeParams",
         "type": "object"
      }
   },
   "additionalProperties": false,
   "required": [
      "bridge"
   ]
}

Config:
  • extra: str = forbid

Fields:
field bridge: Annotated[BridgeParams, FieldInfo(annotation=NoneType, required=True, description='Connection specific parameters')] [Required]

Connection specific parameters

Philips Origin#

pydantic model enhomie.philips.params.PhueOriginParams[source]

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "PhueOriginParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {
      "bridge": {
         "$ref": "#/$defs/BridgeParams",
         "description": "Connection specific parameters"
      }
   },
   "$defs": {
      "BridgeParams": {
         "additionalProperties": false,
         "description": "Process and validate the class configuration parameters.",
         "properties": {
            "server": {
               "description": "Server address for connection",
               "minLength": 1,
               "title": "Server",
               "type": "string"
            },
            "timeout": {
               "default": 30,
               "description": "Timeout connecting to server",
               "maximum": 300,
               "minimum": 1,
               "title": "Timeout",
               "type": "integer"
            },
            "token": {
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "Token",
               "type": "string"
            },
            "ssl_verify": {
               "default": true,
               "description": "Verify the ceritifcate valid",
               "title": "Ssl Verify",
               "type": "boolean"
            },
            "ssl_capem": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Verify the ceritifcate valid",
               "title": "Ssl Capem"
            }
         },
         "required": [
            "server",
            "token"
         ],
         "title": "BridgeParams",
         "type": "object"
      }
   },
   "additionalProperties": false,
   "required": [
      "bridge"
   ]
}

Config:
  • extra: str = forbid

Fields:
field bridge: Annotated[BridgeParams, FieldInfo(annotation=NoneType, required=True, description='Connection specific parameters')] [Required]

Connection specific parameters

Ubiquiti Origin#

pydantic model enhomie.ubiquiti.params.UbiqOriginParams[source]

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "UbiqOriginParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {
      "router": {
         "$ref": "#/$defs/RouterParams",
         "description": "Connection specific parameters"
      }
   },
   "$defs": {
      "RouterParams": {
         "additionalProperties": false,
         "description": "Process and validate the class configuration parameters.",
         "properties": {
            "server": {
               "description": "Server address for connection",
               "minLength": 1,
               "title": "Server",
               "type": "string"
            },
            "timeout": {
               "default": 30,
               "description": "Timeout connecting to server",
               "maximum": 300,
               "minimum": 1,
               "title": "Timeout",
               "type": "integer"
            },
            "username": {
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "Username",
               "type": "string"
            },
            "password": {
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "Password",
               "type": "string"
            },
            "site": {
               "default": "default",
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "Site",
               "type": "string"
            },
            "ssl_verify": {
               "default": true,
               "description": "Verify the ceritifcate valid",
               "title": "Ssl Verify",
               "type": "boolean"
            },
            "ssl_capem": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Verify the ceritifcate valid",
               "title": "Ssl Capem"
            }
         },
         "required": [
            "server",
            "username",
            "password"
         ],
         "title": "RouterParams",
         "type": "object"
      }
   },
   "additionalProperties": false,
   "required": [
      "router"
   ]
}

Config:
  • extra: str = forbid

Fields:
field router: Annotated[RouterParams, FieldInfo(annotation=NoneType, required=True, description='Connection specific parameters')] [Required]

Connection specific parameters

Builtin Plugins#

pydantic model enhomie.builtins.params.DriverBltnPeriodParams[source]

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "DriverBltnPeriodParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {
      "start": {
         "anyOf": [
            {
               "pattern": "^([01]\\d|2[0-3]):([0-5]\\d)$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Start time in 24 hour format",
         "title": "Start"
      },
      "stop": {
         "anyOf": [
            {
               "pattern": "^([01]\\d|2[0-3]):([0-5]\\d)$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Stop time in 24 hour format",
         "title": "Stop"
      },
      "days": {
         "anyOf": [
            {
               "items": {
                  "enum": [
                     "Monday",
                     "Tuesday",
                     "Wednesday",
                     "Thursday",
                     "Friday",
                     "Saturday",
                     "Sunday"
                  ],
                  "type": "string"
               },
               "minItems": 1,
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Days of the week in scope",
         "title": "Days"
      },
      "tzname": {
         "default": "UTC",
         "description": "Timezone parsed with Time",
         "minLength": 1,
         "title": "Tzname",
         "type": "string"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field days: Annotated[list[Literal['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Days of the week in scope', metadata=[MinLen(min_length=1)])] = None

Days of the week in scope

Constraints:
  • min_length = 1

field start: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Start time in 24 hour format', metadata=[_PydanticGeneralMetadata(pattern=re.compile('^([01]\\d|2[0-3]):([0-5]\\d)$'))])] = None

Start time in 24 hour format

Constraints:
  • pattern = re.compile(‘^([01]\d|2[0-3]):([0-5]\d)$’)

field stop: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Stop time in 24 hour format', metadata=[_PydanticGeneralMetadata(pattern=re.compile('^([01]\\d|2[0-3]):([0-5]\\d)$'))])] = None

Stop time in 24 hour format

Constraints:
  • pattern = re.compile(‘^([01]\d|2[0-3]):([0-5]\d)$’)

field tzname: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='UTC', description='Timezone parsed with Time', metadata=[MinLen(min_length=1)])] = 'UTC'

Timezone parsed with Time

Constraints:
  • min_length = 1

pydantic model enhomie.builtins.params.DriverBltnRegexpParams[source]

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "DriverBltnRegexpParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {
      "patterns": {
         "description": "Regular expression match",
         "items": {
            "type": "string"
         },
         "minItems": 1,
         "title": "Patterns",
         "type": "array"
      },
      "complete": {
         "default": false,
         "description": "Perform complete match",
         "title": "Complete",
         "type": "boolean"
      }
   },
   "additionalProperties": false,
   "required": [
      "patterns"
   ]
}

Config:
  • extra: str = forbid

Fields:
field complete: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Perform complete match')] = False

Perform complete match

field patterns: Annotated[list[str], FieldInfo(annotation=NoneType, required=True, description='Regular expression match', metadata=[MinLen(min_length=1)])] [Required]

Regular expression match

Constraints:
  • min_length = 1

pydantic model enhomie.builtins.params.DriverBltnStoreParams[source]

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "DriverBltnStoreParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {
      "unique": {
         "description": "Unique key for the value",
         "minLength": 1,
         "title": "Unique",
         "type": "string"
      },
      "operator": {
         "description": "Operator for the condition",
         "enum": [
            "present",
            "absent",
            "eq",
            "neq",
            "lt",
            "lte",
            "gt",
            "gte"
         ],
         "title": "Operator",
         "type": "string"
      },
      "value": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "number"
            },
            {
               "type": "boolean"
            },
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Value for the condition",
         "title": "Value"
      }
   },
   "additionalProperties": false,
   "required": [
      "unique",
      "operator"
   ]
}

Config:
  • extra: str = forbid

Fields:
field operator: Annotated[Literal['present', 'absent', 'eq', 'neq', 'lt', 'lte', 'gt', 'gte'], FieldInfo(annotation=NoneType, required=True, description='Operator for the condition')] [Required]

Operator for the condition

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=False, default=None, description='Value for the condition')] = None

Value for the condition

Philips Plugins#

pydantic model enhomie.philips.params.DriverPhueButtonParams[source]

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "DriverPhueButtonParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {
      "device": {
         "description": "Device that is in scope",
         "minLength": 1,
         "title": "Device",
         "type": "string"
      },
      "events": {
         "anyOf": [
            {
               "items": {
                  "enum": [
                     "initial_press",
                     "long_release",
                     "short_release"
                  ],
                  "type": "string"
               },
               "minItems": 1,
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Events that will be matched",
         "title": "Events"
      },
      "sensor": {
         "description": "Sensor that will be matched",
         "enum": [
            "button1",
            "button2",
            "button3",
            "button4"
         ],
         "title": "Sensor",
         "type": "string"
      }
   },
   "additionalProperties": false,
   "required": [
      "device",
      "sensor"
   ]
}

Config:
  • extra: str = forbid

Fields:
field device: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Device that is in scope', metadata=[MinLen(min_length=1)])] [Required]

Device that is in scope

Constraints:
  • min_length = 1

field events: Annotated[list[Literal['initial_press', 'long_release', 'short_release']] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Events that will be matched', metadata=[MinLen(min_length=1)])] = None

Events that will be matched

Constraints:
  • min_length = 1

field sensor: Annotated[Literal['button1', 'button2', 'button3', 'button4'], FieldInfo(annotation=NoneType, required=True, description='Sensor that will be matched')] [Required]

Sensor that will be matched

pydantic model enhomie.philips.params.DriverPhueChangeParams[source]

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "DriverPhueChangeParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {
      "devices": {
         "description": "Devices that are in scope",
         "items": {
            "type": "string"
         },
         "minItems": 1,
         "title": "Devices",
         "type": "array"
      },
      "sensors": {
         "anyOf": [
            {
               "items": {
                  "enum": [
                     "button1",
                     "button2",
                     "button3",
                     "button4",
                     "contact",
                     "motion",
                     "temperature"
                  ],
                  "type": "string"
               },
               "minItems": 1,
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Sensors that will be matched",
         "title": "Sensors"
      },
      "since": {
         "default": 0,
         "description": "Minimum time since changed",
         "minimum": 0,
         "title": "Since",
         "type": "integer"
      }
   },
   "additionalProperties": false,
   "required": [
      "devices"
   ]
}

Config:
  • extra: str = forbid

Fields:
field devices: Annotated[list[str], FieldInfo(annotation=NoneType, required=True, description='Devices that are in scope', metadata=[MinLen(min_length=1)])] [Required]

Devices that are in scope

Constraints:
  • min_length = 1

field sensors: Annotated[list[Literal['button1', 'button2', 'button3', 'button4', 'contact', 'motion', 'temperature']] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Sensors that will be matched', metadata=[MinLen(min_length=1)])] = None

Sensors that will be matched

Constraints:
  • min_length = 1

field since: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=0, description='Minimum time since changed', metadata=[Ge(ge=0)])] = 0

Minimum time since changed

Constraints:
  • ge = 0

pydantic model enhomie.philips.params.DriverPhueContactParams[source]

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "DriverPhueContactParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {
      "device": {
         "description": "Device that is in scope",
         "minLength": 1,
         "title": "Device",
         "type": "string"
      },
      "states": {
         "anyOf": [
            {
               "items": {
                  "enum": [
                     "contact",
                     "no_contact"
                  ],
                  "type": "string"
               },
               "minItems": 1,
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "States that will be matched",
         "title": "States"
      }
   },
   "additionalProperties": false,
   "required": [
      "device"
   ]
}

Config:
  • extra: str = forbid

Fields:
field device: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Device that is in scope', metadata=[MinLen(min_length=1)])] [Required]

Device that is in scope

Constraints:
  • min_length = 1

field states: Annotated[list[Literal['contact', 'no_contact']] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='States that will be matched', metadata=[MinLen(min_length=1)])] = None

States that will be matched

Constraints:
  • min_length = 1

pydantic model enhomie.philips.params.DriverPhueMotionParams[source]

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "DriverPhueMotionParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {
      "device": {
         "description": "Device that is in scope",
         "minLength": 1,
         "title": "Device",
         "type": "string"
      },
      "states": {
         "anyOf": [
            {
               "items": {
                  "enum": [
                     "motion",
                     "no_motion"
                  ],
                  "type": "string"
               },
               "minItems": 1,
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "States that will be matched",
         "title": "States"
      }
   },
   "additionalProperties": false,
   "required": [
      "device"
   ]
}

Config:
  • extra: str = forbid

Fields:
field device: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Device that is in scope', metadata=[MinLen(min_length=1)])] [Required]

Device that is in scope

Constraints:
  • min_length = 1

field states: Annotated[list[Literal['motion', 'no_motion']] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='States that will be matched', metadata=[MinLen(min_length=1)])] = None

States that will be matched

Constraints:
  • min_length = 1

pydantic model enhomie.philips.params.DriverPhueSceneParams[source]

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "DriverPhueSceneParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {
      "scene": {
         "description": "Scene that is in scope",
         "minLength": 1,
         "title": "Scene",
         "type": "string"
      },
      "group": {
         "description": "Group that is in scope",
         "minLength": 1,
         "title": "Group",
         "type": "string"
      },
      "states": {
         "anyOf": [
            {
               "items": {
                  "enum": [
                     "active",
                     "inactive"
                  ],
                  "type": "string"
               },
               "minItems": 1,
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "States that will be matched",
         "title": "States"
      }
   },
   "additionalProperties": false,
   "required": [
      "scene",
      "group"
   ]
}

Config:
  • extra: str = forbid

Fields:
field group: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Group that is in scope', metadata=[MinLen(min_length=1)])] [Required]

Group that is in scope

Constraints:
  • min_length = 1

field scene: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Scene that is in scope', metadata=[MinLen(min_length=1)])] [Required]

Scene that is in scope

Constraints:
  • min_length = 1

field states: Annotated[list[Literal['active', 'inactive']] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='States that will be matched', metadata=[MinLen(min_length=1)])] = None

States that will be matched

Constraints:
  • min_length = 1

Philips Helpers#

enhomie.philips.plugins.phue_sensors(source: PhueFetch) dict[str, str][source]

Return the unique identifier for services on the device.

Parameters:

source – Dictionary of parameters from the bridge.

Returns:

Timestamp for the services that have changed.

enhomie.philips.plugins.phue_changed(source: PhueFetch) dict[str, Time | None][source]

Return the timestamp for the services that have changed.

Parameters:

source – Dictionary of parameters from the bridge.

Returns:

Timestamp for the services that have changed.

enhomie.philips.plugins.phue_current(source: PhueFetch) dict[str, float | bool | str | None][source]

Return the various values for the services within scope.

Parameters:

source – Dictionary of parameters from the bridge.

Returns:

Various values for the services within scope.

Ubiquiti Plugins#

pydantic model enhomie.ubiquiti.params.DriverUbiqClientParams[source]

Bases: HomieParamsModel

Process and validate the Homie configuration parameters.

Show JSON schema
{
   "title": "DriverUbiqClientParams",
   "description": "Process and validate the Homie configuration parameters.",
   "type": "object",
   "properties": {
      "clients": {
         "description": "Clients that are in scope",
         "items": {
            "type": "string"
         },
         "minItems": 1,
         "title": "Clients",
         "type": "array"
      },
      "since": {
         "default": 0,
         "description": "Minimum time since changed",
         "minimum": 0,
         "title": "Since",
         "type": "integer"
      }
   },
   "additionalProperties": false,
   "required": [
      "clients"
   ]
}

Config:
  • extra: str = forbid

Fields:
field clients: Annotated[list[str], FieldInfo(annotation=NoneType, required=True, description='Clients that are in scope', metadata=[MinLen(min_length=1)])] [Required]

Clients that are in scope

Constraints:
  • min_length = 1

field since: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=0, description='Minimum time since changed', metadata=[Ge(ge=0)])] = 0

Minimum time since changed

Constraints:
  • ge = 0

Ubiquiti Helpers#

enhomie.ubiquiti.plugins.ubiq_latest(source: UbiqFetch) Time[source]

Return the timestamp for client association with router.

Parameters:

source – Dictionary of parameters from the bridge.

Returns:

Timestamp for client association with router.

Interface JavaScript#

persist_datagrid(refresh)#

Construct the table with the header using the contents.