local m local topic local connected = false function mq_connected(con) print("MQTT connected, con="..tostring(con)) end function mq_disconnected(con) print("MQTT disconnected, con="..tostring(con)) connected = false end function mq_client_connected(con) print("connected="..tostring(con)) connected = true local majorVer, minorVer, devVer, chipId, flashId, flashSize, flashMode, flashSpeed = node.info() payload = "{version: '"..majorVer.."."..minorVer.."."..devVer.."', chipId:"..chipId..", flashId:"..flashId..", flashSize:"..flashSize..", flashMode:"..flashMode..", flashSpeed:"..flashSpeed.."}" mq_publish("firmware", payload) end function mq_init(client_id) print("MQTT: Configuring") topic = "/esp8266/"..client_id -- client id, keepalive, username, password m = mqtt.Client(client_id, 120) m:on("connect", mq_connected) m:on("offline", mq_disconnected) -- host, port, secure, auto_reconnect, function(client), ssl=8883 m:connect("trygvis.io", 1883, 0, 0, mq_client_connected) print("MQTT: Configured") end function mq_publish(path, payload) if connected then m:publish(topic.."/"..path, payload, 0, 0) end end