51 lines
2.0 KiB
Python
51 lines
2.0 KiB
Python
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"}
|
|
|
|
|
|
def _prefix(value: str) -> str:
|
|
value = value.strip()
|
|
if not value or value == "/":
|
|
return ""
|
|
return "/" + value.strip("/")
|
|
|
|
|
|
class Config:
|
|
URL_PREFIX = _prefix(os.getenv("URL_PREFIX", ""))
|
|
RRD_FOLDER = Path(os.getenv("RRD_FOLDER", "./rrd")).expanduser().resolve()
|
|
LOG_FILE = Path(
|
|
os.getenv("LOG_FILE", str(RRD_FOLDER / "netatmo_service.log"))
|
|
).expanduser().resolve()
|
|
LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO").upper()
|
|
LOG_MAX_BYTES = int(os.getenv("LOG_MAX_BYTES", str(5 * 1024 * 1024)))
|
|
LOG_BACKUP_COUNT = int(os.getenv("LOG_BACKUP_COUNT", "5"))
|
|
NETATMO_TOKEN_FILE = Path(
|
|
os.getenv("NETATMO_TOKEN_FILE", str(RRD_FOLDER / "netatmo_tokens.json"))
|
|
).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")
|