-
Notifications
You must be signed in to change notification settings - Fork 2
/
mqtt.lua
36 lines (31 loc) · 1.02 KB
/
mqtt.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
-- need mqtt_topic, mqtt_name, mqtt_login, mqtt_password
mqttClient = {}
mqttClient.client = mqtt.Client(mqtt_name, 30, mqtt_login, mqtt_password)
mqttClient.last = {}
function mqttClient:connect()
print("connect to mqtt " .. mqtt_host .. "...")
mqttClient.client:connect(
mqtt_host, 1883, 0, 0,
function(client) print("mqtt connected") end,
function(client, reason)
print("mqtt connect failed, reason: "..reason..", restarting")
node.restart()
end
)
mqttClient.client:on("offline", function(client)
print ("mqtt offline, restarting")
node.restart()
end)
end
function mqttClient:get_last()
local text = ""
for topic, value in pairs(mqttClient.last) do
text = text .. topic .. " - " .. value .. "\n"
end
return text
end
function mqttClient:publish(subtopic, value)
mqttClient.client:publish(mqtt_topic .. "/" .. subtopic, value, 0, 0)
mqttClient.last[mqtt_topic .. "/" .. subtopic] = value
end
return mqttClient