import Config # Get hostname for topic construction hostname = case :inet.gethostname() do {:ok, hostname} -> List.to_string(hostname) _ -> "unknown" end # Runtime configuration that can use environment variables config :systant, Systant.MqttClient, host: System.get_env("SYSTANT_MQTT_HOST", "mqtt.home"), port: String.to_integer(System.get_env("SYSTANT_MQTT_PORT", "1883")), client_id: System.get_env("SYSTANT_CLIENT_ID", "systant"), username: System.get_env("SYSTANT_MQTT_USERNAME"), password: System.get_env("SYSTANT_MQTT_PASSWORD"), stats_topic: System.get_env("SYSTANT_STATS_TOPIC", "systant/#{hostname}/stats"), command_topic: System.get_env("SYSTANT_COMMAND_TOPIC", "systant/#{hostname}/commands"), publish_interval: String.to_integer(System.get_env("SYSTANT_PUBLISH_INTERVAL", "30000"))