enhomie.homie.params package#
Submodules#
enhomie.homie.params.aspire module#
Functions and routines associated with Enasis Network Homie Automate.
This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.
- class enhomie.homie.params.aspire.HomieAspireParams(*, devices: Annotated[list[str] | None, MinLen(min_length=1)] = None, groups: Annotated[list[str] | None, MinLen(min_length=1)] = None, stage: HomieStageParams | None = None, scene: Annotated[str | None, MinLen(min_length=1)] = None, store: Annotated[list[HomieStoreParams] | None, MinLen(min_length=1)] = None, occurs: Annotated[list[HomieOccurParams] | None, MinLen(min_length=1)] = None, wheres: Annotated[list[HomieWhereParams] | None, MinLen(min_length=1)] = None, pause: Annotated[int, Ge(ge=1), Le(le=86400)] = 3)[source]#
Bases:
HomieChildParamsProcess and validate the Homie configuration parameters.
- devices: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Devices that are in scope', metadata=[MinLen(min_length=1)])]#
- groups: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Groups that are in scope', metadata=[MinLen(min_length=1)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- occurs: Annotated[list[HomieOccurParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugins for the conditions', metadata=[MinLen(min_length=1)])]#
- pause: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=3, description='Delay before acting again', metadata=[Ge(ge=1), Le(le=86400)])]#
- scene: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Update the group light scene', metadata=[MinLen(min_length=1)])]#
- stage: Annotated[HomieStageParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Default device scene config')]#
enhomie.homie.params.child module#
Functions and routines associated with Enasis Network Homie Automate.
This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.
- class enhomie.homie.params.child.HomieChildParams(_parse: Callable[[...], Any] | None = None)[source]#
Bases:
HomieParamsModelProcess and validate the Homie configuration parameters.
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
enhomie.homie.params.common module#
Functions and routines associated with Enasis Network Homie Automate.
This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.
enhomie.homie.params.desire module#
Functions and routines associated with Enasis Network Homie Automate.
This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.
- class enhomie.homie.params.desire.HomieDesireParams(*, devices: Annotated[list[str] | None, MinLen(min_length=1)] = None, groups: Annotated[list[str] | None, MinLen(min_length=1)] = None, stage: HomieStageParams | None = None, scene: Annotated[str | None, MinLen(min_length=1)] = None, store: Annotated[list[HomieStoreParams] | None, MinLen(min_length=1)] = None, wheres: Annotated[list[HomieWhereParams] | None, MinLen(min_length=1)] = None, pause: Annotated[int, Ge(ge=0), Le(le=86400)] = 0, delay: bool = True, weight: Annotated[int, Ge(ge=0), Le(le=1000.0)] = 0)[source]#
Bases:
HomieChildParamsProcess and validate the Homie configuration parameters.
- delay: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=True, description='Enforce pause on initial')]#
- devices: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Devices that are in scope', metadata=[MinLen(min_length=1)])]#
- groups: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Groups that are in scope', metadata=[MinLen(min_length=1)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pause: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=0, description='Delay before acting again', metadata=[Ge(ge=0), Le(le=86400)])]#
- scene: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Update the group light scene', metadata=[MinLen(min_length=1)])]#
- stage: Annotated[HomieStageParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Default device scene config')]#
- store: Annotated[list[HomieStoreParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Update values in database', metadata=[MinLen(min_length=1)])]#
enhomie.homie.params.device module#
Functions and routines associated with Enasis Network Homie Automate.
This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.
- class enhomie.homie.params.device.HomieDeviceParams(_parse: Callable[[...], Any] | None = None, *, origin: Annotated[str, MinLen(min_length=1)], label: Annotated[str | None, MinLen(min_length=1)] = None, unique: Annotated[str | None, MinLen(min_length=1)] = None)[source]#
Bases:
HomieChildParamsProcess and validate the Homie configuration parameters.
- label: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Device name in the origin', metadata=[MinLen(min_length=1)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
enhomie.homie.params.group module#
Functions and routines associated with Enasis Network Homie Automate.
This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.
- class enhomie.homie.params.group.HomieGroupParams(*, origin: Annotated[str | None, MinLen(min_length=1)] = None, label: Annotated[str | None, MinLen(min_length=1)] = None, devices: Annotated[list[str] | None, MinLen(min_length=1)] = None)[source]#
Bases:
HomieChildParamsProcess and validate the Homie configuration parameters.
- devices: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='List of devices in group', metadata=[MinLen(min_length=1)])]#
- label: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Group name in the origin', metadata=[MinLen(min_length=1)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
enhomie.homie.params.homie module#
Functions and routines associated with Enasis Network Homie Automate.
This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.
- class enhomie.homie.params.homie.HomieFiltersParams(*, aspires: Annotated[list[str] | None, MinLen(min_length=1)] = None, desires: Annotated[list[str] | None, MinLen(min_length=1)] = None)[source]#
Bases:
HomieParamsModelProcess and validate the Homie configuration parameters.
- aspires: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Patterns the names must match', metadata=[MinLen(min_length=1)])]#
- desires: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Patterns the names must match', metadata=[MinLen(min_length=1)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class enhomie.homie.params.homie.HomieParams(_parse: ~typing.Callable[[...], ~typing.Any] | None = None, *, enconfig: ~encommon.config.params.ConfigParams | None = None, enlogger: ~encommon.config.params.LoggerParams | None = None, encrypts: ~encommon.crypts.params.CryptsParams | None = None, database: ~typing.Annotated[str, ~annotated_types.MinLen(min_length=1)] = 'sqlite:///:memory:', dryrun: bool = False, potent: bool = True, printer: ~enhomie.homie.params.homie.HomiePrinterParams = <factory>, service: ~enhomie.homie.params.service.HomieServiceParams = <factory>, restful: ~enhomie.restful.params.RestfulServiceParams = <factory>, persists: ~typing.Annotated[dict[str, ~enhomie.homie.params.persist.HomiePersistParams] | None, ~annotated_types.MinLen(min_length=1)] = None, filters: ~enhomie.homie.params.homie.HomieFiltersParams = <factory>, origins: ~typing.Annotated[dict[str, ~enhomie.homie.params.origin.HomieOriginParams] | None, ~annotated_types.MinLen(min_length=1)] = None, devices: ~typing.Annotated[dict[str, ~enhomie.homie.params.device.HomieDeviceParams] | None, ~annotated_types.MinLen(min_length=1)] = None, groups: ~typing.Annotated[dict[str, ~enhomie.homie.params.group.HomieGroupParams] | None, ~annotated_types.MinLen(min_length=1)] = None, scenes: ~typing.Annotated[dict[str, ~enhomie.homie.params.scene.HomieSceneParams] | None, ~annotated_types.MinLen(min_length=1)] = None, desires: ~typing.Annotated[dict[str, ~enhomie.homie.params.desire.HomieDesireParams] | None, ~annotated_types.MinLen(min_length=1)] = None, aspires: ~typing.Annotated[dict[str, ~enhomie.homie.params.aspire.HomieAspireParams] | None, ~annotated_types.MinLen(min_length=1)] = None)[source]#
Bases:
ParamsProcess and validate the core configuration parameters.
- aspires: Annotated[dict[str, HomieAspireParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie aspires', metadata=[MinLen(min_length=1)])]#
- database: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='sqlite:///:memory:', description='Database connection string', metadata=[MinLen(min_length=1)])]#
- desires: Annotated[dict[str, HomieDesireParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie desires', metadata=[MinLen(min_length=1)])]#
- devices: Annotated[dict[str, HomieDeviceParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie devices', metadata=[MinLen(min_length=1)])]#
- dryrun: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Determine if changes applied')]#
- filters: Annotated[HomieFiltersParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieFiltersParams, description='Determine object instantiation')]#
- groups: Annotated[dict[str, HomieGroupParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie groups', metadata=[MinLen(min_length=1)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- origins: Annotated[dict[str, HomieOriginParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie origins', metadata=[MinLen(min_length=1)])]#
- persists: Annotated[dict[str, HomiePersistParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for common persists', metadata=[MinLen(min_length=1)])]#
- potent: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=True, description='Ignore idempotency in change')]#
- printer: Annotated[HomiePrinterParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomiePrinterParams, description='Print the stream to console')]#
- restful: Annotated[RestfulServiceParams, FieldInfo(annotation=NoneType, required=False, default_factory=RestfulServiceParams, description='Parameters for Homie RESTful')]#
- scenes: Annotated[dict[str, HomieSceneParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie scenes', metadata=[MinLen(min_length=1)])]#
- service: Annotated[HomieServiceParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieServiceParams, description='Parameters for Homie Service')]#
- class enhomie.homie.params.homie.HomiePrinterParams(*, action: bool = False, update: bool = False, stream: bool = False, desire: bool = False, aspire: bool = False)[source]#
Bases:
HomieParamsModelProcess and validate the Homie configuration parameters.
- action: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Print the actions to console')]#
- aspire: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Print the aspires to console')]#
- desire: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Print the aspires to console')]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
enhomie.homie.params.occur module#
Functions and routines associated with Enasis Network Homie Automate.
This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.
- class enhomie.homie.params.occur.HomieOccurParams(*, builtins_regexp: DriverBltnRegexpParams | None = None, philips_button: DriverPhueButtonParams | None = None, philips_contact: DriverPhueContactParams | None = None, philips_motion: DriverPhueMotionParams | None = None, philips_scene: DriverPhueSceneParams | None = None)[source]#
Bases:
HomiePluginParamsProcess and validate the Homie configuration parameters.
- builtins_regexp: Annotated[DriverBltnRegexpParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- philips_button: Annotated[DriverPhueButtonParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')]#
- philips_contact: Annotated[DriverPhueContactParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')]#
- philips_motion: Annotated[DriverPhueMotionParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')]#
- philips_scene: Annotated[DriverPhueSceneParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')]#
enhomie.homie.params.origin module#
Functions and routines associated with Enasis Network Homie Automate.
This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.
- class enhomie.homie.params.origin.HomieOriginParams(_parse: Callable[[...], Any] | None = None, *, hubitat: HubiOriginParams | None = None, philips: PhueOriginParams | None = None, ubiquiti: UbiqOriginParams | None = None)[source]#
Bases:
HomieChildParamsProcess and validate the Homie configuration parameters.
- hubitat: Annotated[HubiOriginParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Connection specific parameters')]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- philips: Annotated[PhueOriginParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Connection specific parameters')]#
- ubiquiti: Annotated[UbiqOriginParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Connection specific parameters')]#
enhomie.homie.params.persist module#
Functions and routines associated with Enasis Network Homie Automate.
This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.
- class enhomie.homie.params.persist.HomiePersistParams(*, value_unit: Annotated[str | None, MinLen(min_length=1)] = None, value_label: Annotated[str | None, MinLen(min_length=1)] = None, value_icon: Annotated[str | None, MinLen(min_length=1)] = None, about: Annotated[str | None, MinLen(min_length=1)] = None, about_label: Annotated[str | None, MinLen(min_length=1)] = None, about_icon: Annotated[str | None, MinLen(min_length=1)] = None, level: Annotated[Literal['failure', 'information', 'success', 'warning'] | None, MinLen(min_length=1)] = None, tags: Annotated[list[str] | None, MinLen(min_length=1)] = None, expire: Annotated[str | None, MinLen(min_length=1), _PydanticGeneralMetadata(pattern=re.compile('^(\\d+(s|m|h|d|w|y))*$'))] = None)[source]#
Bases:
HomieParamsModelProcess and validate the Homie configuration parameters.
- about: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='About the persist entry', metadata=[MinLen(min_length=1)])]#
- about_icon: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Icon for persist entry', metadata=[MinLen(min_length=1)])]#
- about_label: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Label for persist entry', metadata=[MinLen(min_length=1)])]#
- 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))*$'))])]#
- 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)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- tags: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Tags for persist entry', metadata=[MinLen(min_length=1)])]#
- value_icon: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Icon for persist value', metadata=[MinLen(min_length=1)])]#
enhomie.homie.params.plugin module#
Functions and routines associated with Enasis Network Homie Automate.
This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.
- class enhomie.homie.params.plugin.HomiePluginParams[source]#
Bases:
HomieParamsModelProcess and validate the Homie configuration parameters.
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
enhomie.homie.params.scene module#
Functions and routines associated with Enasis Network Homie Automate.
This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.
- class enhomie.homie.params.scene.HomieSceneParams(_parse: ~typing.Callable[[...], ~typing.Any] | None = None, *, label: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, stage: ~enhomie.homie.params.stage.HomieStageParams = <factory>, devices: ~typing.Annotated[dict[str, ~enhomie.homie.params.stage.HomieStageParams] | None, ~annotated_types.MinLen(min_length=1)] = None)[source]#
Bases:
HomieChildParamsProcess and validate the Homie configuration parameters.
- devices: Annotated[dict[str, HomieStageParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Device specific scene config', metadata=[MinLen(min_length=1)])]#
- label: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Scene name in the origin', metadata=[MinLen(min_length=1)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stage: Annotated[HomieStageParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieStageParams, description='Default device scene config')]#
enhomie.homie.params.service module#
Functions and routines associated with Enasis Network Homie Automate.
This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.
- class enhomie.homie.params.service.HomieServiceMembersParams(*, actions: bool = True, streams: bool = True, updates: bool = True, restful: bool = False)[source]#
Bases:
HomieParamsModelProcess and validate the Homie configuration parameters.
- actions: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=True, description='Determine whether created')]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- restful: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Determine whether created')]#
- class enhomie.homie.params.service.HomieServiceParams(*, respite: HomieServiceRespiteParams = <factory>, timeout: HomieServiceTimeoutParams = <factory>, members: HomieServiceMembersParams = <factory>)[source]#
Bases:
HomieParamsModelProcess and validate the Homie configuration parameters.
- members: Annotated[HomieServiceMembersParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieServiceMembersParams, description='Which members are created')]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- respite: Annotated[HomieServiceRespiteParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieServiceRespiteParams, description='When operates are performed')]#
- timeout: Annotated[HomieServiceTimeoutParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieServiceTimeoutParams, description='Override source or defaults')]#
- class enhomie.homie.params.service.HomieServiceRespiteParams(*, desire: Annotated[int, Ge(ge=1), Le(le=900)] = 60, update: Annotated[int, Ge(ge=1), Le(le=900)] = 60, health: Annotated[int, Ge(ge=1), Le(le=15)] = 3)[source]#
Bases:
HomieParamsModelProcess and validate the Homie configuration parameters.
- desire: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=60, description='How often desires performed', metadata=[Ge(ge=1), Le(le=900)])]#
- health: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=3, description='How often health is checked', metadata=[Ge(ge=1), Le(le=15)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class enhomie.homie.params.service.HomieServiceTimeoutParams(*, action: Annotated[int, Ge(ge=1), Le(le=30)] = 5, update: Annotated[int, Ge(ge=1), Le(le=30)] = 3, stream: Annotated[int, Ge(ge=1), Le(le=900)] = 60)[source]#
Bases:
HomieParamsModelProcess and validate the Homie configuration parameters.
- action: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=5, description='Override the actions timeout', metadata=[Ge(ge=1), Le(le=30)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
enhomie.homie.params.stage module#
Functions and routines associated with Enasis Network Homie Automate.
This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.
- class enhomie.homie.params.stage.HomieStageParams(*, state: Literal['poweron', 'nopower'] | None = None, color: Annotated[str | None, MinLen(min_length=6), MaxLen(max_length=6)] = None, level: Annotated[int | None, Ge(ge=0), Le(le=100)] = None)[source]#
Bases:
HomieParamsModelProcess and validate the Homie configuration parameters.
- color: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Setting for the light color', metadata=[MinLen(min_length=6), MaxLen(max_length=6)])]#
- level: Annotated[int | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Setting for the light level', metadata=[Ge(ge=0), Le(le=100)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
enhomie.homie.params.store module#
Functions and routines associated with Enasis Network Homie Automate.
This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.
- class enhomie.homie.params.store.HomieStoreParams(*, unique: Annotated[str, MinLen(min_length=1)], value: int | float | bool | str | None, value_unit: Annotated[str | None, MinLen(min_length=1)] = None, value_label: Annotated[str | None, MinLen(min_length=1)] = None, value_icon: Annotated[str | None, MinLen(min_length=1)] = None, about: Annotated[str | None, MinLen(min_length=1)] = None, about_label: Annotated[str | None, MinLen(min_length=1)] = None, about_icon: Annotated[str | None, MinLen(min_length=1)] = None, level: Annotated[Literal['failure', 'information', 'success', 'warning'] | None, MinLen(min_length=1)] = None, tags: Annotated[list[str] | None, MinLen(min_length=1)] = None, expire: Annotated[str | None, MinLen(min_length=1), _PydanticGeneralMetadata(pattern=re.compile('^(\\d+(s|m|h|d|w|y))*$'))] = '1d')[source]#
Bases:
HomieParamsModelProcess and validate the Homie configuration parameters.
- about: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='About the persist entry', metadata=[MinLen(min_length=1)])]#
- about_icon: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Icon for persist entry', metadata=[MinLen(min_length=1)])]#
- about_label: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Label for persist entry', metadata=[MinLen(min_length=1)])]#
- 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))*$'))])]#
- 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)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- tags: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Tags for persist entry', metadata=[MinLen(min_length=1)])]#
- unique: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Unique key for the value', metadata=[MinLen(min_length=1)])]#
- value: Annotated[int | float | bool | str | None, FieldInfo(annotation=NoneType, required=True, description='Value stored at unique')]#
- value_icon: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Icon for persist value', metadata=[MinLen(min_length=1)])]#
enhomie.homie.params.where module#
Functions and routines associated with Enasis Network Homie Automate.
This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.
- class enhomie.homie.params.where.HomieWhereParams(*, negate: bool = False, family: Annotated[str, MinLen(min_length=1)] = 'default', builtins_store: DriverBltnStoreParams | None = None, builtins_period: DriverBltnPeriodParams | None = None, philips_change: DriverPhueChangeParams | None = None, ubiquiti_client: DriverUbiqClientParams | None = None)[source]#
Bases:
HomiePluginParamsProcess and validate the Homie configuration parameters.
Note
When using the default family, the conditons are in an AND relationship. If another name is given for family, those will be with an OR relationship.
- builtins_period: Annotated[DriverBltnPeriodParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')]#
- builtins_store: Annotated[DriverBltnStoreParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')]#
- family: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='default', description='Combine conditions in group', metadata=[MinLen(min_length=1)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- negate: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Invert conditional outcome')]#
- philips_change: Annotated[DriverPhueChangeParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')]#
- ubiquiti_client: Annotated[DriverUbiqClientParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')]#
Module contents#
Functions and routines associated with Enasis Network Homie Automate.
This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.
- class enhomie.homie.params.HomieAspireParams(*, devices: Annotated[list[str] | None, MinLen(min_length=1)] = None, groups: Annotated[list[str] | None, MinLen(min_length=1)] = None, stage: HomieStageParams | None = None, scene: Annotated[str | None, MinLen(min_length=1)] = None, store: Annotated[list[HomieStoreParams] | None, MinLen(min_length=1)] = None, occurs: Annotated[list[HomieOccurParams] | None, MinLen(min_length=1)] = None, wheres: Annotated[list[HomieWhereParams] | None, MinLen(min_length=1)] = None, pause: Annotated[int, Ge(ge=1), Le(le=86400)] = 3)[source]#
Bases:
HomieChildParamsProcess and validate the Homie configuration parameters.
- devices: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Devices that are in scope', metadata=[MinLen(min_length=1)])]#
- groups: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Groups that are in scope', metadata=[MinLen(min_length=1)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- occurs: Annotated[list[HomieOccurParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugins for the conditions', metadata=[MinLen(min_length=1)])]#
- pause: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=3, description='Delay before acting again', metadata=[Ge(ge=1), Le(le=86400)])]#
- scene: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Update the group light scene', metadata=[MinLen(min_length=1)])]#
- stage: Annotated[HomieStageParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Default device scene config')]#
- class enhomie.homie.params.HomieChildParams(_parse: Callable[[...], Any] | None = None)[source]#
Bases:
HomieParamsModelProcess and validate the Homie configuration parameters.
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class enhomie.homie.params.HomieDesireParams(*, devices: Annotated[list[str] | None, MinLen(min_length=1)] = None, groups: Annotated[list[str] | None, MinLen(min_length=1)] = None, stage: HomieStageParams | None = None, scene: Annotated[str | None, MinLen(min_length=1)] = None, store: Annotated[list[HomieStoreParams] | None, MinLen(min_length=1)] = None, wheres: Annotated[list[HomieWhereParams] | None, MinLen(min_length=1)] = None, pause: Annotated[int, Ge(ge=0), Le(le=86400)] = 0, delay: bool = True, weight: Annotated[int, Ge(ge=0), Le(le=1000.0)] = 0)[source]#
Bases:
HomieChildParamsProcess and validate the Homie configuration parameters.
- delay: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=True, description='Enforce pause on initial')]#
- devices: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Devices that are in scope', metadata=[MinLen(min_length=1)])]#
- groups: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Groups that are in scope', metadata=[MinLen(min_length=1)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pause: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=0, description='Delay before acting again', metadata=[Ge(ge=0), Le(le=86400)])]#
- scene: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Update the group light scene', metadata=[MinLen(min_length=1)])]#
- stage: Annotated[HomieStageParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Default device scene config')]#
- store: Annotated[list[HomieStoreParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Update values in database', metadata=[MinLen(min_length=1)])]#
- class enhomie.homie.params.HomieDeviceParams(_parse: Callable[[...], Any] | None = None, *, origin: Annotated[str, MinLen(min_length=1)], label: Annotated[str | None, MinLen(min_length=1)] = None, unique: Annotated[str | None, MinLen(min_length=1)] = None)[source]#
Bases:
HomieChildParamsProcess and validate the Homie configuration parameters.
- label: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Device name in the origin', metadata=[MinLen(min_length=1)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class enhomie.homie.params.HomieGroupParams(*, origin: Annotated[str | None, MinLen(min_length=1)] = None, label: Annotated[str | None, MinLen(min_length=1)] = None, devices: Annotated[list[str] | None, MinLen(min_length=1)] = None)[source]#
Bases:
HomieChildParamsProcess and validate the Homie configuration parameters.
- devices: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='List of devices in group', metadata=[MinLen(min_length=1)])]#
- label: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Group name in the origin', metadata=[MinLen(min_length=1)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class enhomie.homie.params.HomieOccurParams(*, builtins_regexp: DriverBltnRegexpParams | None = None, philips_button: DriverPhueButtonParams | None = None, philips_contact: DriverPhueContactParams | None = None, philips_motion: DriverPhueMotionParams | None = None, philips_scene: DriverPhueSceneParams | None = None)[source]#
Bases:
HomiePluginParamsProcess and validate the Homie configuration parameters.
- builtins_regexp: Annotated[DriverBltnRegexpParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- philips_button: Annotated[DriverPhueButtonParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')]#
- philips_contact: Annotated[DriverPhueContactParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')]#
- philips_motion: Annotated[DriverPhueMotionParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')]#
- philips_scene: Annotated[DriverPhueSceneParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')]#
- class enhomie.homie.params.HomieOriginParams(_parse: Callable[[...], Any] | None = None, *, hubitat: HubiOriginParams | None = None, philips: PhueOriginParams | None = None, ubiquiti: UbiqOriginParams | None = None)[source]#
Bases:
HomieChildParamsProcess and validate the Homie configuration parameters.
- hubitat: Annotated[HubiOriginParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Connection specific parameters')]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- philips: Annotated[PhueOriginParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Connection specific parameters')]#
- ubiquiti: Annotated[UbiqOriginParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Connection specific parameters')]#
- class enhomie.homie.params.HomieParams(_parse: ~typing.Callable[[...], ~typing.Any] | None = None, *, enconfig: ~encommon.config.params.ConfigParams | None = None, enlogger: ~encommon.config.params.LoggerParams | None = None, encrypts: ~encommon.crypts.params.CryptsParams | None = None, database: ~typing.Annotated[str, ~annotated_types.MinLen(min_length=1)] = 'sqlite:///:memory:', dryrun: bool = False, potent: bool = True, printer: ~enhomie.homie.params.homie.HomiePrinterParams = <factory>, service: ~enhomie.homie.params.service.HomieServiceParams = <factory>, restful: ~enhomie.restful.params.RestfulServiceParams = <factory>, persists: ~typing.Annotated[dict[str, ~enhomie.homie.params.persist.HomiePersistParams] | None, ~annotated_types.MinLen(min_length=1)] = None, filters: ~enhomie.homie.params.homie.HomieFiltersParams = <factory>, origins: ~typing.Annotated[dict[str, ~enhomie.homie.params.origin.HomieOriginParams] | None, ~annotated_types.MinLen(min_length=1)] = None, devices: ~typing.Annotated[dict[str, ~enhomie.homie.params.device.HomieDeviceParams] | None, ~annotated_types.MinLen(min_length=1)] = None, groups: ~typing.Annotated[dict[str, ~enhomie.homie.params.group.HomieGroupParams] | None, ~annotated_types.MinLen(min_length=1)] = None, scenes: ~typing.Annotated[dict[str, ~enhomie.homie.params.scene.HomieSceneParams] | None, ~annotated_types.MinLen(min_length=1)] = None, desires: ~typing.Annotated[dict[str, ~enhomie.homie.params.desire.HomieDesireParams] | None, ~annotated_types.MinLen(min_length=1)] = None, aspires: ~typing.Annotated[dict[str, ~enhomie.homie.params.aspire.HomieAspireParams] | None, ~annotated_types.MinLen(min_length=1)] = None)[source]#
Bases:
ParamsProcess and validate the core configuration parameters.
- aspires: Annotated[dict[str, HomieAspireParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie aspires', metadata=[MinLen(min_length=1)])]#
- database: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='sqlite:///:memory:', description='Database connection string', metadata=[MinLen(min_length=1)])]#
- desires: Annotated[dict[str, HomieDesireParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie desires', metadata=[MinLen(min_length=1)])]#
- devices: Annotated[dict[str, HomieDeviceParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie devices', metadata=[MinLen(min_length=1)])]#
- dryrun: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Determine if changes applied')]#
- filters: Annotated[HomieFiltersParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieFiltersParams, description='Determine object instantiation')]#
- groups: Annotated[dict[str, HomieGroupParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie groups', metadata=[MinLen(min_length=1)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- origins: Annotated[dict[str, HomieOriginParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie origins', metadata=[MinLen(min_length=1)])]#
- persists: Annotated[dict[str, HomiePersistParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for common persists', metadata=[MinLen(min_length=1)])]#
- potent: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=True, description='Ignore idempotency in change')]#
- printer: Annotated[HomiePrinterParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomiePrinterParams, description='Print the stream to console')]#
- restful: Annotated[RestfulServiceParams, FieldInfo(annotation=NoneType, required=False, default_factory=RestfulServiceParams, description='Parameters for Homie RESTful')]#
- scenes: Annotated[dict[str, HomieSceneParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Homie scenes', metadata=[MinLen(min_length=1)])]#
- service: Annotated[HomieServiceParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieServiceParams, description='Parameters for Homie Service')]#
- class enhomie.homie.params.HomieParamsModel[source]#
Bases:
BaseModelProcess and validate the Homie configuration parameters.
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class enhomie.homie.params.HomiePersistParams(*, value_unit: Annotated[str | None, MinLen(min_length=1)] = None, value_label: Annotated[str | None, MinLen(min_length=1)] = None, value_icon: Annotated[str | None, MinLen(min_length=1)] = None, about: Annotated[str | None, MinLen(min_length=1)] = None, about_label: Annotated[str | None, MinLen(min_length=1)] = None, about_icon: Annotated[str | None, MinLen(min_length=1)] = None, level: Annotated[Literal['failure', 'information', 'success', 'warning'] | None, MinLen(min_length=1)] = None, tags: Annotated[list[str] | None, MinLen(min_length=1)] = None, expire: Annotated[str | None, MinLen(min_length=1), _PydanticGeneralMetadata(pattern=re.compile('^(\\d+(s|m|h|d|w|y))*$'))] = None)[source]#
Bases:
HomieParamsModelProcess and validate the Homie configuration parameters.
- about: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='About the persist entry', metadata=[MinLen(min_length=1)])]#
- about_icon: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Icon for persist entry', metadata=[MinLen(min_length=1)])]#
- about_label: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Label for persist entry', metadata=[MinLen(min_length=1)])]#
- 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))*$'))])]#
- 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)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- tags: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Tags for persist entry', metadata=[MinLen(min_length=1)])]#
- value_icon: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Icon for persist value', metadata=[MinLen(min_length=1)])]#
- class enhomie.homie.params.HomiePluginParams[source]#
Bases:
HomieParamsModelProcess and validate the Homie configuration parameters.
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class enhomie.homie.params.HomiePrinterParams(*, action: bool = False, update: bool = False, stream: bool = False, desire: bool = False, aspire: bool = False)[source]#
Bases:
HomieParamsModelProcess and validate the Homie configuration parameters.
- action: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Print the actions to console')]#
- aspire: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Print the aspires to console')]#
- desire: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Print the aspires to console')]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class enhomie.homie.params.HomieSceneParams(_parse: ~typing.Callable[[...], ~typing.Any] | None = None, *, label: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, stage: ~enhomie.homie.params.stage.HomieStageParams = <factory>, devices: ~typing.Annotated[dict[str, ~enhomie.homie.params.stage.HomieStageParams] | None, ~annotated_types.MinLen(min_length=1)] = None)[source]#
Bases:
HomieChildParamsProcess and validate the Homie configuration parameters.
- devices: Annotated[dict[str, HomieStageParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Device specific scene config', metadata=[MinLen(min_length=1)])]#
- label: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Scene name in the origin', metadata=[MinLen(min_length=1)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stage: Annotated[HomieStageParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieStageParams, description='Default device scene config')]#
- class enhomie.homie.params.HomieServiceParams(*, respite: HomieServiceRespiteParams = <factory>, timeout: HomieServiceTimeoutParams = <factory>, members: HomieServiceMembersParams = <factory>)[source]#
Bases:
HomieParamsModelProcess and validate the Homie configuration parameters.
- members: Annotated[HomieServiceMembersParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieServiceMembersParams, description='Which members are created')]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- respite: Annotated[HomieServiceRespiteParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieServiceRespiteParams, description='When operates are performed')]#
- timeout: Annotated[HomieServiceTimeoutParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomieServiceTimeoutParams, description='Override source or defaults')]#
- class enhomie.homie.params.HomieStoreParams(*, unique: Annotated[str, MinLen(min_length=1)], value: int | float | bool | str | None, value_unit: Annotated[str | None, MinLen(min_length=1)] = None, value_label: Annotated[str | None, MinLen(min_length=1)] = None, value_icon: Annotated[str | None, MinLen(min_length=1)] = None, about: Annotated[str | None, MinLen(min_length=1)] = None, about_label: Annotated[str | None, MinLen(min_length=1)] = None, about_icon: Annotated[str | None, MinLen(min_length=1)] = None, level: Annotated[Literal['failure', 'information', 'success', 'warning'] | None, MinLen(min_length=1)] = None, tags: Annotated[list[str] | None, MinLen(min_length=1)] = None, expire: Annotated[str | None, MinLen(min_length=1), _PydanticGeneralMetadata(pattern=re.compile('^(\\d+(s|m|h|d|w|y))*$'))] = '1d')[source]#
Bases:
HomieParamsModelProcess and validate the Homie configuration parameters.
- about: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='About the persist entry', metadata=[MinLen(min_length=1)])]#
- about_icon: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Icon for persist entry', metadata=[MinLen(min_length=1)])]#
- about_label: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Label for persist entry', metadata=[MinLen(min_length=1)])]#
- 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))*$'))])]#
- 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)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- tags: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Tags for persist entry', metadata=[MinLen(min_length=1)])]#
- unique: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Unique key for the value', metadata=[MinLen(min_length=1)])]#
- value: Annotated[int | float | bool | str | None, FieldInfo(annotation=NoneType, required=True, description='Value stored at unique')]#
- value_icon: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Icon for persist value', metadata=[MinLen(min_length=1)])]#
- class enhomie.homie.params.HomieWhereParams(*, negate: bool = False, family: Annotated[str, MinLen(min_length=1)] = 'default', builtins_store: DriverBltnStoreParams | None = None, builtins_period: DriverBltnPeriodParams | None = None, philips_change: DriverPhueChangeParams | None = None, ubiquiti_client: DriverUbiqClientParams | None = None)[source]#
Bases:
HomiePluginParamsProcess and validate the Homie configuration parameters.
Note
When using the default family, the conditons are in an AND relationship. If another name is given for family, those will be with an OR relationship.
- builtins_period: Annotated[DriverBltnPeriodParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')]#
- builtins_store: Annotated[DriverBltnStoreParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')]#
- family: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='default', description='Combine conditions in group', metadata=[MinLen(min_length=1)])]#
- model_config = {'extra': 'forbid'}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- negate: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Invert conditional outcome')]#
- philips_change: Annotated[DriverPhueChangeParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')]#
- ubiquiti_client: Annotated[DriverUbiqClientParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Plugin for the operations')]#