diff --git a/homeassistant/components/camera/zoneminder.py b/homeassistant/components/camera/zoneminder.py index 55d8d91d3ee66..e2be79123874e 100644 --- a/homeassistant/components/camera/zoneminder.py +++ b/homeassistant/components/camera/zoneminder.py @@ -44,6 +44,7 @@ def __init__(self, monitor): } super().__init__(device_info) self._is_recording = None + self._is_available = None self._monitor = monitor @property @@ -55,8 +56,14 @@ def update(self): """Update our recording state from the ZM API.""" _LOGGER.debug("Updating camera state for monitor %i", self._monitor.id) self._is_recording = self._monitor.is_recording + self._is_available = self._monitor.is_available @property def is_recording(self): """Return whether the monitor is in alarm mode.""" return self._is_recording + + @property + def available(self): + """Return True if entity is available.""" + return self._is_available diff --git a/homeassistant/components/sensor/zoneminder.py b/homeassistant/components/sensor/zoneminder.py index 8e4b57f1f38de..16513dc58de04 100644 --- a/homeassistant/components/sensor/zoneminder.py +++ b/homeassistant/components/sensor/zoneminder.py @@ -64,7 +64,8 @@ class ZMSensorMonitors(Entity): def __init__(self, monitor): """Initialize monitor sensor.""" self._monitor = monitor - self._state = monitor.function.value + self._state = None + self._is_available = None @property def name(self): @@ -76,6 +77,11 @@ def state(self): """Return the state of the sensor.""" return self._state + @property + def available(self): + """Return True if Monitor is available.""" + return self._is_available + def update(self): """Update the sensor.""" state = self._monitor.function @@ -83,6 +89,7 @@ def update(self): self._state = None else: self._state = state.value + self._is_available = self._monitor.is_available class ZMSensorEvents(Entity): @@ -123,6 +130,7 @@ class ZMSensorRunState(Entity): def __init__(self, client): """Initialize run state sensor.""" self._state = None + self._is_available = None self._client = client @property @@ -135,6 +143,12 @@ def state(self): """Return the state of the sensor.""" return self._state + @property + def available(self): + """Return True if ZoneMinder is available.""" + return self._is_available + def update(self): """Update the sensor.""" self._state = self._client.get_active_state() + self._is_available = self._client.is_available diff --git a/homeassistant/components/zoneminder/__init__.py b/homeassistant/components/zoneminder/__init__.py index e5d0c7a5a92e1..262ce35d3cb44 100644 --- a/homeassistant/components/zoneminder/__init__.py +++ b/homeassistant/components/zoneminder/__init__.py @@ -15,7 +15,7 @@ _LOGGER = logging.getLogger(__name__) -REQUIREMENTS = ['zm-py==0.1.0'] +REQUIREMENTS = ['zm-py==0.2.0'] CONF_PATH_ZMS = 'path_zms' diff --git a/requirements_all.txt b/requirements_all.txt index 89d011f0927b3..4ffa4aa7ac1b9 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -1679,4 +1679,4 @@ zigpy-xbee==0.1.1 zigpy==0.2.0 # homeassistant.components.zoneminder -zm-py==0.1.0 +zm-py==0.2.0