# 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 .