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