"""Ühised seaded CH-tööriistadele (live.py, calibrate.py jne). Loeb .env failist (kui olemas) kasutaja/parooli, siis keskkonnamuutujatest. CH_URL jäetakse .env-ist vahele (seal on see konteineri jaoks `clickhouse`); vaikimisi kasutame Tailscale IP-d, mis töötab nii ohmu hostil kui mujal tailnetis. Vajadusel saab CH_URL-i ikka keskkonnamuutujaga üle kirjutada. NB! Ilma auth-ita ei saa: sea CH_USER/CH_PASS (või pane need .env-i). """ from __future__ import annotations import os from pathlib import Path _ENV_CANDIDATES = ( Path(__file__).resolve().parents[1] / ".env", # varvusensor/.env Path("/opt/docker-compose/dev/varvusensor/.env"), # ohmu live-stack ) # Konteinerispetsiifilised võtmed, mida host-tööriistadele ei laadita. _SKIP_FROM_ENV = {"CH_URL", "MQTT_HOST", "MQTT_PORT", "MQTT_TOPIC"} def _load_env() -> None: for path in _ENV_CANDIDATES: if not path.is_file(): continue for line in path.read_text().splitlines(): line = line.strip() if not line or line.startswith("#") or "=" not in line: continue key, _, value = line.partition("=") key = key.strip() if key in _SKIP_FROM_ENV: continue os.environ.setdefault(key, value.strip()) break _load_env() CH_URL = os.environ.get("CH_URL", "http://100.87.1.24:8125").rstrip("/") CH_DB = os.environ.get("CH_DB", "uus67") CH_TABLE = os.environ.get("CH_TABLE", "varvus") CH_USER = os.environ.get("CH_USER", "zigbee") CH_PASS = os.environ.get("CH_PASS", "")