Je suis chez numericable la plupart du temps ca dépote bien mais j'ai eu des petit soucis qui venais de mon install a priori du coup je cherchais un moyen de monitorer la bande passante car le plus souvent ce n'est que le download qui plantais et passé de presque 50 à 3 ... bref je me suis demandé comment faire pour monitorer au plus simple tout ça.
Pourquoi ne pas utiliser domoticz ??? j'ai donc fait un script bash à partir de speedtest-cli et une fois les données récupérées, elles sont postées avec une requette json sur un virtual device en pourcentage car les text sensor n'ont pas de log ou en tout cas ca ne fonctionnait pas pour moi peut être quelqu'un pourra m'en dire plus la dessus.
Cette technique ne fonctionne que sous linux pour ma part c'est un cubietruck le serveur principal sur lequel le script tourne pour windows il existe surement un moyen similaire mais je n'en est pas sous la mains.
Dans un premier temps on va installer speedtest-cli comme cela :
download et copie du fichier dans /usr/bin
Code : Tout sélectionner
sudo wget https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py -O /usr/bin/speedtest-cliCode : Tout sélectionner
sudo chmod +x /usr/bin/speedtest-cliCode : Tout sélectionner
speedtest-cli --list | grep -i "france"Ensuite pour que le script fonctionne on crée 3 virtual device en pourcentage que l'on appellera PING, DOWNLOAD et UPLOAD. et on notera leur idx
Après on crée un script dans le dossier de son choix il suffira juste de bien le noté pour la suite moi je l'ai appelé speedtest.sh dans le dossier /home/vince/speedtest/
Il faudra changer le code du serveur trouver précédemment, l'ip du serveur domoticz et l'idx pour chaque device
et après le rendre exécutable par la commande
Code : Tout sélectionner
chmod +x speedtest.shCode : Tout sélectionner
#!/bin/bash
speedtest-cli --server 1889 --share --simple > st_results_simple
#sleep 2m
cut -d' ' -f 2 st_results_simple > st_result_cut
#sed -e "s/ //g" st_result_cut > st_result_cutnospace
# variable recup fichier cut
PING=$(sed -n '1 p' st_result_cut)
DOWN=$(sed -n '2 p' st_result_cut)
UP=$(sed -n '3 p' st_result_cut)
echo $PING
echo $DOWN
echo $UP
# envoie info domoticz
curl 'http://192.168.0.10:8080/json.htm?type=command¶m=udevice&idx=270&nvalue=0&svalue='$PING
curl 'http://192.168.0.10:8080/json.htm?type=command¶m=udevice&idx=271&nvalue=0&svalue='$DOWN
curl 'http://192.168.0.10:8080/json.htm?type=command¶m=udevice&idx=272&nvalue=0&svalue='$UP
pour finir on détermine grâce à crontab la fréquence à laquelle on répète le script, moi perso je l'ai mis toutes les heures mais bon on peut le faire plus ou moins de fois par jour, heure, minute etc...
Code : Tout sélectionner
crontab -eCode : Tout sélectionner
0 */1 * * * /cheminscript/nomduscript.shMerci à tous
Vin100