1 """Support for TPLink hub alarm."""
3 from __future__
import annotations
7 from kasa
import Device, Module
8 from kasa.smart.modules.alarm
import Alarm
14 from .
import TPLinkConfigEntry
15 from .coordinator
import TPLinkDataUpdateCoordinator
16 from .entity
import CoordinatedTPLinkEntity, async_refresh_after
21 config_entry: TPLinkConfigEntry,
22 async_add_entities: AddEntitiesCallback,
24 """Set up siren entities."""
25 data = config_entry.runtime_data
26 parent_coordinator = data.parent_coordinator
27 device = parent_coordinator.device
29 if Module.Alarm
in device.modules:
34 """Representation of a tplink hub alarm."""
37 _attr_supported_features = SirenEntityFeature.TURN_OFF | SirenEntityFeature.TURN_ON
42 coordinator: TPLinkDataUpdateCoordinator,
44 """Initialize the siren entity."""
45 self._alarm_module: Alarm = device.modules[Module.Alarm]
46 super().
__init__(device, coordinator)
50 """Turn the siren on."""
51 await self._alarm_module.play()
55 """Turn the siren off."""
56 await self._alarm_module.stop()
60 """Update the entity's attributes."""
None __init__(self, Device device, TPLinkDataUpdateCoordinator coordinator)
None _async_update_attrs(self)
None async_turn_on(self, **Any kwargs)
None async_turn_off(self, **Any kwargs)
None async_setup_entry(HomeAssistant hass, TPLinkConfigEntry config_entry, AddEntitiesCallback async_add_entities)