diff --git a/apps/mqtt/__init__.py b/apps/mqtt/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/mqtt/client.py b/scripts/mqtt_client.py similarity index 59% rename from apps/mqtt/client.py rename to scripts/mqtt_client.py index ef77e2bd..d51ef2b2 100644 --- a/apps/mqtt/client.py +++ b/scripts/mqtt_client.py @@ -5,42 +5,45 @@ import paho.mqtt.client as mqtt import logging import json from django.conf import settings -import traceback - -BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +CUR_DIR = os.path.dirname(os.path.abspath(__file__)) +BASE_DIR = os.path.dirname(CUR_DIR) sys.path.insert(0, BASE_DIR) -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'server.settings') +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "server.settings") django.setup() from apps.enm.services import insert_mplogx_from_king_mqtt -_logger = logging.getLogger('log') +_logger = logging.getLogger("log") + def on_connect(mqttc, userdata, flags, rc, properties): if rc == 0: - _logger.info('Mqtt Connected successfully') + _logger.info("Mqtt Connected successfully") if settings.KING_ENABLED: # 订阅亚控的mqtt转发 - mqttc.subscribe('datachange_S_KIO_Project') # 订阅主题 - _logger.info('订阅亚控主题成功') + mqttc.subscribe("datachange_S_KIO_Project") # 订阅主题 + _logger.info("订阅亚控主题成功") else: - _logger.error('Mqtt Bad connection. Code:', rc) + _logger.error("Mqtt Bad connection. Code:", rc) + def on_message(mqttc: mqtt, userdata, msg): topic = msg.topic - if topic == 'datachange_S_KIO_Project': + if topic == "datachange_S_KIO_Project": payload = json.loads(msg.payload) insert_mplogx_from_king_mqtt(payload, settings.KING_MQTT_OFFSET) + def start_mqtt(): if settings.MQTT_ENABLED: client = mqtt.Client(callback_api_version=mqtt.CallbackAPIVersion.VERSION2, client_id=settings.BASE_PROJECT_CODE) client.on_connect = on_connect client.on_message = on_message # client.enable_logger(_logger) - client.connect(host=settings.MQTT_HOST,port=settings.MQTT_PORT) + client.connect(host=settings.MQTT_HOST, port=settings.MQTT_PORT) client.loop_forever() - -if __name__ == '__main__': - start_mqtt() \ No newline at end of file + + +if __name__ == "__main__": + start_mqtt()