Exemplo n.º 1
0
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
Exemplo n.º 2
0
    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