diff --git a/homeassistant/components/sensor/broadlink.py b/homeassistant/components/sensor/broadlink.py index 5fda261b61cd79ba1071404712546bea67896e9e..64a5b73ba254306bf9861e2e074677ef02d55a7c 100644 --- a/homeassistant/components/sensor/broadlink.py +++ b/homeassistant/components/sensor/broadlink.py @@ -116,14 +116,20 @@ class BroadlinkData(object): def _update(self, retry=2): try: - self.data = self._device.check_sensors_raw() + data = self._device.check_sensors_raw() + if (data.get('humidity', 0) <= 100 and + data.get('light', 0) in [0, 1, 2, 3] and + data.get('air_quality', 0) in [0, 1, 2, 3] and + data.get('noise', 0) in [0, 1, 2]): + self.data = data + return except socket.timeout as error: if retry < 1: _LOGGER.error(error) return - if not self._auth(): - return - return self._update(max(0, retry-1)) + if retry < 1 or not self._auth(): + return + self._update(retry-1) def _auth(self, retry=2): try: @@ -131,5 +137,5 @@ class BroadlinkData(object): except socket.timeout: auth = False if not auth and retry > 0: - return self._auth(max(0, retry-1)) + return self._auth(retry-1) return auth