| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- """Ü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", "")
|