# Remise au goût du jour le petit script luatool.py

## Sources
https://github.com/4refr0nt/luatool


## Description
Le petit script python *luatool.py* permet d'automatiser le téléchargement de
scripts *.lua* sur un NodeMCU branché sur le port USB.<br>
Mais il permet aussi et surtout de le faire via WIFI. Pour cela il faut que le petit serveur *telnet* tourne sur le NodeMCU !


## Problématiques
La version actuelle datant de juillet 2017 ne fonctionne plus avec les nouveaux firmwares de NodeMCU. Il a y un problème au moment de l'initialisation de la connexion série.


## Travail effectué
* J'ai donc repris le code python et juste après l'initialisation du port série je cherche le caractère '>', ainsi je suis certain que le NodeMCU a bien redémarré.

* J'ai aussi diminué le délai d'attente entre chaque ligne, passé de 0.3 sec à 0.03 sec. Les téléchargements sont donc 10x plus rapides

* J'ai aussi mis un nouveau telnet serveur qui tient compte des tailles maximales des paquets TCP

* J'ai aussi bien amélioré le script luatool.py (voir le code source)


## Installation
Maintenant c'est très facile de télécharger tout un projet sur un NodeMCU. Il suffit simplement de modifier le petit script bash upload.sh, puis de faire:

```
./upload.sh
```
* A chaque utilisation de luatool.py, le NodeMCU, s'il est branché sur le port série, redémarre !
* S'il y a des erreurs lors d'un téléchargement, il faut simplement augmenter un peu le délai !<br>
* Il est préférable de télécharger en premier les *gros* fichiers .lua !


## Test via WIFI en telnet
Après avoir installé tout le *binz* sur le NodeMCU avec le script *upload.sh*, on peut utiliser *luatool.py* via le WIFI.<br>
On peut le tester avec le petit script:
```
./test_toto-sh
```

* Si cela fonctionne, la LED devrait arrêter de clignoter ;-)


## Goodies
### Quelques commandes en WIFI ;-)
**ATTENTION:** ces exemples de commandes sont pour MON adresse IP actuelle de mon NodeMCU ;-)

Help du luatool.py
```
./luatool.py -h
```

Liste les fichiers qui se trouvent sur le NodeMCU
```
./luatool.py --ip 192.168.0.157 -l
```

Télécharge le fichier *toto.lua* sur le NodeMCU
```
./luatool.py --ip 192.168.0.157 -f toto.lua
```

Télécharge le fichier *toto.lua* sur le NodeMCU, mais le renomme en *tutu.lua* et affiche une *progression bar* de l'évolution du téléchargement
```
./luatool.py --ip 192.168.0.157 -f toto.lua -t tutu.lua
```

Vérifie que tout est bon sur le NodeMCU
```
./luatool.py --ip 192.168.0.157 -l
```

Efface le fichier *toto.lua* sur le NodeMCU
```
./luatool.py --ip 192.168.0.157 --delete toto.lua
```

Efface le fichier *tutu.lua* sur le NodeMCU
```
./luatool.py --ip 192.168.0.157 --delete tutu.lua
```

Vérifie que tout est bon sur le NodeMCU
```
./luatool.py --ip 192.168.0.157 -l
```


zf191021.1619
