From: Roman Bazalevsky Date: Wed, 2 Sep 2015 15:11:51 +0000 (+0300) Subject: All OpenWRT functionality moved to lua script X-Git-Url: https://git.rvb.name/weathermon.git/commitdiff_plain/25495dee81262b35aaafdd93b8687e4725d84489?ds=inline All OpenWRT functionality moved to lua script Bugs fixed --- diff --git a/weathermon.lua b/weathermon.lua index 20f5aca..19cd912 100755 --- a/weathermon.lua +++ b/weathermon.lua @@ -10,16 +10,28 @@ function getConfig() web_user = cur.get(config,"web","user") web_pass = cur.get(config,"web","password") web_devid = cur.get(config,"web","devid") + + web_iface = cur.get(config,"web","iface") - io.input("/sys/class/net/eth0/address") + if web_iface then + io.input("/sys/class/net/"..web_iface.."/address") + else + io.input("/sys/class/net/eth0/address") + end + mac = io.read("*line") mac = mac:gsub(":","") mac = mac:upper() web_devid = web_devid or mac - logging = cur.get(config,"logging","enabled") + serial_port = cur.get(config,"serial","port") + serial_baud = cur.get(config,"serial","baud") + + command = "stty -F "..serial_port.." "..serial_baud + os.execute(command) + end require "socket" @@ -59,21 +71,21 @@ end function submitValue(type,id,param,val) - printLog("URL="..web_url) - url = web_url.."?stype="..type.."&sid="..id.."¶m="..param.."&value="..val - printLog(url) - command = "curl" + if web_iface then + command = command.." --interface "..web_iface + end + if web_user then command = command.." -u "..web_user..":"..web_pass end command = command.." \""..url.."\"" - printLog("COMMAND=\""..command.."\"") + print(command) os.execute(command) print("") @@ -110,8 +122,8 @@ function processLine(str) end end for k,v in pairs(sensor) do - printLog("Type = "..sensor_type..", ID = "..sensor_id..", Param = "..key..", Value = "..value) - submitValue(sensor_type,sensor_id,key,value) + printLog("Type = "..sensor_type..", ID = "..sensor_id..", Param = "..k..", Value = "..v) + submitValue(sensor_type,sensor_id,k,v) end end @@ -119,6 +131,9 @@ end getConfig() -line=arg[1] -print(line) -processLine(line) +serialin=io.open(serial_port,"r") +while 1 do + line=serialin:read() + print(line) + processLine(line) +end diff --git a/weathermon.sh b/weathermon.sh deleted file mode 100755 index 3f42275..0000000 --- a/weathermon.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -ARDUINO_PORT=`uci get weathermon.serial.port` -BAUD=`uci get weathermon.serial.baud` -stty -F $ARDUINO_PORT $BAUD - -while read LINE; do - weathermon.lua $LINE -done < $ARDUINO_PORT diff --git a/weathermon.uci b/weathermon.uci index 490ba91..27631ac 100644 --- a/weathermon.uci +++ b/weathermon.uci @@ -2,6 +2,7 @@ config internal 'web' option url http://estia.rvb-home.lan/meteo/send.php option user meteo option password somestrictpassword + option iface eth0 config internal 'serial' option port /dev/ttyUSB0 diff --git a/weathermon.uci~ b/weathermon.uci~ new file mode 100644 index 0000000..490ba91 --- /dev/null +++ b/weathermon.uci~ @@ -0,0 +1,12 @@ +config internal 'web' + option url http://estia.rvb-home.lan/meteo/send.php + option user meteo + option password somestrictpassword + +config internal 'serial' + option port /dev/ttyUSB0 + option timeout 100 + option baud 9600 + +config internal 'logging' + option enabled on