local sys = require "sys" local internal_api = require "internal_api" local sensor_monitor = require "application.sensor_monitor" local devices = require "main.devices" require "main.global" local mqtt_client = {} local client local function mqtt_callback(topic, payload) -- print(topic, payload) local type = string.split(topic, "/")[7] if (type == "Set_Rglt") then protocol.process(topic, payload) elseif type == "service" then sensor_monitor.process(topic, payload) --[[elseif type == "Set_NodesCfg" then log_print.info("Set_NodesCfg") devices.loadNodes() sensor_monitor.loadNodes() elseif type == "Set_NodesTemplate" then log_print.info("Set_NodesTemplate") devices.loadTemplates() devices.loadNodes() sensor_monitor.loadNodes()]] end end function mqtt_client.start() local address, port, user, password = "localhost", 1883, nil, nil local topic = { "ipc/" .. GW_SN .. "/" .. APP_KEY .. "/device/+/data/Set_Rglt", "ipc/" .. GW_SN .. "/+/device/+/data/service/+", "M/" .. GW_SN .. "/gateway/device/" .. GW_SN .. "/service/Set_NodesCfg", "M/" .. GW_SN .. "/gateway/device/" .. GW_SN .. "/service/Set_NodesTemplate" } client = internal_api.mqtt_session(address, port, user, password, topic, mqtt_callback) end function mqtt_client.send(topic, payload) -- log_print.info(topic, payload) internal_api.mqtt_send(client, topic, payload) end return mqtt_client