enhomie.builtins.params package#

Submodules#

enhomie.builtins.params.period module#

Functions and routines associated with Enasis Network Homie Automate.

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

pydantic model enhomie.builtins.params.period.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

enhomie.builtins.params.regexp module#

Functions and routines associated with Enasis Network Homie Automate.

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

pydantic model enhomie.builtins.params.regexp.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

enhomie.builtins.params.store module#

Functions and routines associated with Enasis Network Homie Automate.

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

pydantic model enhomie.builtins.params.store.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

Module contents#

Functions and routines associated with Enasis Network Homie Automate.

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

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