1 """Component provides support for the Foscam Switch."""
3 from __future__
import annotations
13 from .
import FoscamCoordinator
14 from .const
import DOMAIN, LOGGER
15 from .entity
import FoscamEntity
20 config_entry: ConfigEntry,
21 async_add_entities: AddEntitiesCallback,
23 """Set up foscam switch from a config entry."""
25 coordinator: FoscamCoordinator = hass.data[DOMAIN][config_entry.entry_id]
27 await coordinator.async_config_entry_first_refresh()
29 if coordinator.data[
"is_asleep"][
"supported"]:
34 """An implementation for Sleep Switch."""
38 coordinator: FoscamCoordinator,
39 config_entry: ConfigEntry,
41 """Initialize a Foscam Sleep Switch."""
42 super().
__init__(coordinator, config_entry.entry_id)
48 self.
is_asleepis_asleep = self.coordinator.data[
"is_asleep"][
"status"]
52 """Return true if camera is asleep."""
57 LOGGER.debug(
"Wake camera")
59 ret, _ = await self.
hasshasshass.async_add_executor_job(
60 self.coordinator.session.wake_up
69 """But camera is sleep."""
70 LOGGER.debug(
"Sleep camera")
72 ret, _ = await self.
hasshasshass.async_add_executor_job(self.coordinator.session.sleep)
81 """Handle updated data from the coordinator."""
83 self.
is_asleepis_asleep = self.coordinator.data[
"is_asleep"][
"status"]
None __init__(self, FoscamCoordinator coordinator, ConfigEntry config_entry)
None async_turn_off(self, **Any kwargs)
None _handle_coordinator_update(self)
None async_turn_on(self, **Any kwargs)
None async_write_ha_state(self)
None async_request_refresh(self)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)