Files
NodeMCU_Lua/DeepSleep/Pet_tracker_3/_zremote_cmd.txt
Christian Zufferey 9252ef4b47 Pas mal de reflexions pour savoir comment se connecter au WIFI lors du boot normal
Je pense avoir trouvé la solution.
J'arrive maintenant à détecter si un ap wifi existe ou non grace
à la fonction print(wifi.sta.status()).
J'essaie en premier de me connecter sur le 2e ssid (celui du smartphone)
et continue mon boot normalement.
Si non, j'essaie de me connecter sur mon 1er ssid (celui de la maison)
et continue mon boot normalement.
Si non, j'essaie de me connecter sur le wifi qui se trouve dans eus_params.lua
et continue mon boot normalement.
Si non, je passe en mode setup gadget pour trouver une nouvelle configuration
2020-08-18 23:26:26 +02:00

373 lines
9.2 KiB
Plaintext

# Quelques commandes remote (luatool) à envoyer avec le plugin Atom-IDE-terminal de l'éditeur Atom
# zf200818.2326
*****************************
# Todo à faire pour ce projet !
- éviter de trop remplir la FLASH !
- faut mettre à jour le _secrets_projet.lua pour la documentation
- refaire totalement la détection de connexion wifi start
- faire un petit serveur en lua pour décharger les logs automatiquement quand on se trouve à la maison
- comment avoir une balise de recherche quand le pet tracker est perdu ?
*****************************
# Logigramme de connexion au WIFI lors du boot
1) on essaie en premier de se connecter sur le cli_ssid2, si oui, on continue la procédure de boot
2) on essaie en deuxième de se connecter sur le cli_ssid1, si oui, on continue la procédure de boot
3) on part en mode setup gadget
4) si pas de réponse au setup gadget, on restart
*****************************
# J'ai encore quelques problèmes à régler !
v- comment faire pour sauver l'horloge afin d'avoir une horloge quand on n'a pas
eu de connexion internet au moment du power on ?
v- 1: il faut que quand il se réveille et que la date est en 1970, il doit alors aller
chercher la date dans un fichier sur la flash.
Et qu'à chaque fois qu'il écrit le log dans la flash il sauve aussi la date qu'il
a pour si jamais qu'il puisse repartir au moins depuis un temps connu
v- comment se comporter quand on a trouvé un WIFI connu ?
Afin de pouvoir
1) se connecter pour vider les logs
2) récupérer l'horloge
3) faire la maintenance
4) continuer quand même le recording
v- 1: s'il voit apzuzu6, il se connecte, va régler l'horloge et continue son dsleep habituel
- 1: s'il voit apzuzu6 ET qu'il voit le serveur de vidange de log, il se connecte,
va régler l'horloge, vide ses logs et continue son dsleep habituel
v- 2: s'il voit 3g-s7, il se connecte et va régler l'horloge et arrête son dsleep
Convertisseur GPX to CSV
https://mygeodata.cloud/converter/gpx-to-csv
???
# si luatool ne marche pas sur le MAC, il faut lire ceci:
# https://docs.google.com/document/d/1q64uK3IMOgEDdKaIAttbYuFt4GuLQ06k3FLeyfCsWLg/edit#heading=h.bmefcu67uwj0
# raccourcis clavier
# CTRL+ALT+ENTER envoie au terminal la ligne de l'éditeur
# SHIT+CTRL+` ouvre le terminal (attention, ne pas oublier de copier le *path* dans le *tree* et le changer)
# ALT+CMD+F bascule entre le terminal et l'éditeur
screen /dev/cu.wchusb
serial1410 115200
# définitions à faire AVANT !
#export luatool_tty="/dev/cu.wchusbserial1410"
#export zIP="192.168.0.182"
#export zport="23"
export zIP="localhost"
export zport="23000"
# ouvrir et fermer (ALT+N+.) une session telnet sur le NodeMCU avec l'adresse zIP)
telnet -rN $zIP $zport
~.
--node.restart()
collectgarbage()
=node.heap()
for k,v in pairs(_G) do print(k,v) end
################################
# commandes lua pour ce projet #
################################
# pour les tests en direct sur la gateway
ssh ubuntu@www.zuzu-test.ml
socat TCP-LISTEN:23069,fork,reuseaddr STDIO
################################
# pour les tests en remote
killall -9 ssh
ssh ubuntu@www.zuzu-test.ml killall -9 socat
ssh ubuntu@www.zuzu-test.ml socat TCP-LISTEN:23010,reuseaddr,fork TCP-LISTEN:23000,reuseaddr,bind=127.0.0.1 &
# SHIFT+CMD+K SHIFT+CMD+K ALT+CMD+F
watch -n 1 'ssh ubuntu@www.zuzu-test.ml netstat -nat |grep 230'
# ALT+CMD+F CTRL+C ALT+CMD+F
export zIP="localhost"
export zport="23000"
ssh -N -L 23000:localhost:23000 ubuntu@www.zuzu-test.ml &
telnet -rN $zIP $zport
verbose=false
file.remove("apwifi.txt")
print(ztime())
dsleep_on()
dofile("cat2.lua")
cat2("apwifi.txt")
zcat_logs_ap_wifi()
verbose=false
~.
=node.heap()
verbose=true
node.restart()
dofile("head.lua")
zhead("0_ultra_son.lua")
./luatool.py --ip $zIP:$zport -f boot.lua
./luatool.py --ip $zIP:$zport -f 0_get_power.lua
./luatool.py --ip $zIP:$zport -f 0_cron.lua
./luatool.py --ip $zIP:$zport -f 0_http_post.lua
./luatool.py --ip $zIP:$zport -f 0_tst5_socat.lua
./luatool.py --ip $zIP:$zport -f 0_dsleep2.lua
./luatool.py --ip $zIP:$zport -f dir.lua
./luatool.py --ip $zIP:$zport -f cat2.lua
./luatool.py --ip $zIP:$zport -f head.lua
./luatool.py --ip $zIP:$zport --zrestart
= node.bootreason()
# https://nodemcu.readthedocs.io/en/master/modules/node/#nodebootreason
for k,v in pairs(_G) do print(k,v) end
verbose=true
#zdyn
./luatool.py --ip $zIP:$zport -f api_sonoff.html
http://192.168.0.182
./luatool.py --ip $zIP:$zport -f dir.lua
telnet -rN $zIP $zport
verbose=false
verbose=true
~.
=node.heap()
collectgarbage()
=node.heap()
dofile("dir.lua")
dir()
for k,v in pairs(_G) do print(k,v) end
dofile("wifi_info.lua")
node.restart()
~.
./luatool.py --ip $zIP:$zport -f head.lua
telnet -rN $zIP $zport
dofile("head.lua")
zhead("boot.lua")
verbose=true
verbose=false
zsort_rssi() zshow()
#commandes luatool pour ce projet le .137 est à jour avec la nouvelle version du wifi !
~.
./luatool.py --ip $zIP:$zport -l
./luatool.py --ip $zIP:$zport -f wifi_init.lua
./luatool.py --ip $zIP:$zport -f secrets_wifi.lua
./luatool.py --ip $zIP:$zport -f initz.lua -t init.lua
./luatool.py --ip $zIP:$zport -f boot.lua
./luatool.py --ip $zIP:$zport -f boot2.lua
./luatool.py --ip $zIP:$zport -f wifi_init.lua
./luatool.py --ip $zIP:$zport -f set_time.lua
./luatool.py --ip $zIP:$zport -f wifi_info.lua
./luatool.py --ip $zIP:$zport -f c.lua
./luatool.py --ip $zIP:$zport -f cat.lua
./luatool.py --ip $zIP:$zport -f flash_led_xfois.lua
./luatool.py --ip $zIP:$zport -f head.lua
./luatool.py --ip $zIP:$zport -f b.lua
./luatool.py --ip $zIP:$zport -f web_srv2.lua
./luatool.py --ip $zIP:$zport -f z_index.html
./luatool.py --ip $zIP:$zport -f wifi_get_conf.html
./luatool.py --ip $zIP:$zport -f wifi_set_conf.html
./luatool.py --ip $zIP:$zport -f z_page1.html
./luatool.py --ip $zIP:$zport -f z_page2.html
./luatool.py --ip $zIP:$zport -f z_page3.html
./luatool.py --ip $zIP:$zport -f z_page4.html
./luatool.py --ip $zIP:$zport --delete wifi_ap_start.lua
./luatool.py --ip $zIP:$zport --delete wifi_cli_conf.lua
./luatool.py --ip $zIP:$zport --delete wifi_cli_start.lua
./luatool.py --ip $zIP:$zport --delete dir.lua
./luatool.py --ip $zIP:$zport --delete initz.lua
./luatool.py --ip $zIP:$zport --delete wifi_conf.lua
dofile("wifi_info.lua")
--node.restart()
for k,v in pairs(_G) do print(k,v) end
t=12
t=nil
print(pcall(function () print("2"..t) end))
# ici c'est maintenant ;-)
~.
./luatool.py --ip $zIP:$zport -f b.lua
#./luatool.py --ip $zIP:$zport --zrestart
telnet -rN $zIP $zport
zsort_rssi() zshow()
print(ztrig_rssi)
ztrig_rssi=-1000
ztrig_rssi=-90
# test de la gestion des erreurs
~.
./luatool.py --ip $zIP:$zport -f c.lua
#./luatool.py --ip $zIP:$zport --zrestart
telnet -rN $zIP $zport
status, err = pcall(function () dofile("c.lua") end) if status==false then print("Error: ",err) end
zerr=nil
zerr=1
ztmr_tst_err:unregister()
ztmr_tst_err:unregister()
for k,v in pairs(_G) do print(k,v) end
./luatool.py --ip $zIP --zrestart
# faire un cat d'un fichier sur le NodeMCU
dofile("cat.lua")
cat("boot2.lua")
# commandes luatool
./luatool.py -h
./luatool.py --ip $zIP:$zport -i
./luatool.py --ip $zIP:$zport -l
./luatool.py --ip $zIP:$zport -f toto.lua -d
./luatool.py --ip $zIP:$zport --delete toto.lua
****************************************************************************
# création des tunnels ssh
ATTENTION: dans un premier terminal !
Pour Bolo à Ruchonnet:
ssh -t -L 2323:localhost:2323 ubuntu@www.zuzu-test.ml ssh -N -L 2323:192.168.8.102:23 ubuntu@localhost -p 20223
Pour le Crêt
ssh -N -L 2323:192.168.0.137:23 admin@z.zufferey.com -p 1822
ssh -N -L 2323:192.168.0.122:23 admin@z.zufferey.com -p 1822
ssh -N -L 2323:192.168.0.118:23 admin@z.zufferey.com -p 1822
ATTENTION: dans un deuxième terminal !
export zIP="localhost"
export zport="2323"
telnet -rN $zIP $zport
~.
=node.heap()
verbose=false
verbose=true
dofile("dir2.lua")
dir()
filec("head.lua")
dofile("head.lua")
zhead("dir2.lua")
dofile("cat.lua")
cat("head.lua")
~.
--node.restart()
=node.heap()
status, err = pcall(function () fonction_a_tester() end) if status==false then print("Error: ",err) end
status, err = pcall(function () toto() end) if status==false then print("Error: ",err) end
Gestion de la passerelle SSH reverse
Puis depuis une autre console on peut faire directement pour aller sur l'OpiZ (ici le 20223):
ssh -t ubuntu@www.zuzu-test.ml ssh ubuntu@localhost -p 20223
ou
1ère console
On établit le tunnel local avec l'OpiZ
ssh -N -L 20223:localhost:20223 ubuntu@www.zuzu-test.ml
2ème console, on utilise le tunnel OpiZ en local sur sa machine
pour aller sur l'OpiZ
ssh ubuntu@localhost -p 20223
pour copier sa clef SSH depuis un MAC
./ssh-copy-id -i ~/.ssh/id_rsa.pub 'ubuntu@localhost -p 20223'
après on devrait pouvoir se connecter sans devoir entrer son password à chaque fois
ssh ubuntu@localhost -p 20223
ou, on établit un tunnel pour telnet sur un NodeMCU
ssh -L 2323:192.168.0.137:23 ubuntu@localhost -p 20223
puis
telnet -rN localhost 2323
ou, on établit un tunnel pour le rpimonotor sur l'OpiZ
ssh -N -L 8888:192.168.0.113:8888 ubuntu@localhost -p 20223
puis
http://localhost:8888
ou, on établit un tunnel proxy Socket 5 pour le modem 4G HUAWEI sur l'OpiZ
ssh -N -D 8080 ubuntu@localhost -p 20223
puis depuis le browser FireFox avec le plugin FoxyProxy Socket 5 sur localhost port 8080
http://192.168.8.1
.