Maintenant quand il voit qu'il a le ssid1, il se connecte sur Internet pour mettre à jour l'horloge. Mais s'il voit ssid2, il redémarre et s'arrête pour la maintenance. Reste encore à modifier le wifi_init qui soit capable de se connecter aussi sur le ssid2, car actuellement c'est seulement le ssid1.
79 lines
3.0 KiB
Lua
79 lines
3.0 KiB
Lua
-- Scripts pour scanner les AP WIFI et les enregistrer dans le log
|
|
-- https://www.epochconverter.com/
|
|
|
|
print("\n 0_wifi_scan.lua zf200816.1955 \n")
|
|
|
|
ztime2020 = 1577836800 -- Unix time pour 1.1.2020 0:0:0 GMT
|
|
|
|
-- sauvegarde les données dans la flash du NodeMCU
|
|
function save_flash(zstr_ap_wifi)
|
|
ztime1 = tostring(rtctime.get() + 2*3600 - ztime2020)
|
|
local zstr = ztime1..", "..zstr_ap_wifi
|
|
if verbose then print("saving to flash: "..zstr) end
|
|
file.open(logs_ap_wifi, "a+") file.writeline(zstr) file.close()
|
|
end
|
|
|
|
function listap(t)
|
|
|
|
print("start display liste ap wifi...")
|
|
for k,v in pairs(t) do
|
|
local ssid, rssi, authmode, channel = string.match(v, "([^,]+),([^,]+),([^,]+),([^,]*)")
|
|
if ssid == cli_ssid2 then
|
|
print("ah je vois que je dois m'arrêter...")
|
|
zdsleep_stop =true
|
|
elseif ssid == cli_ssid1 then
|
|
print("ah je vois que je dois chercher l'heure...")
|
|
zdsleep_get_time = true
|
|
end
|
|
local zstr = k..', "'..ssid..'", '..rssi
|
|
save_flash(zstr)
|
|
end
|
|
print("...end display")
|
|
|
|
if zdsleep_stop then
|
|
node.restart()
|
|
elseif zdsleep_get_time then
|
|
wifi.setmode(wifi.STATION,true)
|
|
wifi.sta.config{ssid=cli_ssid1, pwd=cli_pwd1} wifi.sta.connect()
|
|
gpio.write(zLED, gpio.HIGH) gpio.mode(zLED, gpio.OUTPUT) i=1
|
|
tmr_wifi_init1=tmr.create()
|
|
tmr_wifi_init1:alarm(1*1000, tmr.ALARM_AUTO , function()
|
|
gpio.write(zLED, gpio.LOW) tmr.delay(10000) gpio.write(zLED, gpio.HIGH)
|
|
if wifi.sta.getip() == nil then
|
|
print(i,"Connecting to AP...")
|
|
i=i+1
|
|
if i > 10 then
|
|
print("pas de wifi :-(")
|
|
print("pas grave, on continue le dsleep")
|
|
-- sauve l'heure sur la flash pour si jamais il y a un boot power on sans Internet
|
|
file.putcontents("_ztime_", rtctime.get())
|
|
dsleep_on()
|
|
end
|
|
else
|
|
tmr_wifi_init1:unregister()
|
|
rtctime.set(0) sntp.sync(nil, nil, nil, 1)
|
|
ztmr_set_time = tmr.create()
|
|
ztmr_set_time:alarm(1*1000, tmr.ALARM_AUTO , function()
|
|
zrtc_time = rtctime.get()
|
|
print("je cherche l'heure: "..zrtc_time)
|
|
if zrtc_time > ztime2020 then
|
|
ztmr_set_time:unregister()
|
|
print("j'ai trouvé l'heure: "..zrtc_time)
|
|
file.putcontents("_ztime_", zrtc_time)
|
|
-- print(file.getcontents("_ztime_"))
|
|
dsleep_on()
|
|
end
|
|
end)
|
|
end
|
|
end)
|
|
else
|
|
-- sauve l'heure sur la flash pour si jamais il y a un boot power on sans Internet
|
|
file.putcontents("_ztime_", rtctime.get())
|
|
dsleep_on()
|
|
end
|
|
end
|
|
|
|
print("wifi scan...")
|
|
wifi.sta.getap(1, listap)
|
|
|