1 """Component providing HA switch support for Ring Door Bell/Chimes."""
3 from datetime
import timedelta
4 from enum
import StrEnum, auto
8 from ring_doorbell
import RingStickUpCam
15 from .
import RingConfigEntry
16 from .coordinator
import RingDataCoordinator
17 from .entity
import RingEntity, exception_wrap
19 _LOGGER = logging.getLogger(__name__)
31 """Enum for allowed on off states."""
39 entry: RingConfigEntry,
40 async_add_entities: AddEntitiesCallback,
42 """Create the lights for the Ring devices."""
43 ring_data = entry.runtime_data
44 devices_coordinator = ring_data.devices_coordinator
48 for device
in ring_data.devices.stickup_cams
49 if device.has_capability(
"light")
54 """Creates a switch to turn the ring cameras light on and off."""
56 _attr_color_mode = ColorMode.ONOFF
57 _attr_supported_color_modes = {ColorMode.ONOFF}
58 _attr_translation_key =
"light"
61 self, device: RingStickUpCam, coordinator: RingDataCoordinator
63 """Initialize the light."""
64 super().
__init__(device, coordinator)
71 """Call update method."""
77 self.
_attr_is_on_attr_is_on = device.lights == OnOffState.ON
82 """Update light state, and causes Home Assistant to correctly update."""
85 self.
_attr_is_on_attr_is_on = new_state == OnOffState.ON
90 """Turn the light on for 30 seconds."""
94 """Turn the light off."""
RingDevices _get_coordinator_data(self)
None _async_set_light(self, OnOffState new_state)
None _handle_coordinator_update(self)
None async_turn_on(self, **Any kwargs)
None __init__(self, RingStickUpCam device, RingDataCoordinator coordinator)
None async_turn_off(self, **Any kwargs)
None async_write_ha_state(self)
None async_setup_entry(HomeAssistant hass, RingConfigEntry entry, AddEntitiesCallback async_add_entities)