Improve type hints in light [i-r] (#75943)

This commit is contained in:
epenet 2022-07-31 13:53:22 +02:00 committed by GitHub
parent 11a19c2612
commit 7b1463e03d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 78 additions and 54 deletions

View File

@ -1,4 +1,6 @@
"""Support for Insteon lights via PowerLinc Modem.""" """Support for Insteon lights via PowerLinc Modem."""
from typing import Any
from pyinsteon.config import ON_LEVEL from pyinsteon.config import ON_LEVEL
from homeassistant.components.light import ( from homeassistant.components.light import (
@ -50,11 +52,11 @@ class InsteonDimmerEntity(InsteonEntity, LightEntity):
return self._insteon_device_group.value return self._insteon_device_group.value
@property @property
def is_on(self): def is_on(self) -> bool:
"""Return the boolean response if the node is on.""" """Return the boolean response if the node is on."""
return bool(self.brightness) return bool(self.brightness)
async def async_turn_on(self, **kwargs): async def async_turn_on(self, **kwargs: Any) -> None:
"""Turn light on.""" """Turn light on."""
if ATTR_BRIGHTNESS in kwargs: if ATTR_BRIGHTNESS in kwargs:
brightness = int(kwargs[ATTR_BRIGHTNESS]) brightness = int(kwargs[ATTR_BRIGHTNESS])
@ -67,6 +69,6 @@ class InsteonDimmerEntity(InsteonEntity, LightEntity):
else: else:
await self._insteon_device.async_on(group=self._insteon_device_group.group) await self._insteon_device.async_on(group=self._insteon_device_group.group)
async def async_turn_off(self, **kwargs): async def async_turn_off(self, **kwargs: Any) -> None:
"""Turn light off.""" """Turn light off."""
await self._insteon_device.async_off(self._insteon_device_group.group) await self._insteon_device.async_off(self._insteon_device_group.group)

View File

@ -3,6 +3,7 @@ from __future__ import annotations
from datetime import timedelta from datetime import timedelta
import logging import logging
from typing import Any
import pykulersky import pykulersky
@ -116,7 +117,7 @@ class KulerskyLight(LightEntity):
"""Return True if entity is available.""" """Return True if entity is available."""
return self._available return self._available
async def async_turn_on(self, **kwargs): async def async_turn_on(self, **kwargs: Any) -> None:
"""Instruct the light to turn on.""" """Instruct the light to turn on."""
default_rgbw = (255,) * 4 if self.rgbw_color is None else self.rgbw_color default_rgbw = (255,) * 4 if self.rgbw_color is None else self.rgbw_color
rgbw = kwargs.get(ATTR_RGBW_COLOR, default_rgbw) rgbw = kwargs.get(ATTR_RGBW_COLOR, default_rgbw)
@ -134,7 +135,7 @@ class KulerskyLight(LightEntity):
await self._light.set_color(*rgbw_scaled) await self._light.set_color(*rgbw_scaled)
async def async_turn_off(self, **kwargs): async def async_turn_off(self, **kwargs: Any) -> None:
"""Instruct the light to turn off.""" """Instruct the light to turn off."""
await self._light.set_color(0, 0, 0, 0) await self._light.set_color(0, 0, 0, 0)

View File

@ -1,6 +1,8 @@
"""Support for LightwaveRF lights.""" """Support for LightwaveRF lights."""
from __future__ import annotations from __future__ import annotations
from typing import Any
from homeassistant.components.light import ATTR_BRIGHTNESS, ColorMode, LightEntity from homeassistant.components.light import ATTR_BRIGHTNESS, ColorMode, LightEntity
from homeassistant.const import CONF_NAME from homeassistant.const import CONF_NAME
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
@ -46,7 +48,7 @@ class LWRFLight(LightEntity):
self._attr_brightness = MAX_BRIGHTNESS self._attr_brightness = MAX_BRIGHTNESS
self._lwlink = lwlink self._lwlink = lwlink
async def async_turn_on(self, **kwargs): async def async_turn_on(self, **kwargs: Any) -> None:
"""Turn the LightWave light on.""" """Turn the LightWave light on."""
self._attr_is_on = True self._attr_is_on = True
@ -62,7 +64,7 @@ class LWRFLight(LightEntity):
self.async_write_ha_state() self.async_write_ha_state()
async def async_turn_off(self, **kwargs): async def async_turn_off(self, **kwargs: Any) -> None:
"""Turn the LightWave light off.""" """Turn the LightWave light off."""
self._attr_is_on = False self._attr_is_on = False
self._lwlink.turn_off(self._device_id, self._attr_name) self._lwlink.turn_off(self._device_id, self._attr_name)

View File

@ -240,7 +240,7 @@ class LimitlessLEDGroup(LightEntity, RestoreEntity):
self._color = None self._color = None
self._effect = None self._effect = None
async def async_added_to_hass(self): async def async_added_to_hass(self) -> None:
"""Handle entity about to be added to hass event.""" """Handle entity about to be added to hass event."""
await super().async_added_to_hass() await super().async_added_to_hass()
if last_state := await self.async_get_last_state(): if last_state := await self.async_get_last_state():

View File

@ -1,5 +1,6 @@
"""Support for LiteJet lights.""" """Support for LiteJet lights."""
import logging import logging
from typing import Any
from homeassistant.components.light import ( from homeassistant.components.light import (
ATTR_BRIGHTNESS, ATTR_BRIGHTNESS,
@ -53,12 +54,12 @@ class LiteJetLight(LightEntity):
self._brightness = 0 self._brightness = 0
self._name = name self._name = name
async def async_added_to_hass(self): async def async_added_to_hass(self) -> None:
"""Run when this Entity has been added to HA.""" """Run when this Entity has been added to HA."""
self._lj.on_load_activated(self._index, self._on_load_changed) self._lj.on_load_activated(self._index, self._on_load_changed)
self._lj.on_load_deactivated(self._index, self._on_load_changed) self._lj.on_load_deactivated(self._index, self._on_load_changed)
async def async_will_remove_from_hass(self): async def async_will_remove_from_hass(self) -> None:
"""Entity being removed from hass.""" """Entity being removed from hass."""
self._lj.unsubscribe(self._on_load_changed) self._lj.unsubscribe(self._on_load_changed)
@ -97,7 +98,7 @@ class LiteJetLight(LightEntity):
"""Return the device state attributes.""" """Return the device state attributes."""
return {ATTR_NUMBER: self._index} return {ATTR_NUMBER: self._index}
def turn_on(self, **kwargs): def turn_on(self, **kwargs: Any) -> None:
"""Turn on the light.""" """Turn on the light."""
# If neither attribute is specified then the simple activate load # If neither attribute is specified then the simple activate load
@ -115,7 +116,7 @@ class LiteJetLight(LightEntity):
self._lj.activate_load_at(self._index, brightness, int(transition)) self._lj.activate_load_at(self._index, brightness, int(transition))
def turn_off(self, **kwargs): def turn_off(self, **kwargs: Any) -> None:
"""Turn off the light.""" """Turn off the light."""
if ATTR_TRANSITION in kwargs: if ATTR_TRANSITION in kwargs:
self._lj.activate_load_at(self._index, 0, kwargs[ATTR_TRANSITION]) self._lj.activate_load_at(self._index, 0, kwargs[ATTR_TRANSITION])
@ -126,6 +127,6 @@ class LiteJetLight(LightEntity):
# transition value programmed in the LiteJet system. # transition value programmed in the LiteJet system.
self._lj.deactivate_load(self._index) self._lj.deactivate_load(self._index)
def update(self): def update(self) -> None:
"""Retrieve the light's brightness from the LiteJet system.""" """Retrieve the light's brightness from the LiteJet system."""
self._brightness = int(self._lj.get_load_level(self._index) / 99 * 255) self._brightness = int(self._lj.get_load_level(self._index) / 99 * 255)

View File

@ -1,6 +1,8 @@
"""Support for Lutron lights.""" """Support for Lutron lights."""
from __future__ import annotations from __future__ import annotations
from typing import Any
from homeassistant.components.light import ATTR_BRIGHTNESS, ColorMode, LightEntity from homeassistant.components.light import ATTR_BRIGHTNESS, ColorMode, LightEntity
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
@ -53,7 +55,7 @@ class LutronLight(LutronDevice, LightEntity):
self._prev_brightness = new_brightness self._prev_brightness = new_brightness
return new_brightness return new_brightness
def turn_on(self, **kwargs): def turn_on(self, **kwargs: Any) -> None:
"""Turn the light on.""" """Turn the light on."""
if ATTR_BRIGHTNESS in kwargs and self._lutron_device.is_dimmable: if ATTR_BRIGHTNESS in kwargs and self._lutron_device.is_dimmable:
brightness = kwargs[ATTR_BRIGHTNESS] brightness = kwargs[ATTR_BRIGHTNESS]
@ -64,7 +66,7 @@ class LutronLight(LutronDevice, LightEntity):
self._prev_brightness = brightness self._prev_brightness = brightness
self._lutron_device.level = to_lutron_level(brightness) self._lutron_device.level = to_lutron_level(brightness)
def turn_off(self, **kwargs): def turn_off(self, **kwargs: Any) -> None:
"""Turn the light off.""" """Turn the light off."""
self._lutron_device.level = 0 self._lutron_device.level = 0
@ -78,7 +80,7 @@ class LutronLight(LutronDevice, LightEntity):
"""Return true if device is on.""" """Return true if device is on."""
return self._lutron_device.last_level() > 0 return self._lutron_device.last_level() > 0
def update(self): def update(self) -> None:
"""Call when forcing a refresh of the device.""" """Call when forcing a refresh of the device."""
if self._prev_brightness is None: if self._prev_brightness is None:
self._prev_brightness = to_hass_level(self._lutron_device.level) self._prev_brightness = to_hass_level(self._lutron_device.level)

View File

@ -1,5 +1,6 @@
"""Support for Lutron Caseta lights.""" """Support for Lutron Caseta lights."""
from datetime import timedelta from datetime import timedelta
from typing import Any
from homeassistant.components.light import ( from homeassistant.components.light import (
ATTR_BRIGHTNESS, ATTR_BRIGHTNESS,
@ -69,13 +70,13 @@ class LutronCasetaLight(LutronCasetaDeviceUpdatableEntity, LightEntity):
self.device_id, to_lutron_level(brightness), **args self.device_id, to_lutron_level(brightness), **args
) )
async def async_turn_on(self, **kwargs): async def async_turn_on(self, **kwargs: Any) -> None:
"""Turn the light on.""" """Turn the light on."""
brightness = kwargs.pop(ATTR_BRIGHTNESS, 255) brightness = kwargs.pop(ATTR_BRIGHTNESS, 255)
await self._set_brightness(brightness, **kwargs) await self._set_brightness(brightness, **kwargs)
async def async_turn_off(self, **kwargs): async def async_turn_off(self, **kwargs: Any) -> None:
"""Turn the light off.""" """Turn the light off."""
await self._set_brightness(0, **kwargs) await self._set_brightness(0, **kwargs)

View File

@ -2,6 +2,7 @@
from __future__ import annotations from __future__ import annotations
import logging import logging
from typing import Any
import lw12 import lw12
import voluptuous as vol import voluptuous as vol
@ -146,7 +147,7 @@ class LW12WiFi(LightEntity):
self._light.set_light_option(lw12.LW12_LIGHT.FLASH, transition_speed) self._light.set_light_option(lw12.LW12_LIGHT.FLASH, transition_speed)
self._state = True self._state = True
def turn_off(self, **kwargs): def turn_off(self, **kwargs: Any) -> None:
"""Instruct the light to turn off.""" """Instruct the light to turn off."""
self._light.light_off() self._light.light_off()
self._state = False self._state = False

View File

@ -2,6 +2,7 @@
from __future__ import annotations from __future__ import annotations
import logging import logging
from typing import Any
from pymochad import device from pymochad import device
from pymochad.exceptions import MochadException from pymochad.exceptions import MochadException
@ -112,7 +113,7 @@ class MochadLight(LightEntity):
self.light.send_cmd(f"bright {mochad_brightness}") self.light.send_cmd(f"bright {mochad_brightness}")
self._controller.read_data() self._controller.read_data()
def turn_on(self, **kwargs): def turn_on(self, **kwargs: Any) -> None:
"""Send the command to turn the light on.""" """Send the command to turn the light on."""
_LOGGER.debug("Reconnect %s:%s", self._controller.server, self._controller.port) _LOGGER.debug("Reconnect %s:%s", self._controller.server, self._controller.port)
brightness = kwargs.get(ATTR_BRIGHTNESS, 255) brightness = kwargs.get(ATTR_BRIGHTNESS, 255)
@ -137,7 +138,7 @@ class MochadLight(LightEntity):
except (MochadException, OSError) as exc: except (MochadException, OSError) as exc:
_LOGGER.error("Error with mochad communication: %s", exc) _LOGGER.error("Error with mochad communication: %s", exc)
def turn_off(self, **kwargs): def turn_off(self, **kwargs: Any) -> None:
"""Send the command to turn the light on.""" """Send the command to turn the light on."""
_LOGGER.debug("Reconnect %s:%s", self._controller.server, self._controller.port) _LOGGER.debug("Reconnect %s:%s", self._controller.server, self._controller.port)
with REQ_LOCK: with REQ_LOCK:

View File

@ -1,4 +1,6 @@
"""Support for MyQ-Enabled lights.""" """Support for MyQ-Enabled lights."""
from typing import Any
from pymyq.errors import MyQError from pymyq.errors import MyQError
from homeassistant.components.light import ColorMode, LightEntity from homeassistant.components.light import ColorMode, LightEntity
@ -43,7 +45,7 @@ class MyQLight(MyQEntity, LightEntity):
"""Return true if the light is off, else False.""" """Return true if the light is off, else False."""
return MYQ_TO_HASS.get(self._device.state) == STATE_OFF return MYQ_TO_HASS.get(self._device.state) == STATE_OFF
async def async_turn_on(self, **kwargs): async def async_turn_on(self, **kwargs: Any) -> None:
"""Issue on command to light.""" """Issue on command to light."""
if self.is_on: if self.is_on:
return return
@ -58,7 +60,7 @@ class MyQLight(MyQEntity, LightEntity):
# Write new state to HASS # Write new state to HASS
self.async_write_ha_state() self.async_write_ha_state()
async def async_turn_off(self, **kwargs): async def async_turn_off(self, **kwargs: Any) -> None:
"""Issue off command to light.""" """Issue off command to light."""
if self.is_off: if self.is_off:
return return

View File

@ -2,6 +2,7 @@
from __future__ import annotations from __future__ import annotations
import logging import logging
from typing import Any
from pymystrom.bulb import MyStromBulb from pymystrom.bulb import MyStromBulb
from pymystrom.exceptions import MyStromConnectionError from pymystrom.exceptions import MyStromConnectionError
@ -120,7 +121,7 @@ class MyStromLight(LightEntity):
"""Return true if light is on.""" """Return true if light is on."""
return self._state return self._state
async def async_turn_on(self, **kwargs): async def async_turn_on(self, **kwargs: Any) -> None:
"""Turn on the light.""" """Turn on the light."""
brightness = kwargs.get(ATTR_BRIGHTNESS, 255) brightness = kwargs.get(ATTR_BRIGHTNESS, 255)
effect = kwargs.get(ATTR_EFFECT) effect = kwargs.get(ATTR_EFFECT)
@ -147,14 +148,14 @@ class MyStromLight(LightEntity):
except MyStromConnectionError: except MyStromConnectionError:
_LOGGER.warning("No route to myStrom bulb") _LOGGER.warning("No route to myStrom bulb")
async def async_turn_off(self, **kwargs): async def async_turn_off(self, **kwargs: Any) -> None:
"""Turn off the bulb.""" """Turn off the bulb."""
try: try:
await self._bulb.set_off() await self._bulb.set_off()
except MyStromConnectionError: except MyStromConnectionError:
_LOGGER.warning("The myStrom bulb not online") _LOGGER.warning("The myStrom bulb not online")
async def async_update(self): async def async_update(self) -> None:
"""Fetch new state data for this light.""" """Fetch new state data for this light."""
try: try:
await self._bulb.get_state() await self._bulb.get_state()

View File

@ -3,6 +3,7 @@ from __future__ import annotations
from datetime import timedelta from datetime import timedelta
import logging import logging
from typing import Any
import nikohomecontrol import nikohomecontrol
import voluptuous as vol import voluptuous as vol
@ -77,17 +78,17 @@ class NikoHomeControlLight(LightEntity):
"""Return true if light is on.""" """Return true if light is on."""
return self._state return self._state
def turn_on(self, **kwargs): def turn_on(self, **kwargs: Any) -> None:
"""Instruct the light to turn on.""" """Instruct the light to turn on."""
_LOGGER.debug("Turn on: %s", self.name) _LOGGER.debug("Turn on: %s", self.name)
self._light.turn_on() self._light.turn_on()
def turn_off(self, **kwargs): def turn_off(self, **kwargs: Any) -> None:
"""Instruct the light to turn off.""" """Instruct the light to turn off."""
_LOGGER.debug("Turn off: %s", self.name) _LOGGER.debug("Turn off: %s", self.name)
self._light.turn_off() self._light.turn_off()
async def async_update(self): async def async_update(self) -> None:
"""Get the latest data from NikoHomeControl API.""" """Get the latest data from NikoHomeControl API."""
await self._data.async_update() await self._data.async_update()
self._state = self._data.get_state(self._light.id) self._state = self._data.get_state(self._light.id)

View File

@ -2,6 +2,7 @@
from __future__ import annotations from __future__ import annotations
import logging import logging
from typing import Any
from pyoppleio.OppleLightDevice import OppleLightDevice from pyoppleio.OppleLightDevice import OppleLightDevice
import voluptuous as vol import voluptuous as vol
@ -107,7 +108,7 @@ class OppleLight(LightEntity):
"""Return maximum supported color temperature.""" """Return maximum supported color temperature."""
return 333 return 333
def turn_on(self, **kwargs): def turn_on(self, **kwargs: Any) -> None:
"""Instruct the light to turn on.""" """Instruct the light to turn on."""
_LOGGER.debug("Turn on light %s %s", self._device.ip, kwargs) _LOGGER.debug("Turn on light %s %s", self._device.ip, kwargs)
if not self.is_on: if not self.is_on:
@ -120,12 +121,12 @@ class OppleLight(LightEntity):
color_temp = mired_to_kelvin(kwargs[ATTR_COLOR_TEMP]) color_temp = mired_to_kelvin(kwargs[ATTR_COLOR_TEMP])
self._device.color_temperature = color_temp self._device.color_temperature = color_temp
def turn_off(self, **kwargs): def turn_off(self, **kwargs: Any) -> None:
"""Instruct the light to turn off.""" """Instruct the light to turn off."""
self._device.power_on = False self._device.power_on = False
_LOGGER.debug("Turn off light %s", self._device.ip) _LOGGER.debug("Turn off light %s", self._device.ip)
def update(self): def update(self) -> None:
"""Synchronize state with light.""" """Synchronize state with light."""
prev_available = self.available prev_available = self.available
self._device.update() self._device.update()

View File

@ -3,6 +3,7 @@ from __future__ import annotations
import logging import logging
import random import random
from typing import Any
from lightify import Lightify from lightify import Lightify
import voluptuous as vol import voluptuous as vol
@ -306,7 +307,7 @@ class Luminary(LightEntity):
return False return False
def turn_on(self, **kwargs): def turn_on(self, **kwargs: Any) -> None:
"""Turn the device on.""" """Turn the device on."""
transition = int(kwargs.get(ATTR_TRANSITION, 0) * 10) transition = int(kwargs.get(ATTR_TRANSITION, 0) * 10)
if ATTR_EFFECT in kwargs: if ATTR_EFFECT in kwargs:
@ -331,7 +332,7 @@ class Luminary(LightEntity):
else: else:
self._luminary.set_onoff(True) self._luminary.set_onoff(True)
def turn_off(self, **kwargs): def turn_off(self, **kwargs: Any) -> None:
"""Turn the device off.""" """Turn the device off."""
self._is_on = False self._is_on = False
if ATTR_TRANSITION in kwargs: if ATTR_TRANSITION in kwargs:
@ -374,7 +375,7 @@ class Luminary(LightEntity):
if self._supported_features & SUPPORT_COLOR: if self._supported_features & SUPPORT_COLOR:
self._rgb_color = self._luminary.rgb() self._rgb_color = self._luminary.rgb()
def update(self): def update(self) -> None:
"""Synchronize state with bridge.""" """Synchronize state with bridge."""
changed = self.update_func() changed = self.update_func()
if changed > self._changed: if changed > self._changed:

View File

@ -2,6 +2,7 @@
from __future__ import annotations from __future__ import annotations
from dataclasses import dataclass from dataclasses import dataclass
from typing import Any
from haphilipsjs import PhilipsTV from haphilipsjs import PhilipsTV
from haphilipsjs.typing import AmbilightCurrentConfiguration from haphilipsjs.typing import AmbilightCurrentConfiguration
@ -337,7 +338,7 @@ class PhilipsTVLightEntity(
if await self._tv.setAmbilightCurrentConfiguration(config) is False: if await self._tv.setAmbilightCurrentConfiguration(config) is False:
raise Exception("Failed to set ambilight mode") raise Exception("Failed to set ambilight mode")
async def async_turn_on(self, **kwargs) -> None: async def async_turn_on(self, **kwargs: Any) -> None:
"""Turn the bulb on.""" """Turn the bulb on."""
brightness = kwargs.get(ATTR_BRIGHTNESS, self.brightness) brightness = kwargs.get(ATTR_BRIGHTNESS, self.brightness)
hs_color = kwargs.get(ATTR_HS_COLOR, self.hs_color) hs_color = kwargs.get(ATTR_HS_COLOR, self.hs_color)
@ -378,7 +379,7 @@ class PhilipsTVLightEntity(
self._update_from_coordinator() self._update_from_coordinator()
self.async_write_ha_state() self.async_write_ha_state()
async def async_turn_off(self, **kwargs) -> None: async def async_turn_off(self, **kwargs: Any) -> None:
"""Turn of ambilight.""" """Turn of ambilight."""
if not self._tv.on: if not self._tv.on:

View File

@ -1,6 +1,8 @@
"""Support for switching devices via Pilight to on and off.""" """Support for switching devices via Pilight to on and off."""
from __future__ import annotations from __future__ import annotations
from typing import Any
import voluptuous as vol import voluptuous as vol
from homeassistant.components.light import ( from homeassistant.components.light import (
@ -63,7 +65,7 @@ class PilightLight(PilightBaseDevice, LightEntity):
"""Return the brightness.""" """Return the brightness."""
return self._brightness return self._brightness
def turn_on(self, **kwargs): def turn_on(self, **kwargs: Any) -> None:
"""Turn the switch on by calling pilight.send service with on code.""" """Turn the switch on by calling pilight.send service with on code."""
# Update brightness only if provided as an argument. # Update brightness only if provided as an argument.
# This will allow the switch to keep its previous brightness level. # This will allow the switch to keep its previous brightness level.

View File

@ -2,6 +2,7 @@
from __future__ import annotations from __future__ import annotations
import asyncio import asyncio
from typing import Any
from plumlightpad import Plum from plumlightpad import Plum
@ -69,7 +70,7 @@ class PlumLight(LightEntity):
self._load = load self._load = load
self._brightness = load.level self._brightness = load.level
async def async_added_to_hass(self): async def async_added_to_hass(self) -> None:
"""Subscribe to dimmerchange events.""" """Subscribe to dimmerchange events."""
self._load.add_event_listener("dimmerchange", self.dimmerchange) self._load.add_event_listener("dimmerchange", self.dimmerchange)
@ -125,14 +126,14 @@ class PlumLight(LightEntity):
"""Flag supported color modes.""" """Flag supported color modes."""
return {self.color_mode} return {self.color_mode}
async def async_turn_on(self, **kwargs): async def async_turn_on(self, **kwargs: Any) -> None:
"""Turn the light on.""" """Turn the light on."""
if ATTR_BRIGHTNESS in kwargs: if ATTR_BRIGHTNESS in kwargs:
await self._load.turn_on(kwargs[ATTR_BRIGHTNESS]) await self._load.turn_on(kwargs[ATTR_BRIGHTNESS])
else: else:
await self._load.turn_on() await self._load.turn_on()
async def async_turn_off(self, **kwargs): async def async_turn_off(self, **kwargs: Any) -> None:
"""Turn the light off.""" """Turn the light off."""
await self._load.turn_off() await self._load.turn_off()
@ -155,7 +156,7 @@ class GlowRing(LightEntity):
self._green = lightpad.glow_color["green"] self._green = lightpad.glow_color["green"]
self._blue = lightpad.glow_color["blue"] self._blue = lightpad.glow_color["blue"]
async def async_added_to_hass(self): async def async_added_to_hass(self) -> None:
"""Subscribe to configchange events.""" """Subscribe to configchange events."""
self._lightpad.add_event_listener("configchange", self.configchange_event) self._lightpad.add_event_listener("configchange", self.configchange_event)
@ -222,7 +223,7 @@ class GlowRing(LightEntity):
"""Return the crop-portrait icon representing the glow ring.""" """Return the crop-portrait icon representing the glow ring."""
return "mdi:crop-portrait" return "mdi:crop-portrait"
async def async_turn_on(self, **kwargs): async def async_turn_on(self, **kwargs: Any) -> None:
"""Turn the light on.""" """Turn the light on."""
if ATTR_BRIGHTNESS in kwargs: if ATTR_BRIGHTNESS in kwargs:
brightness_pct = kwargs[ATTR_BRIGHTNESS] / 255.0 brightness_pct = kwargs[ATTR_BRIGHTNESS] / 255.0
@ -234,7 +235,7 @@ class GlowRing(LightEntity):
else: else:
await self._lightpad.set_config({"glowEnabled": True}) await self._lightpad.set_config({"glowEnabled": True})
async def async_turn_off(self, **kwargs): async def async_turn_off(self, **kwargs: Any) -> None:
"""Turn the light off.""" """Turn the light off."""
if ATTR_BRIGHTNESS in kwargs: if ATTR_BRIGHTNESS in kwargs:
brightness_pct = kwargs[ATTR_BRIGHTNESS] / 255.0 brightness_pct = kwargs[ATTR_BRIGHTNESS] / 255.0

View File

@ -3,6 +3,7 @@ from __future__ import annotations
import logging import logging
import re import re
from typing import Any
import voluptuous as vol import voluptuous as vol
@ -184,7 +185,7 @@ class DimmableRflinkLight(SwitchableRflinkDevice, LightEntity):
_attr_supported_color_modes = {ColorMode.BRIGHTNESS} _attr_supported_color_modes = {ColorMode.BRIGHTNESS}
_brightness = 255 _brightness = 255
async def async_added_to_hass(self): async def async_added_to_hass(self) -> None:
"""Restore RFLink light brightness attribute.""" """Restore RFLink light brightness attribute."""
await super().async_added_to_hass() await super().async_added_to_hass()
@ -196,7 +197,7 @@ class DimmableRflinkLight(SwitchableRflinkDevice, LightEntity):
# restore also brightness in dimmables devices # restore also brightness in dimmables devices
self._brightness = int(old_state.attributes[ATTR_BRIGHTNESS]) self._brightness = int(old_state.attributes[ATTR_BRIGHTNESS])
async def async_turn_on(self, **kwargs): async def async_turn_on(self, **kwargs: Any) -> None:
"""Turn the device on.""" """Turn the device on."""
if ATTR_BRIGHTNESS in kwargs: if ATTR_BRIGHTNESS in kwargs:
# rflink only support 16 brightness levels # rflink only support 16 brightness levels
@ -242,7 +243,7 @@ class HybridRflinkLight(DimmableRflinkLight):
Which results in a nice house disco :) Which results in a nice house disco :)
""" """
async def async_turn_on(self, **kwargs): async def async_turn_on(self, **kwargs: Any) -> None:
"""Turn the device on and set dim level.""" """Turn the device on and set dim level."""
await super().async_turn_on(**kwargs) await super().async_turn_on(**kwargs)
# if the receiving device does not support dimlevel this # if the receiving device does not support dimlevel this
@ -269,10 +270,10 @@ class ToggleRflinkLight(RflinkLight):
# if the state is true, it gets set as false # if the state is true, it gets set as false
self._state = self._state in [None, False] self._state = self._state in [None, False]
async def async_turn_on(self, **kwargs): async def async_turn_on(self, **kwargs: Any) -> None:
"""Turn the device on.""" """Turn the device on."""
await self._async_handle_command("toggle") await self._async_handle_command("toggle")
async def async_turn_off(self, **kwargs): async def async_turn_off(self, **kwargs: Any) -> None:
"""Turn the device off.""" """Turn the device off."""
await self._async_handle_command("toggle") await self._async_handle_command("toggle")

View File

@ -2,6 +2,7 @@
from __future__ import annotations from __future__ import annotations
import logging import logging
from typing import Any
import RFXtrx as rfxtrxmod import RFXtrx as rfxtrxmod
@ -59,7 +60,7 @@ class RfxtrxLight(RfxtrxCommandEntity, LightEntity):
_attr_brightness: int = 0 _attr_brightness: int = 0
_device: rfxtrxmod.LightingDevice _device: rfxtrxmod.LightingDevice
async def async_added_to_hass(self): async def async_added_to_hass(self) -> None:
"""Restore RFXtrx device state (ON/OFF).""" """Restore RFXtrx device state (ON/OFF)."""
await super().async_added_to_hass() await super().async_added_to_hass()
@ -70,7 +71,7 @@ class RfxtrxLight(RfxtrxCommandEntity, LightEntity):
if brightness := old_state.attributes.get(ATTR_BRIGHTNESS): if brightness := old_state.attributes.get(ATTR_BRIGHTNESS):
self._attr_brightness = int(brightness) self._attr_brightness = int(brightness)
async def async_turn_on(self, **kwargs): async def async_turn_on(self, **kwargs: Any) -> None:
"""Turn the device on.""" """Turn the device on."""
brightness = kwargs.get(ATTR_BRIGHTNESS) brightness = kwargs.get(ATTR_BRIGHTNESS)
self._attr_is_on = True self._attr_is_on = True
@ -83,7 +84,7 @@ class RfxtrxLight(RfxtrxCommandEntity, LightEntity):
self.async_write_ha_state() self.async_write_ha_state()
async def async_turn_off(self, **kwargs): async def async_turn_off(self, **kwargs: Any) -> None:
"""Turn the device off.""" """Turn the device off."""
await self._async_send(self._device.send_off) await self._async_send(self._device.send_off)
self._attr_is_on = False self._attr_is_on = False

View File

@ -1,6 +1,7 @@
"""This component provides HA switch support for Ring Door Bell/Chimes.""" """This component provides HA switch support for Ring Door Bell/Chimes."""
from datetime import timedelta from datetime import timedelta
import logging import logging
from typing import Any
import requests import requests
@ -93,10 +94,10 @@ class RingLight(RingEntityMixin, LightEntity):
self._no_updates_until = dt_util.utcnow() + SKIP_UPDATES_DELAY self._no_updates_until = dt_util.utcnow() + SKIP_UPDATES_DELAY
self.async_write_ha_state() self.async_write_ha_state()
def turn_on(self, **kwargs): def turn_on(self, **kwargs: Any) -> None:
"""Turn the light on for 30 seconds.""" """Turn the light on for 30 seconds."""
self._set_light(ON_STATE) self._set_light(ON_STATE)
def turn_off(self, **kwargs): def turn_off(self, **kwargs: Any) -> None:
"""Turn the light off.""" """Turn the light off."""
self._set_light(OFF_STATE) self._set_light(OFF_STATE)