projects
/
openhab-process.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Добавлены варианты протоколирования.
[openhab-process.git]
/
mqtt-bt
/
scan-beacons
diff --git
a/mqtt-bt/scan-beacons
b/mqtt-bt/scan-beacons
index 4f2a01cd31ed4ddb90ee4919a6ec3538cd3fd8a1..fcd3c207ebe7242050927fb280d95c088b93e077 100644
(file)
--- a/
mqtt-bt/scan-beacons
+++ b/
mqtt-bt/scan-beacons
@@
-55,15
+55,20
@@
end
function mqtt_encode(str)
if (str) then
str = string.gsub (str, "\n", "")
function mqtt_encode(str)
if (str) then
str = string.gsub (str, "\n", "")
+ str = string.gsub (str, ":", "-")
str = string.gsub (str, "/", "-")
str = string.gsub (str, "/", "-")
+ str = string.gsub (str, " ", "_")
end
return str
end
function printLog(str)
if logging=="yes" then
end
return str
end
function printLog(str)
if logging=="yes" then
- capture("logger -t beaconmon "..str)
- else
+ capture("logger -t beaconmon \""..str.."\"")
+ print(str)
+ elseif logging=="syslog" then
+ capture("logger -t beaconmon \""..str.."\"")
+ elseif logging=="stdout" then
print(str)
end
end
print(str)
end
end
@@
-97,9
+102,13
@@
function trim(s)
return (s:gsub("^%s*(.-)%s*$", "%1"))
end
return (s:gsub("^%s*(.-)%s*$", "%1"))
end
+local function starts_with(str, start)
+ return str:sub(1, #start) == start
+end
+
function mqtt_pub(path,value)
res=mqtt_client:publish(path,value)
function mqtt_pub(path,value)
res=mqtt_client:publish(path,value)
- printLog("Pub "..path.."
"..value.."
returned "..res);
+ printLog("Pub "..path.." returned "..res);
return res
end
return res
end
@@
-112,17
+121,23
@@
function process_packet(packet)
local name
mac = packet['Address']
local name
mac = packet['Address']
- uuid = packet['
uuid
']
+ uuid = packet['
UUID
']
type = packet['Type']
name = packet['Name (complete)']
type = packet['Type']
name = packet['Name (complete)']
- if type=='iBeacon' then
+ print(dump(packet))
+
+ if type and starts_with(type,'iBeacon') then
details=uuid
elseif name then
details=uuid
elseif name then
- type="name"
+ if not(type) then
+ type="name"
+ end
details=name
else
details=name
else
- type='unknown'
+ if not type then
+ type='unknown'
+ end
details=mac
end
details=mac
end
@@
-185,15
+200,21
@@
function read_loop()
value=split(value)[1]
end
packet[name]=value
value=split(value)[1]
end
packet[name]=value
+ elseif #t==1 and name then
+ if not(packet[name..'.list']) then
+ packet[name..'.list']={}
+ end
+ table.insert(packet[name..'.list'],(trim(t[1])))
end
end
if starts(str,'> HCI Event: LE Meta Event (0x3e)') then
inbound=true
end
end
if starts(str,'> HCI Event: LE Meta Event (0x3e)') then
inbound=true
+ name=nil
elseif starts(str,'RSSI:') then
inbound=false
process_packet(packet)
elseif starts(str,'RSSI:') then
inbound=false
process_packet(packet)
- packet={}
+ packet={}
end
end
end
end