def get_device_config(_mac_address: str) -> str: cfg = { "transmit_interval": 55202, "transmit_app_led": 1, "sensor_app_led": 0, "day_threshold": 10.0, } cfg.update({f"sensor_enabled[{k}]": int(v[1]) for k, v in SENSORS.items()}) cfg.update({f"sensor_polling_interval[{k}]": v[2] for k, v in SENSORS.items() if v[1] and v[2] is not None}) return "&".join([f"{k}={v}" for k, v in cfg.items()])
def convert_readings(mac_address: str, body: Mapping[str, Iterable[Tuple[int, int, float]]]) -> Iterable[Reading]: calibration_parameters = get_device_calibration_parameters(mac_address) readings = [] for rdng in body['readings']: raw_reading = RawReading(*rdng) sensor = SENSORS.get(raw_reading.sensor_type_id, Sensor('', False, None, None)) if not sensor.enabled or sensor.conversion_func is None: continue readings.append(Reading( raw_reading.timestamp, sensor.type, sensor.conversion_func(raw_reading.raw_value, calibration_parameters), raw_reading.raw_value, )) return readings