Mon socat ne fonctionne plus avec les nouvelles version du firmeware et mon pet tracker utilisait le module rtc-mem qui ne se trouvait pas dans la version de dec 19. J'ai donc dû modifier la procédure de boot afin de ne plus devoir utiliser le module rtc-mem et de pouvoir revenir au firmeware de dec 19 et pouvoir utiliser à nouveau mon socat qui est indispensable afin de pouvoir récupérer les logs des ap wifi scannés lors de la sortie du chat
88 lines
2.5 KiB
Lua
88 lines
2.5 KiB
Lua
--Script de bootstrap, test au moment du boot qui a été la cause de boot.
|
|
-- Si la cause est un power on ou une connexion depuis l'IDE, alors
|
|
-- le script repair.lua pendant xx secondes avant de continuer
|
|
--Source: https://nodemcu.readthedocs.io/en/master/en/modules/node/#nodebootreason
|
|
|
|
print("\n init.lua zf200725.1150 \n")
|
|
|
|
verbose = true
|
|
|
|
function initz()
|
|
|
|
function initz_end()
|
|
print("initz_end...")
|
|
f= "wifi_init.lua" if file.exists(f) then dofile(f) end
|
|
f=nil initz=nil second_chance=nil hvbouton=nil initz_end=nil
|
|
print(node.heap()) collectgarbage() print(node.heap())
|
|
print("initz_end out...")
|
|
end
|
|
|
|
function hvbouton()
|
|
gpio.trig(zswitch, "none") zswitch=nil
|
|
print("hvbouton...")
|
|
print(tmr.now())
|
|
if tmr.now() > 5000000 then
|
|
file.putcontents("_setup_wifi_", "toto")
|
|
print("on a demandé le setup wifi !")
|
|
end
|
|
initalarme1:unregister() initalarme1=nil second_chance=nil
|
|
gpio.write(zLED, gpio.HIGH) zLED=nil
|
|
reset_reason="hvbouton"
|
|
initz_end()
|
|
end
|
|
|
|
function second_chance()
|
|
print("seconde chance...")
|
|
zLED=4 -- NodeMCU
|
|
--zLED=7 -- SonOff
|
|
gpio.write(zLED, gpio.LOW) gpio.mode(zLED, gpio.OUTPUT)
|
|
initalarme1=tmr.create()
|
|
initalarme1:alarm(10*1000, tmr.ALARM_SINGLE, function()
|
|
gpio.write(zLED, gpio.HIGH) zLED=nil
|
|
gpio.trig(zswitch, "none") zswitch=nil
|
|
reset_reason="seconde_chance"
|
|
initz_end()
|
|
end)
|
|
zswitch=3 --switch flash ou SonOff
|
|
gpio.mode(zswitch, gpio.INT, gpio.PULLUP)
|
|
gpio.trig(zswitch, "both", hvbouton)
|
|
end
|
|
|
|
_, reset_reason = node.bootreason()
|
|
print("reset_reason: ",reset_reason)
|
|
if reset_reason == 0 then
|
|
print("power on")
|
|
second_chance()
|
|
elseif reset_reason == 4 then
|
|
print("node.restart")
|
|
initz_end()
|
|
elseif reset_reason == 5 then
|
|
print("dsleep wake up")
|
|
initz_end()
|
|
elseif reset_reason == 6 then
|
|
print("external reset")
|
|
print("dsleep wake up")
|
|
f = "0_dsleep2.lua" if file.exists(f) then dofile(f) end
|
|
else
|
|
print("autre raison")
|
|
second_chance()
|
|
end
|
|
end
|
|
initz()
|
|
|
|
--[[
|
|
zLED=7
|
|
gpio.mode(zLED, gpio.OUTPUT)
|
|
gpio.write(zLED, gpio.LOW) -- actif !
|
|
gpio.write(zLED, gpio.HIGH)
|
|
|
|
zBTN=3
|
|
gpio.mode(zBTN, gpio.INPUT)
|
|
print(gpio.read(zBTN))
|
|
|
|
zRELAY=6
|
|
gpio.mode(zRELAY, gpio.OUTPUT)
|
|
gpio.write(zRELAY, gpio.HIGH) -- actif !
|
|
gpio.write(zRELAY, gpio.LOW)
|
|
]]
|