1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
"""
Model(s) for light_level resource on HUE bridge.
https://developers.meethue.com/develop/hue-api-v2/api-reference/#resource_light_level
"""
from dataclasses import dataclass
from datetime import datetime
from .resource import ResourceIdentifier, ResourceTypes
@dataclass
class LightLevelReport:
"""
Represent LightLevelReport as retrieved from api.
https://developers.meethue.com/develop/hue-api-v2/api-reference/#resource_light_level_get
"""
changed: datetime
light_level: int
@dataclass
class LightLevelFeature:
"""Represent LightLevel Feature used by Lightlevel resources."""
light_level_report: LightLevelReport | None
light_level: int | None = None # deprecated
light_level_valid: bool | None = None # deprecated
@property
def value(self) -> int | None:
"""Return the actual/current value."""
# prefer new style attribute (not available on older firmware versions)
if self.light_level_report is not None:
return self.light_level_report.light_level
return self.light_level
@dataclass
class LightLevel:
"""
Represent a (full) `LightLevel` resource when retrieved from the api.
https://developers.meethue.com/develop/hue-api-v2/api-reference/#resource_light_level_get
"""
id: str
owner: ResourceIdentifier
enabled: bool
light: LightLevelFeature
id_v1: str | None = None
type: ResourceTypes = ResourceTypes.LIGHT_LEVEL
@dataclass
class LightLevelPut:
"""
LightLevel resource properties that can be set/updated with a PUT request.
https://developers.meethue.com/develop/hue-api-v2/api-reference/#resource_light_level__id__put
"""
enabled: bool | None = None
|