X-Git-Url: https://git.rvb.name/openhab-process.git/blobdiff_plain/e06b837b3b3ec837665eb7c0539636c7b000664a..5b22968fed23a6b2f4438fbe344c52bea5143be7:/mqtt-bt/scan-beacons?ds=sidebyside diff --git a/mqtt-bt/scan-beacons b/mqtt-bt/scan-beacons index 98c3993..1709e93 100644 --- a/mqtt-bt/scan-beacons +++ b/mqtt-bt/scan-beacons @@ -1,4 +1,4 @@ -#!/usr/bin/env lua +#!/usr/bin/lua function getConfig(configname) @@ -87,8 +87,8 @@ function dump(o) local s = '{ ' for k,v in pairs(o) do if type(k) ~= 'number' then k = '"'..k..'"' end --- s = s .. '['..k..'] = ' .. dump(v) .. ',' - s = s .. dump(v) .. ',' + s = s .. '['..k..'] = ' .. dump(v) .. ',' +-- s = s .. dump(v) .. ',' end return s .. '} ' else @@ -100,6 +100,11 @@ function trim(s) return (s:gsub("^%s*(.-)%s*$", "%1")) end +function mqtt_pub(path,value) + printLog("Pub "..path.." "..value) + return mqtt_client:publish(path,value) +end + function process_packet(packet) local bytes={} @@ -151,13 +156,13 @@ function process_packet(packet) end if type=="ibeacon" then printLog(string.format("{type:'ibeacon',mac:'%s',uuid:'%s',major:'%s',minor:'%s',power:%d,tx:%d}",mac,uuid,major,minor,power,tx)) - details=uuid..'/'..major..'/'..minor..'/' + details=uuid..'/'..major..'/'..minor else type='unknown' details=dump(bytes) - printLog(details) +-- printLog(details) end - if mqtt_client then + if not (type=="unknown") then mqtt_path=string.gsub(mqtt_topic,"{(.-)}", function (name) if name=="type" then @@ -168,7 +173,12 @@ function process_packet(packet) return '{'..name..'}' end end) - mqtt_client:publish(mqtt_path,tx) + + if not pcall(mqtt_pub,mqtt_path,tx) then + printLog('Reconnecting MQTT...') + mqtt_client:connect(mqtt_id) + end + end end end @@ -219,4 +229,5 @@ if mqtt_host then end inp = open_dump() + read_loop()