diff --git a/main.lua b/main.lua
index d1d63a5..7ae0df7 100644
--- a/main.lua
+++ b/main.lua
@@ -1,4 +1,6 @@
-dofile("wlancfg.lua")
+-- Main Module
+wifi.setmode(wifi.STATION)
+dofile("config.lua")
dofile("timecore.lua")
dofile("wordclock.lua")
dofile("displayword.lua")
@@ -24,7 +26,7 @@ tmr.alarm(0, 500, 1, function()
print('IP: ',wifi.sta.getip())
--ptbtime1.ptb.de
- sntp.sync('ptbtime1.ptb.de',
+ sntp.sync(sntpserverhostname,
function(sec,usec,server)
print('sync', sec, usec, server)
end,
@@ -47,9 +49,11 @@ end)
tmr.alarm(1, 15000, 1 ,function()
sec, usec = rtctime.get()
+ -- Include the timezone
+ sec = sec + (timezoneoffset * 3600)
+
time = getTime(sec, timezoneoffset)
print("Local time : " .. time.year .. "-" .. time.month .. "-" .. time.day .. " " .. time.hour .. ":" .. time.minute .. ":" .. time.second)
-
words = display_timestat(time.hour, time.minute)
ledBuf = generateLEDs(words, color)
-- Write the buffer to the LEDs
diff --git a/webserver.lua b/webserver.lua
new file mode 100644
index 0000000..4ee3997
--- /dev/null
+++ b/webserver.lua
@@ -0,0 +1,96 @@
+--TODO:
+
+configFile="config.lua"
+
+
+function sendWebPage(conn,answertype)
+ if (ssid == nil) then
+ ssid="Not set"
+ end
+ if (sntpserverhostname == nil) then
+ sntpserverhostname="ptbtime1.ptb.de"
+ end
+ if (timezoneoffset == nil) then
+ timezoneoffset=1
+ end
+ buf="HTTP/1.1 200 OK\nServer: NodeMCU\nContent-Type: text/html\n\n"
+ buf = buf .. "
\n"
+ buf = buf .. "Welcome to the WordClock
"
+ buf = buf.. "Configuration
"
+ if answertype>1 then
+ buf = buf .. "New configuration saved
"
+ end
+ buf = buf .. "\n"
+ conn:send(buf)
+ buf=nil
+end
+
+function startWebServer()
+ srv=net.createServer(net.TCP)
+ srv:listen(80,function(conn)
+ conn:on("receive", function(conn,payload)
+ if (payload:find("GET /") ~= nil) then
+ --here is code for handling http request from a web-browser
+ ssid, password, bssid_set, bssid = wifi.sta.getconfig()
+ sendWebPage(conn,1)
+ conn:on("sent", function(conn) conn:close() end)
+ else if (payload:find("POST /") ~=nil) then
+ --code for handling the POST-request (updating settings)
+ _, postdatastart = payload:find("\r\n\r\n")
+ --Next lines catches POST-requests without POST-data....
+ if postdatastart==nil then postdatastart = 1 end
+ postRequestData=string.sub(payload,postdatastart+1)
+ local _POST = {}
+ for i, j in string.gmatch(postRequestData, "(%w+)=([^&]+)&*") do
+ _POST[i] = j
+ end
+ postRequestData=nil
+ if ((_POST.ssid~=nil) and (_POST.password~=nil) and (_POST.sntpserver~=nil) and (_POST.timezoneoffset~=nil)) then
+ -- Safe configuration:
+ file.remove(configFile)
+ file.open(configFile, "w+")
+ w = file.writeline
+ w("-- Config")
+ w("wifi.sta.config(\"" .. _POST.ssid .. "\",\"" .. _POST.password .. "\")")
+ w("sntpserverhostname=\"" .. _POST.sntpserver .. "\"")
+ w("timezoneoffset=\"" .. _POST.timezoneoffset .. "\"")
+ file.close()
+ sendWebPage(conn,2)
+ else
+ ssid, password, bssid_set, bssid = wifi.sta.getconfig()
+ sendWebPage(conn,1)
+ conn:on("sent", function(conn) conn:close() end)
+ end
+ else
+ --here is code, if the connection is not from a webbrowser, i.e. telnet or nc
+ global_c=conn
+ function s_output(str)
+ if(global_c~=nil)
+ then global_c:send(str)
+ end
+ end
+ node.output(s_output, 0)
+ global_c:on("receive",function(c,l)
+ node.input(l)
+ end)
+ global_c:on("disconnection",function(c)
+ node.output(nil)
+ global_c=nil
+ end)
+ print("Welcome to WS2812Clock")
+
+ end
+ end
+ end)
+
+ conn:on("disconnection", function(c)
+ node.output(nil) -- un-register the redirect output function, output goes to serial
+ end)
+ end)
+
+end