58 lines
1.7 KiB
Python
58 lines
1.7 KiB
Python
import os
|
|
import threading
|
|
|
|
from dotenv import load_dotenv
|
|
from flask import Flask
|
|
|
|
from src.controllers.AuthController import AuthController
|
|
from src.controllers.ClientController import ClientController
|
|
from src.controllers.message_controller import MessageController
|
|
from src.controllers.mqtt_forwarder import MQTTForwarder
|
|
from src.models.AuthData import AuthData
|
|
from src.services.mqtt_service import MQTTService
|
|
|
|
load_dotenv()
|
|
|
|
app = Flask(__name__)
|
|
|
|
local_broker_address = os.environ.get("LOCAL_BROKER_ADDRESS", "127.0.0.1")
|
|
local_broker_port = int(os.environ.get("LOCAL_BROKER_PORT", 1883))
|
|
|
|
api_broker_address = os.environ.get("API_BROKER_ADDRESS", "127.0.0.1")
|
|
api_broker_port = int(os.environ.get("API_BROKER_PORT", 1883))
|
|
|
|
auth_data = AuthData()
|
|
|
|
auth_controller = AuthController(app, auth_data, "https://192.168.15.120:8000")
|
|
client_controller = ClientController(app, auth_data, "https://192.168.15.120:8000")
|
|
message_controller = MessageController(app, auth_data, "https://192.168.15.120:8000")
|
|
|
|
def start_mqtt(data : AuthData):
|
|
client_id = data.get_client_id()
|
|
|
|
local_broker = MQTTService(
|
|
local_broker_address,
|
|
local_broker_port,
|
|
client_id=client_id,
|
|
username="main",
|
|
password="hepl",
|
|
)
|
|
|
|
api_broker = MQTTService(
|
|
api_broker_address,
|
|
api_broker_port,
|
|
client_id=client_id,
|
|
username="customer",
|
|
password="hepl",
|
|
)
|
|
|
|
forwarder = MQTTForwarder(client_id, local_broker, api_broker)
|
|
forwarder.start(f"/customer/telemetry/#", f"/board-mate/{client_id}/telemetry")
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
auth_controller.set_on_login(start_mqtt)
|
|
|
|
app.run(host="0.0.0.0", port=5000, debug=True)
|