From 330b90fcb924e6fc6a25aef58ed1e56509709ada Mon Sep 17 00:00:00 2001 From: Roman Bazalevskiy Date: Wed, 17 Oct 2018 22:10:02 +0300 Subject: [PATCH] =?utf8?q?=D0=A3=D0=BD=D0=B8=D0=B2=D0=B5=D1=80=D1=81=D0=B0?= =?utf8?q?=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D0=B2=D0=B0=D1=80=D0=B8=D0=B0?= =?utf8?q?=D0=BD=D1=82=20=D0=BF=D0=BE=D0=B4=20Debian/Ubuntu=20=D0=B8=20Ope?= =?utf8?q?nWRT.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- mqtt-bt/scan-beacons | 72 +++++++++++++++++++++++++++++++------------- 1 file changed, 51 insertions(+), 21 deletions(-) diff --git a/mqtt-bt/scan-beacons b/mqtt-bt/scan-beacons index 192539e..fc11a48 100644 --- a/mqtt-bt/scan-beacons +++ b/mqtt-bt/scan-beacons @@ -4,24 +4,56 @@ json = require("json") function getConfig(configname) - local uci=require("uci") - local cur=uci.cursor() + local status,uci = pcall(require,"uci") + local config - if configname then - config=configname - else - config="beacon" - end - logging = cur.get(config,"logging","enabled") + if status then - mqtt_host = cur.get(config,"mqtt","host") - mqtt_port = cur.get(config,"mqtt","port") - mqtt_id = cur.get(config,"mqtt","id") - mqtt_topic = cur.get(config,"mqtt","topic") + if configname then + config=configname + else + config="beacon" + end - mqtt_user = cur.get(config,"mqtt","user") - mqtt_passwd = cur.get(config,"mqtt","password") + local cur=uci.cursor() + + logging = cur.get(config,"logging","enabled") + + mqtt_host = cur.get(config,"mqtt","host") + mqtt_port = cur.get(config,"mqtt","port") + mqtt_id = cur.get(config,"mqtt","id") + mqtt_topic = cur.get(config,"mqtt","topic") + + mqtt_user = cur.get(config,"mqtt","user") + mqtt_passwd = cur.get(config,"mqtt","password") + + else + + local status,ini = pcall(require,"ini") + if not status then + os.exit(1) + end + + if configname then + config=configname + else + config="/etc/beacon.ini" + end + + local cur=ini.parse_file(config) + + logging = cur["logging"]["enabled"] + + mqtt_host = cur["mqtt"]["host"] + mqtt_port = cur["mqtt"]["port"] + mqtt_id = cur["mqtt"]["id"] + mqtt_topic = cur["mqtt"]["topic"] + + mqtt_user = cur["mqtt"]["user"] + mqtt_passwd = cur["mqtt"]["password"] + + end if mqtt_host and not mqtt_id then socket = require("socket") @@ -80,12 +112,12 @@ end function open_dump() - run_command("/bin/kill `/usr/bin/pgrep btmon`") - run_command("/bin/kill `/usr/bin/pgrep hcitool`") + run_command("/usr/bin/pgrep btmon && /bin/kill `/usr/bin/pgrep btmon`") + run_command("/usr/bin/pgrep btmon && /bin/kill `/usr/bin/pgrep hcitool`") f = assert(io.popen ("/usr/bin/stdbuf -o0 /usr/bin/btmon")) - run_command("/usr/bin/hciconfig hci0 down") - run_command("/usr/bin/hciconfig hci0 up") - f_null = assert(io.popen ("/usr/bin/hcitool lescan --duplicates --passive")) + run_command("hciconfig hci0 down") + run_command("hciconfig hci0 up") + f_null = assert(io.popen ("hcitool lescan --duplicates --passive")) return f @@ -122,8 +154,6 @@ function process_packet(packet) type = packet['Type'] name = packet['Name (complete)'] - print(dump(packet)) - if type and starts_with(type,'iBeacon') then details=uuid elseif name then -- 2.34.1