Esempio n. 1
0
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()])
Esempio n. 2
0
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