import logging import sys import os from adapters.postgres import connect, PgDeviceRepository, PgReadingRepository from adapters.mqtt import PahoMqttBroker from services.uplink_service import UplinkService MQTT_HOST = os.getenv("MQTT_HOST", "mosquitto") MQTT_PORT = int(os.getenv("MQTT_PORT", 1883)) MQTT_TOPIC = os.getenv("MQTT_TOPIC", "application/+/device/+/event/up") DB_URI = os.getenv("DATABASE_URL", "postgresql://simugaz:simugaz@db/simugaz") logging.basicConfig( level=logging.INFO, format="%(asctime)s [%(levelname)s] %(message)s", datefmt="%Y-%m-%dT%H:%M:%S", stream=sys.stdout, force=True, ) if __name__ == "__main__": conn = connect(DB_URI) broker = PahoMqttBroker(MQTT_HOST, MQTT_PORT, MQTT_TOPIC) devices = PgDeviceRepository(conn) readings = PgReadingRepository(conn) uplink = UplinkService(devices, readings) broker.start(on_uplink=uplink.handle)