import os from dataclasses import dataclass from dotenv import load_dotenv # Load variables from .env file (looks in current dir by default) load_dotenv() @dataclass class BrokerCfg: HOST: str PORT: int @dataclass class AppConfig: MQTT_REAL: BrokerCfg MQTT_SIM: BrokerCfg LOGGING: bool = False def load_config() -> AppConfig: return AppConfig( MQTT_REAL=BrokerCfg( HOST=os.getenv("MQTT_REAL_HOST", "192.168.0.10"), PORT=int(os.getenv("MQTT_REAL_PORT", 1883)) ), MQTT_SIM=BrokerCfg( HOST=os.getenv("MQTT_SIM_HOST", "127.0.0.1"), PORT=int(os.getenv("MQTT_SIM_PORT", 1883)) ), LOGGING=os.getenv("LOGGING", "0") == "1" )