| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,65 @@ | ||
| """Module for led controls.""" | ||
| from typing import TYPE_CHECKING, Dict | ||
|
|
||
| from ...feature import Feature, FeatureType | ||
| from ..smartmodule import SmartModule | ||
|
|
||
| if TYPE_CHECKING: | ||
| from ..smartdevice import SmartDevice | ||
|
|
||
|
|
||
| class LedModule(SmartModule): | ||
| """Implementation of led controls.""" | ||
|
|
||
| REQUIRED_COMPONENT = "led" | ||
| QUERY_GETTER_NAME = "get_led_info" | ||
|
|
||
| def __init__(self, device: "SmartDevice", module: str): | ||
| super().__init__(device, module) | ||
| self._add_feature( | ||
| Feature( | ||
| device=device, | ||
| container=self, | ||
| name="LED", | ||
| icon="mdi:led-{state}", | ||
| attribute_getter="led", | ||
| attribute_setter="set_led", | ||
| type=FeatureType.Switch, | ||
| ) | ||
| ) | ||
|
|
||
| def query(self) -> Dict: | ||
| """Query to execute during the update cycle.""" | ||
| return {self.QUERY_GETTER_NAME: {"led_rule": None}} | ||
|
|
||
| @property | ||
| def mode(self): | ||
| """LED mode setting. | ||
|
|
||
| "always", "never", "night_mode" | ||
| """ | ||
| return self.data["led_rule"] | ||
|
|
||
| @property | ||
| def led(self): | ||
| """Return current led status.""" | ||
| return self.data["led_status"] | ||
|
|
||
| async def set_led(self, enable: bool): | ||
| """Set led. | ||
|
|
||
| This should probably be a select with always/never/nightmode. | ||
| """ | ||
| rule = "always" if enable else "never" | ||
| return await self.call("set_led_info", self.data | {"led_rule": rule}) | ||
|
|
||
| @property | ||
| def night_mode_settings(self): | ||
| """Night mode settings.""" | ||
| return { | ||
| "start": self.data["start_time"], | ||
| "end": self.data["end_time"], | ||
| "type": self.data["night_mode_type"], | ||
| "sunrise_offset": self.data["sunrise_offset"], | ||
| "sunset_offset": self.data["sunset_offset"], | ||
| } | ||
| Back | FazBrowse Home | New Git URL |
Uh oh!
There was an error while loading. Please reload this page.