def collect_measurements(ruuvitags): measurements = dict() for mac, name in ruuvitags.items(): logger.info("Reading measurements from RuuviTag %s (%s)", name, mac) (data_format, encoded) = RuuviTagSensor.get_data(mac) if data_format is None or encoded is None: logger.warning("Invalid data from RuuviTag %s", name) continue decoder = get_decoder(data_format) data = decoder.decode_data(encoded) logger.debug("Data received: %s", data) data["name"] = name measurements[mac] = data return measurements
def update(self): """ Get lates data from the sensor and update own state. Returns: dict: Latest state """ (data_format, data) = RuuviTagSensor.get_data(self._mac) if data == self._data: return self._state self._data = data if self._data is None: self._state = {} else: self._state = get_decoder(data_format).decode_data(self._data) return self._state