Skip to content
Snippets Groups Projects
Commit 1ff3dacb authored by jkerdreu's avatar jkerdreu
Browse files

- Added siren

git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/branches/0.7@3007 b32b6428-25c9-4566-ad07-03861ab6144f
parent 416bf60b
No related branches found
No related tags found
No related merge requests found
...@@ -9,7 +9,7 @@ from .const import DOMAIN ...@@ -9,7 +9,7 @@ from .const import DOMAIN
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
PLATFORMS: list[str] = ["light", "switch", "sensor", "binary_sensor","cover"] PLATFORMS: list[str] = ["light", "switch", "sensor", "binary_sensor","cover", "siren"]
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
...@@ -17,9 +17,8 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...@@ -17,9 +17,8 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
bridge = Bridge(hass) bridge = Bridge(hass)
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = bridge hass.data.setdefault(DOMAIN, {})[entry.entry_id] = bridge
# await bridge.wait_is_ready()
# _LOGGER.debug("xAAL Bridge READY")
hass.config_entries.async_setup_platforms(entry, PLATFORMS) hass.config_entries.async_setup_platforms(entry, PLATFORMS)
#await bridge.wait_is_ready()
return True return True
......
import logging import logging
from typing import Any, Callable, Dict, TYPE_CHECKING from typing import Any, Dict, TYPE_CHECKING
from .const import DOMAIN from .const import DOMAIN
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
...@@ -82,7 +82,7 @@ class XAALEntity(Entity): ...@@ -82,7 +82,7 @@ class XAALEntity(Entity):
class EntityFactory(object): class EntityFactory(object):
def __init__(self, bridge: "Bridge", async_add_entitites: Callable) -> None: def __init__(self, bridge: "Bridge", async_add_entitites: AddEntitiesCallback) -> None:
self._bridge = bridge self._bridge = bridge
self._async_add_entitites = async_add_entitites self._async_add_entitites = async_add_entitites
self._bridge.add_factory(self) self._bridge.add_factory(self)
......
import logging
from typing import Any
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.components.siren import SirenEntity, SirenEntityFeature, ATTR_DURATION
from .core import XAALEntity, EntityFactory, MonitorDevice, async_setup_factory
_LOGGER = logging.getLogger(__name__)
async def async_setup_entry(
hass: HomeAssistant,
config_entry: ConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
return async_setup_factory(hass, config_entry, async_add_entities, Factory)
class Factory(EntityFactory):
def new_entity(self, device: MonitorDevice) -> bool:
if device.dev_type.startswith('siren.'):
entity = Siren(device, self._bridge)
self.add_entity(entity,device.address)
return True
return False
class Siren(XAALEntity, SirenEntity):
@property
def supported_features(self) -> int:
return SirenEntityFeature.TURN_ON|SirenEntityFeature.TURN_OFF|SirenEntityFeature.DURATION
def turn_on(self, **kwargs: Any) -> None:
self.send_request('play')
def turn_off(self, **kwargs: Any) -> None:
self.send_request('stop')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment