55 lines
1.2 KiB
Text
55 lines
1.2 KiB
Text
|
#!/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!")
|