Set switches unavailable if not changable

This commit is contained in:
Andre Basche 2023-07-10 00:22:40 +02:00
parent c0d25a4efe
commit a687c7715d
1 changed files with 10 additions and 5 deletions

View File

@ -405,11 +405,16 @@ class HonSwitchEntity(HonEntity, SwitchEntity):
@property
def available(self) -> bool:
"""Return True if entity is available."""
return (
super().available
and int(self._device.get("remoteCtrValid", 1)) == 1
and self._device.get("attributes.lastConnEvent.category") != "DISCONNECTED"
)
if not super().available:
return False
if not self._device.get("remoteCtrValid", 1) == 1:
return False
if self._device.get("attributes.lastConnEvent.category") == "DISCONNECTED":
return False
setting = self._device.settings[f"settings.{self.entity_description.key}"]
if isinstance(setting, HonParameterRange) and len(setting.values) < 2:
return False
return True
@callback
def _handle_coordinator_update(self, update=True) -> None: