mirror of
https://github.com/home-assistant/core.git
synced 2025-11-16 06:20:07 +00:00
Implement new state property for alarm_control_panel which is using an enum (#126283)
* Alarm state from enum * Fixes * Set final * Fix rebase * Test const * Fix breaking version * Fix other for alarm_control_panel * Fix integrations * More * More * More * More * Fix zha * Replace _attr_state * Fix alarm_control_panel * Fix tests * Fixes * Mods * Change some * More * More * More * Tests * Last tests * Return enum * Fix zha * Remove not needed check * Fix wording * Fix homekit * Mod prometheus * Fix mypy * Fix homekit * Fix ifttt
This commit is contained in:
@@ -10,21 +10,12 @@ from aiocomelit.const import ALARM_AREAS, AlarmAreaState
|
||||
from homeassistant.components.alarm_control_panel import (
|
||||
AlarmControlPanelEntity,
|
||||
AlarmControlPanelEntityFeature,
|
||||
AlarmControlPanelState,
|
||||
CodeFormat,
|
||||
)
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import (
|
||||
STATE_ALARM_ARMED_AWAY,
|
||||
STATE_ALARM_ARMED_HOME,
|
||||
STATE_ALARM_ARMED_NIGHT,
|
||||
STATE_ALARM_ARMING,
|
||||
STATE_ALARM_DISARMED,
|
||||
STATE_ALARM_DISARMING,
|
||||
STATE_ALARM_TRIGGERED,
|
||||
)
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
from homeassistant.helpers.typing import StateType
|
||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||
|
||||
from .const import DOMAIN
|
||||
@@ -112,7 +103,7 @@ class ComelitAlarmEntity(CoordinatorEntity[ComelitVedoSystem], AlarmControlPanel
|
||||
return super().available
|
||||
|
||||
@property
|
||||
def state(self) -> StateType:
|
||||
def alarm_state(self) -> AlarmControlPanelState | None:
|
||||
"""Return the state of the alarm."""
|
||||
|
||||
_LOGGER.debug(
|
||||
@@ -123,16 +114,16 @@ class ComelitAlarmEntity(CoordinatorEntity[ComelitVedoSystem], AlarmControlPanel
|
||||
)
|
||||
if self._area.human_status == AlarmAreaState.ARMED:
|
||||
if self._area.armed == ALARM_AREA_ARMED_STATUS[AWAY]:
|
||||
return STATE_ALARM_ARMED_AWAY
|
||||
return AlarmControlPanelState.ARMED_AWAY
|
||||
if self._area.armed == ALARM_AREA_ARMED_STATUS[NIGHT]:
|
||||
return STATE_ALARM_ARMED_NIGHT
|
||||
return STATE_ALARM_ARMED_HOME
|
||||
return AlarmControlPanelState.ARMED_NIGHT
|
||||
return AlarmControlPanelState.ARMED_HOME
|
||||
|
||||
return {
|
||||
AlarmAreaState.DISARMED: STATE_ALARM_DISARMED,
|
||||
AlarmAreaState.ENTRY_DELAY: STATE_ALARM_DISARMING,
|
||||
AlarmAreaState.EXIT_DELAY: STATE_ALARM_ARMING,
|
||||
AlarmAreaState.TRIGGERED: STATE_ALARM_TRIGGERED,
|
||||
AlarmAreaState.DISARMED: AlarmControlPanelState.DISARMED,
|
||||
AlarmAreaState.ENTRY_DELAY: AlarmControlPanelState.DISARMING,
|
||||
AlarmAreaState.EXIT_DELAY: AlarmControlPanelState.ARMING,
|
||||
AlarmAreaState.TRIGGERED: AlarmControlPanelState.TRIGGERED,
|
||||
}.get(self._area.human_status)
|
||||
|
||||
async def async_alarm_disarm(self, code: str | None = None) -> None:
|
||||
|
||||
Reference in New Issue
Block a user