#!/usr/bin/python3 from logging import basicConfig, getLogger from sys import argv from requests import get basicConfig(level="INFO") L = getLogger(__name__) def out(keys, values): print( "airgradient,{} {}".format( ",".join([f"{k}={v}" for k, v in keys.items()]), ",".join([f"{k}={v}" for k, v in values.items()]), ), flush=True, ) try: r = get( f"https://api.airgradient.com/public/api/v1/locations/measures/current?token={argv[2]}" ) L.debug(r.status_code) L.info(r.text) r.raise_for_status() for location in r.json(): L.debug(location) out( { "place": argv[1], "location": location["locationName"], }, { k: location[k] for k in ( "atmp", "noxIndex", "pm003Count", "pm01", "pm02", "pm10", "rco2", "rhum", "tvoc", "tvocIndex", "wifi", ) }, ) except Exception: L.exception("fail!")