import datetime import os import requests import toml import setup_logging from db_postgrest import Zusatzwetterdaten, sende_daten def config_laden(): configfile = os.path.join(SKRIPTPFAD, "wetterconfig.toml") with open(configfile) as file: return toml.loads(file.read()) SKRIPTPFAD = os.path.abspath(os.path.dirname(__file__)) CONFIG = config_laden() LOGGER = setup_logging.create_logger("feinstaub", CONFIG["loglevel"]) def read_data(url, stationsname): datenliste = [] try: r = requests.get(url, timeout=10) data = r.json() except requests.exceptions.ConnectionError: daten = None else: daten = {"pm10": data["sensordatavalues"][0]["value"], "pm2_5": data["sensordatavalues"][1]["value"]} timestamp = datetime.datetime.now().timestamp() for key, value in daten.items(): datenliste.append(Zusatzwetterdaten(timestamp, stationsname, key, value, True)) return datenliste def main(): headers = {f"Authorization": "{user} {token}".format(user=CONFIG["zieldb"]["postgrest"]["user"], token=CONFIG["zieldb"]["postgrest"]["token"])} url = CONFIG["zieldb"]["postgrest"]["url"] if not url.endswith("/"): url = f"{url}/" daten = read_data(CONFIG["feinstaub"]["url"], CONFIG["grafana"]["grafana_name"]) sende_daten(url, CONFIG["zieldb"]["postgrest"]["tablename_zusatzwetterdaten"], headers, daten, LOGGER) if __name__ == "__main__": main()