Files
service_netatmo/netatmo_service/config.py
T

52 lines
2.0 KiB
Python
Raw Normal View History

2026-08-30 11:01:19 +02:00
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"}
2026-08-30 11:33:13 +02:00
def _prefix(value: str) -> str:
value = value.strip()
if not value or value == "/":
return ""
return "/" + value.strip("/")
2026-08-30 11:01:19 +02:00
class Config:
2026-08-30 11:33:13 +02:00
URL_PREFIX = _prefix(os.getenv("URL_PREFIX", ""))
2026-08-30 11:01:19 +02:00
RRD_FOLDER = Path(os.getenv("RRD_FOLDER", "./rrd")).expanduser().resolve()
2026-08-30 12:01:46 +02:00
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"))
2026-08-30 12:11:57 +02:00
LOG_CONSOLE = _bool("LOG_CONSOLE", True)
2026-08-30 11:33:13 +02:00
NETATMO_TOKEN_FILE = Path(
os.getenv("NETATMO_TOKEN_FILE", str(RRD_FOLDER / "netatmo_tokens.json"))
).expanduser().resolve()
2026-08-30 11:01:19 +02:00
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")