mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 11:17:21 +00:00
Aqara restore door sensor state on start (#65128)
* restore door sensor state on start * fix import * fix issues * also fix Natgas, WaterLeak and Smoke sensors * remove unnesesary async_schedule_update_ha_state
This commit is contained in:
parent
049fc8a945
commit
8bd7519ea5
@ -9,6 +9,7 @@ from homeassistant.config_entries import ConfigEntry
|
|||||||
from homeassistant.core import HomeAssistant, callback
|
from homeassistant.core import HomeAssistant, callback
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.helpers.event import async_call_later
|
from homeassistant.helpers.event import async_call_later
|
||||||
|
from homeassistant.helpers.restore_state import RestoreEntity
|
||||||
|
|
||||||
from . import XiaomiDevice
|
from . import XiaomiDevice
|
||||||
from .const import DOMAIN, GATEWAYS_KEY
|
from .const import DOMAIN, GATEWAYS_KEY
|
||||||
@ -181,6 +182,11 @@ class XiaomiNatgasSensor(XiaomiBinarySensor):
|
|||||||
attrs.update(super().extra_state_attributes)
|
attrs.update(super().extra_state_attributes)
|
||||||
return attrs
|
return attrs
|
||||||
|
|
||||||
|
async def async_added_to_hass(self) -> None:
|
||||||
|
"""Handle entity which will be added."""
|
||||||
|
await super().async_added_to_hass()
|
||||||
|
self._state = False
|
||||||
|
|
||||||
def parse_data(self, data, raw_data):
|
def parse_data(self, data, raw_data):
|
||||||
"""Parse data sent by gateway."""
|
"""Parse data sent by gateway."""
|
||||||
if DENSITY in data:
|
if DENSITY in data:
|
||||||
@ -232,6 +238,11 @@ class XiaomiMotionSensor(XiaomiBinarySensor):
|
|||||||
self._state = False
|
self._state = False
|
||||||
self.async_write_ha_state()
|
self.async_write_ha_state()
|
||||||
|
|
||||||
|
async def async_added_to_hass(self) -> None:
|
||||||
|
"""Handle entity which will be added."""
|
||||||
|
await super().async_added_to_hass()
|
||||||
|
self._state = False
|
||||||
|
|
||||||
def parse_data(self, data, raw_data):
|
def parse_data(self, data, raw_data):
|
||||||
"""Parse data sent by gateway.
|
"""Parse data sent by gateway.
|
||||||
|
|
||||||
@ -293,7 +304,7 @@ class XiaomiMotionSensor(XiaomiBinarySensor):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
class XiaomiDoorSensor(XiaomiBinarySensor):
|
class XiaomiDoorSensor(XiaomiBinarySensor, RestoreEntity):
|
||||||
"""Representation of a XiaomiDoorSensor."""
|
"""Representation of a XiaomiDoorSensor."""
|
||||||
|
|
||||||
def __init__(self, device, xiaomi_hub, config_entry):
|
def __init__(self, device, xiaomi_hub, config_entry):
|
||||||
@ -319,6 +330,15 @@ class XiaomiDoorSensor(XiaomiBinarySensor):
|
|||||||
attrs.update(super().extra_state_attributes)
|
attrs.update(super().extra_state_attributes)
|
||||||
return attrs
|
return attrs
|
||||||
|
|
||||||
|
async def async_added_to_hass(self) -> None:
|
||||||
|
"""Handle entity which will be added."""
|
||||||
|
await super().async_added_to_hass()
|
||||||
|
state = await self.async_get_last_state()
|
||||||
|
if state is None:
|
||||||
|
return
|
||||||
|
|
||||||
|
self._state = state.state == "on"
|
||||||
|
|
||||||
def parse_data(self, data, raw_data):
|
def parse_data(self, data, raw_data):
|
||||||
"""Parse data sent by gateway."""
|
"""Parse data sent by gateway."""
|
||||||
self._should_poll = False
|
self._should_poll = False
|
||||||
@ -362,6 +382,11 @@ class XiaomiWaterLeakSensor(XiaomiBinarySensor):
|
|||||||
config_entry,
|
config_entry,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
async def async_added_to_hass(self) -> None:
|
||||||
|
"""Handle entity which will be added."""
|
||||||
|
await super().async_added_to_hass()
|
||||||
|
self._state = False
|
||||||
|
|
||||||
def parse_data(self, data, raw_data):
|
def parse_data(self, data, raw_data):
|
||||||
"""Parse data sent by gateway."""
|
"""Parse data sent by gateway."""
|
||||||
self._should_poll = False
|
self._should_poll = False
|
||||||
@ -400,6 +425,11 @@ class XiaomiSmokeSensor(XiaomiBinarySensor):
|
|||||||
attrs.update(super().extra_state_attributes)
|
attrs.update(super().extra_state_attributes)
|
||||||
return attrs
|
return attrs
|
||||||
|
|
||||||
|
async def async_added_to_hass(self) -> None:
|
||||||
|
"""Handle entity which will be added."""
|
||||||
|
await super().async_added_to_hass()
|
||||||
|
self._state = False
|
||||||
|
|
||||||
def parse_data(self, data, raw_data):
|
def parse_data(self, data, raw_data):
|
||||||
"""Parse data sent by gateway."""
|
"""Parse data sent by gateway."""
|
||||||
if DENSITY in data:
|
if DENSITY in data:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user