Add unavailable to Vera (#46064)
This commit is contained in:
parent
b1ffe429cd
commit
8f4ea3818d
15 changed files with 26 additions and 4 deletions
|
@ -232,6 +232,11 @@ class VeraDevice(Generic[DeviceType], Entity):
|
|||
"""Update the state."""
|
||||
self.schedule_update_ha_state(True)
|
||||
|
||||
def update(self):
|
||||
"""Force a refresh from the device if the device is unavailable."""
|
||||
if not self.available:
|
||||
self.vera_device.refresh()
|
||||
|
||||
@property
|
||||
def name(self) -> str:
|
||||
"""Return the name of the device."""
|
||||
|
@ -276,6 +281,11 @@ class VeraDevice(Generic[DeviceType], Entity):
|
|||
|
||||
return attr
|
||||
|
||||
@property
|
||||
def available(self):
|
||||
"""If device communications have failed return false."""
|
||||
return not self.vera_device.comm_failure
|
||||
|
||||
@property
|
||||
def unique_id(self) -> str:
|
||||
"""Return a unique ID.
|
||||
|
|
|
@ -50,4 +50,5 @@ class VeraBinarySensor(VeraDevice[veraApi.VeraBinarySensor], BinarySensorEntity)
|
|||
|
||||
def update(self) -> None:
|
||||
"""Get the latest data and update the state."""
|
||||
super().update()
|
||||
self._state = self.vera_device.is_tripped
|
||||
|
|
|
@ -93,6 +93,7 @@ class VeraLight(VeraDevice[veraApi.VeraDimmer], LightEntity):
|
|||
|
||||
def update(self) -> None:
|
||||
"""Call to update state."""
|
||||
super().update()
|
||||
self._state = self.vera_device.is_switched_on()
|
||||
if self.vera_device.is_dimmable:
|
||||
# If it is dimmable, both functions exist. In case color
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"name": "Vera",
|
||||
"config_flow": true,
|
||||
"documentation": "https://www.home-assistant.io/integrations/vera",
|
||||
"requirements": ["pyvera==0.3.11"],
|
||||
"requirements": ["pyvera==0.3.13"],
|
||||
"codeowners": ["@vangorra"]
|
||||
}
|
||||
|
|
|
@ -68,7 +68,7 @@ class VeraSensor(VeraDevice[veraApi.VeraSensor], Entity):
|
|||
|
||||
def update(self) -> None:
|
||||
"""Update the state."""
|
||||
|
||||
super().update()
|
||||
if self.vera_device.category == veraApi.CATEGORY_TEMPERATURE_SENSOR:
|
||||
self.current_value = self.vera_device.temperature
|
||||
|
||||
|
|
|
@ -70,4 +70,5 @@ class VeraSwitch(VeraDevice[veraApi.VeraSwitch], SwitchEntity):
|
|||
|
||||
def update(self) -> None:
|
||||
"""Update device state."""
|
||||
super().update()
|
||||
self._state = self.vera_device.is_switched_on()
|
||||
|
|
|
@ -1880,7 +1880,7 @@ pyuptimerobot==0.0.5
|
|||
# pyuserinput==0.1.11
|
||||
|
||||
# homeassistant.components.vera
|
||||
pyvera==0.3.11
|
||||
pyvera==0.3.13
|
||||
|
||||
# homeassistant.components.versasense
|
||||
pyversasense==0.0.6
|
||||
|
|
|
@ -953,7 +953,7 @@ pytraccar==0.9.0
|
|||
pytradfri[async]==7.0.6
|
||||
|
||||
# homeassistant.components.vera
|
||||
pyvera==0.3.11
|
||||
pyvera==0.3.13
|
||||
|
||||
# homeassistant.components.vesync
|
||||
pyvesync==1.2.0
|
||||
|
|
|
@ -14,6 +14,7 @@ async def test_binary_sensor(
|
|||
"""Test function."""
|
||||
vera_device = MagicMock(spec=pv.VeraBinarySensor) # type: pv.VeraBinarySensor
|
||||
vera_device.device_id = 1
|
||||
vera_device.comm_failure = False
|
||||
vera_device.vera_device_id = vera_device.device_id
|
||||
vera_device.name = "dev1"
|
||||
vera_device.is_tripped = False
|
||||
|
|
|
@ -23,6 +23,7 @@ async def test_climate(
|
|||
vera_device = MagicMock(spec=pv.VeraThermostat) # type: pv.VeraThermostat
|
||||
vera_device.device_id = 1
|
||||
vera_device.vera_device_id = vera_device.device_id
|
||||
vera_device.comm_failure = False
|
||||
vera_device.name = "dev1"
|
||||
vera_device.category = pv.CATEGORY_THERMOSTAT
|
||||
vera_device.power = 10
|
||||
|
@ -133,6 +134,7 @@ async def test_climate_f(
|
|||
vera_device = MagicMock(spec=pv.VeraThermostat) # type: pv.VeraThermostat
|
||||
vera_device.device_id = 1
|
||||
vera_device.vera_device_id = vera_device.device_id
|
||||
vera_device.comm_failure = False
|
||||
vera_device.name = "dev1"
|
||||
vera_device.category = pv.CATEGORY_THERMOSTAT
|
||||
vera_device.power = 10
|
||||
|
|
|
@ -15,6 +15,7 @@ async def test_cover(
|
|||
vera_device = MagicMock(spec=pv.VeraCurtain) # type: pv.VeraCurtain
|
||||
vera_device.device_id = 1
|
||||
vera_device.vera_device_id = vera_device.device_id
|
||||
vera_device.comm_failure = False
|
||||
vera_device.name = "dev1"
|
||||
vera_device.category = pv.CATEGORY_CURTAIN
|
||||
vera_device.is_closed = False
|
||||
|
|
|
@ -16,6 +16,7 @@ async def test_light(
|
|||
vera_device = MagicMock(spec=pv.VeraDimmer) # type: pv.VeraDimmer
|
||||
vera_device.device_id = 1
|
||||
vera_device.vera_device_id = vera_device.device_id
|
||||
vera_device.comm_failure = False
|
||||
vera_device.name = "dev1"
|
||||
vera_device.category = pv.CATEGORY_DIMMER
|
||||
vera_device.is_switched_on = MagicMock(return_value=False)
|
||||
|
|
|
@ -16,6 +16,7 @@ async def test_lock(
|
|||
vera_device = MagicMock(spec=pv.VeraLock) # type: pv.VeraLock
|
||||
vera_device.device_id = 1
|
||||
vera_device.vera_device_id = vera_device.device_id
|
||||
vera_device.comm_failure = False
|
||||
vera_device.name = "dev1"
|
||||
vera_device.category = pv.CATEGORY_LOCK
|
||||
vera_device.is_locked = MagicMock(return_value=False)
|
||||
|
|
|
@ -23,6 +23,7 @@ async def run_sensor_test(
|
|||
vera_device = MagicMock(spec=pv.VeraSensor) # type: pv.VeraSensor
|
||||
vera_device.device_id = 1
|
||||
vera_device.vera_device_id = vera_device.device_id
|
||||
vera_device.comm_failure = False
|
||||
vera_device.name = "dev1"
|
||||
vera_device.category = category
|
||||
setattr(vera_device, class_property, "33")
|
||||
|
@ -178,6 +179,7 @@ async def test_scene_controller_sensor(
|
|||
vera_device = MagicMock(spec=pv.VeraSensor) # type: pv.VeraSensor
|
||||
vera_device.device_id = 1
|
||||
vera_device.vera_device_id = vera_device.device_id
|
||||
vera_device.comm_failure = False
|
||||
vera_device.name = "dev1"
|
||||
vera_device.category = pv.CATEGORY_SCENE_CONTROLLER
|
||||
vera_device.get_last_scene_id = MagicMock(return_value="id0")
|
||||
|
|
|
@ -15,6 +15,7 @@ async def test_switch(
|
|||
vera_device = MagicMock(spec=pv.VeraSwitch) # type: pv.VeraSwitch
|
||||
vera_device.device_id = 1
|
||||
vera_device.vera_device_id = vera_device.device_id
|
||||
vera_device.comm_failure = False
|
||||
vera_device.name = "dev1"
|
||||
vera_device.category = pv.CATEGORY_SWITCH
|
||||
vera_device.is_switched_on = MagicMock(return_value=False)
|
||||
|
|
Loading…
Add table
Reference in a new issue