config.py 736 B

123456789101112131415161718192021222324252627282930
  1. import os
  2. from dataclasses import dataclass
  3. from dotenv import load_dotenv
  4. # Load variables from .env file (looks in current dir by default)
  5. load_dotenv()
  6. @dataclass
  7. class BrokerCfg:
  8. HOST: str
  9. PORT: int
  10. @dataclass
  11. class AppConfig:
  12. MQTT_REAL: BrokerCfg
  13. MQTT_SIM: BrokerCfg
  14. LOGGING: bool = False
  15. def load_config() -> AppConfig:
  16. return AppConfig(
  17. MQTT_REAL=BrokerCfg(
  18. HOST=os.getenv("MQTT_REAL_HOST", "192.168.0.10"),
  19. PORT=int(os.getenv("MQTT_REAL_PORT", 1883))
  20. ),
  21. MQTT_SIM=BrokerCfg(
  22. HOST=os.getenv("MQTT_SIM_HOST", "127.0.0.1"),
  23. PORT=int(os.getenv("MQTT_SIM_PORT", 1883))
  24. ),
  25. LOGGING=os.getenv("LOGGING", "0") == "1"
  26. )