La Livebox (ADSL) d’Orange ne gère pas très bien l’allumage très longue durée (plusieurs semaines), et il est fréquent de devoir la redémarrer pour retrouver un débit ‘normal’.
Voici une solution ‘scriptée’ qui permet de se passer d’utiliser la console d’administration, et de la redémarrer automatiquement (via Domoticz par exemple) à fréquence régulière.
Installation et préparation du script
exzz a mis à disposition sur GitHub un script tout simple, en Perl, permettant ce rebut automatique. Vous pouvez télécharger le fichier livebox-reboot ici.
Il s’agit d’un script Perl utilisant les modules JSON et LWP:UserAgent. Vous aurez donc besoin d’installer ces deux librairies si ce n’est pas encore le cas sur votre installation Raspbian (sur laquelle est installé Domoticz). Pour cela, exécutez les deux commandes :
1 2 |
sudo apt-get install liblwp-protocol-https-perl sudo apt-get install libjson-pp-perl |
Ensuite, modifiez le script livebox-reboot aux lignes 11 et 13 pour modifier (si besoin…) l’adresse de la Livebox sur votre réseau ainsi que le mot de passe de l’utilisateur admin.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
#!/usr/bin/env perl use strict; use warnings; use LWP::UserAgent; use HTTP::Cookies; use JSON; # credentials my $hostname = '192.168.1.1'; my $username = 'admin'; my $password = 'admin'; # lwp handler my $lwp = LWP::UserAgent->new; # session cookie my $cookie_jar = HTTP::Cookies->new; $lwp->cookie_jar($cookie_jar); my ( $req, $response ); # authenticate on livebox # sending password in plain text, well done sagem ... $req = HTTP::Request->new( 'POST', "http://$hostname/authenticate?username=$username&password=$password" ); $response = $lwp->request($req); die "Cannot authenticate " . $response->status_line unless $response->is_success; my $auth = decode_json( $response->decoded_content() ); # send reboot command $req = HTTP::Request->new( 'POST', "http://$hostname/sysbus/NMC:reboot" ); $req->header( 'Content-Type' => 'application/json' ); $req->header( 'X-Context' => $auth->{data}{contextID} ); $req->content( '{"parameters":{}}' ); $response = $lwp->request($req); die "Livebox command failed " . $response->status_line unless $response->is_success; print "Rebooting livebox ..."; |
Installation dans Domoticz
Copiez le fichier dans le répertoire « scripts » de votre installation Domoticz.
Rendez-vous ensuite dans l’interface Domoticz, créez un nouveau capteur virtuel (Réglages > Matériel) puis créer un nouveau sensor de type Interrupteur.
Paramètres l’interrupteur comme ceci :
- Type Push Off button
- Script on/off : script://livebox_reboot
- Mode protégé On (pour éviter les appuis accidentels sur le bouton en protégeant l’activation via l’interface par un mot de passe, ce qui aurait pour inconvénient de la redémarrer trop souvent).
Il ne vous reste plus qu’à planifier l’activation du bouton les jours / heures qui vous conviennent.