from __future__ import annotations import os from pathlib import Path def _bool(name: str, default: bool) -> bool: value = os.getenv(name) return default if value is None else value.lower() in {"1", "true", "yes", "on"} class Config: RRD_FOLDER = Path(os.getenv("RRD_FOLDER", "./rrd")).expanduser().resolve() GRAPH_WIDTH = int(os.getenv("GRAPH_WIDTH", "900")) GRAPH_HEIGHT = int(os.getenv("GRAPH_HEIGHT", "240")) POLL_INTERVAL = int(os.getenv("POLL_INTERVAL", "600")) START_COLLECTOR = _bool("START_COLLECTOR", True) NETATMO_CLIENT_ID = os.getenv("NETATMO_CLIENT_ID", "") NETATMO_CLIENT_SECRET = os.getenv("NETATMO_CLIENT_SECRET", "") NETATMO_REFRESH_TOKEN = os.getenv("NETATMO_REFRESH_TOKEN", "") NETATMO_ACCESS_TOKEN = os.getenv("NETATMO_ACCESS_TOKEN", "") NETATMO_DEVICE_ID = os.getenv("NETATMO_DEVICE_ID", "") NETATMO_TOKEN_URL = os.getenv("NETATMO_TOKEN_URL", "https://api.netatmo.com/oauth2/token") NETATMO_STATIONS_URL = os.getenv( "NETATMO_STATIONS_URL", "https://api.netatmo.com/api/getstationsdata" ) MODULE_OUTDOOR = os.getenv("MODULE_OUTDOOR", "Outdoor") MODULE_WIND = os.getenv("MODULE_WIND", "Wind") MODULE_BEDROOM = os.getenv("MODULE_BEDROOM", "Bedroom") MODULE_STUDY = os.getenv("MODULE_STUDY", "Study") MODULE_LIVING = os.getenv("MODULE_LIVING", "Living")