TUTO Zipabox : Activer /désactiver le wifi de la livebox depuis la Zipa
Salut à tous !
Aujourd’hui, je vous propose un nouveau Tuto qui va vous permettre d’activer ou désactiver votre Wifi depuis la ZipaBox.
En effet tous les appareils de ma maison étant reliés en filaire j’utilise le Wifi uniquement pour me connecter à Internet depuis mon téléphone ou l’ordi portable. Par mesure de précaution, et aussi pour m’amuser un peu je souhaitais pouvoir allumer ou éteindre le Wifi depuis la Zipa.
Pour cela il nous faut :
- Un serveur capable d’exécuter des commandes Linux et qu’il soit situé sur votre réseau local. (Vous l’aurez compris, l’idéal est d’avoir un Raspberry sous la main. Petit rappel : héberger les scripts PHP sur son Raspberry)
- une Livebox 2 Sagem
Pour ceux qui utilise d’autres box, j’ai trouvé d’autre script, mais j’attend que quelqu’un les tests avant de les diffuser, n’hésitez pas à me demander les liens via les commentaires.
1. Récupération des informations
Avant de commencer nous a besoin de récupérer quelques informations. Pour cela, connectez vous à votre Livebox en tapant l’adresse suivante dans un navigateur: http://192.168.1.1
Connectez vous. Puis allez dans l’onglet « Configuration », ensuite dans la section paramètre Wifi
Relevez dans un coin le nom du réseau, alias SSID, puis copiez votre Clef de sécurité, nous allons en avoir bientôt besoin.
2. Création des scripts.
Avant de commencer, je tenais à remercier Fabrice, qui a écris pas mal de script Linux permettant de commander la Livebox, et qui a gentiment accepté que je publie son script sur MDG. Son site ICI.
Si vous utilisez le Raspberry, (j’en parle, car c’est mon cas, mais c’est valable pour tous les autres serveurs tournant sous linux) connectez vous à ce dernier en SSH et si ça n’a pas déjà était fait par le passé, faites une commande :
apt-get install curl
Celle ci permettra d’installer l’application Curl utilisée par le script.
Maintenant, nous allons passer à l’écriture du script.
Comme nous allons l’exécuter depuis une commande HTTP généré par la Zipa, il faut que le script soit accessible depuis l’extérieur. Pour cela le mieux est d’avoir au préalablement installé un Serveur web sur votre Raspberry, petit rappel sur le tuto : Tuto : héberger les scripts sur son Raspberry
Ensuite nous allons passer à l’écriture du script, faite un :
sudo nano /var/www/wifi_sagem
puis collez y le script suivant :
#!/bin/bash # Script de modification du wifi sur une livebox 2 Sagem, le 20 juin 2013. # Argument 0 ou 1 # exemple pour activer le wifi: # /bin/mes_scripts/wifi_sagem. 1 data=`curl -s -d "authlogin=admin&authpasswd=admin&authaction=login" http://192.168.1.1 | grep 'legal_info_home&sessionid=' | awk -F "=" '{ print $4}' | awk -F "'" '{print $1}'` # echo $data urla='http://192.168.1.1/index.cgi?page=wireless&sessionid='$data #echo $urla run=`curl --silent -d "wifistatus=$1&ssid=Space&broadcast=1&mode=3&key=123456789fudard&securitymode=7&action=submit" $urla` echo "fin du script"
Avant d’enregistrer, allez dans la ligne suivante :
$1&ssid=Space&broadcast=1&mode=3&key=123456789faard&securitymode=7&action=submit » $urla`
Remplacez « Space » par le nom de votre livebox (celui noté plus haut), et remplacez le « 123456789faard » par votre clef de sécurité, (également noté plus haut).
Enregistrez, et ensuite faites une commande :
chmod +x /var/www/wifi_sagem
Afin d’autoriser le script à s’exécuter.
Bon maintenant, nous avons notre script qui est en faite une commande linux. Celle ci permet de couper/allumer le wifi, c’est bien, mais le problème est que la Zipa est uniquement capable d’envoyer des requêtes HTTP. Il va donc nous falloir une passerelle qui permettra de passer de la requête http à l’exécution du script Linux.
Il nous faut donc passer par un script PHP !!!
Pour ça faite un :
sudo nano /var/www/wifi_on.php
ensuite collez y le script suivant :
#!/usr/bin/php5 <!--?php $wifi=shell_exec('/var/www/wifi_sagem 1'); echo $wifi; ?-->
Ensuite nous allons créer un deuxième script qui nous permettra de désactiver le wifi :
sudo nano /var/www/wifi_off.php
puis
#!/usr/bin/php5 <!--?php $wifi=shell_exec('/var/www/wifi_sagem 0'); echo $wifi; ?-->
Et voilà! le tour est joué, il ne nous reste plus qu’à utiliser tous ça avec la zipa !!
3. Utilisation dans la Zipa
Maintenant créez un module virtuel de type switch :
et allez dans le créateur de règle. et créez 2 nouvelles règles tel que :
N’oubliez pas de remplacer l’adresse IP, par celle de votre serveur !!!
Et voilà! désormais vous pourrais allumer ou éteindre votre wifi depuis votre téléphone ! Mais surtout, la fonction qui est à mes yeux la plus intéressante, est de pouvoir programmer l’allumage ou l’extinction, en fonction de la présence (allumage si détection d’une présence), ou en fonction de vos horaires de présences via le scheduler.
Bonne journée à tous !
Bonjour,
As-tu des scripts pour BBox Bouygues ?
Je suis preneur.
D’autres exemples de commande à distance de Freebox et Box SFR Evolution, mais directement via les API des box :
http://www.planete-domotique.com/blog/2013/06/03/piloter-sa-freebox-revolution-avec-sa-box-domotique/
http://www.touteladomotique.com/forum/viewtopic.php?f=42&t=8088
Concernant cette box, ça l’air beaucoup plus simple, j’ai trouvé ça :
http://bbox-news.com/forums/topic5717-desactiver-le-wifi-par-script.html
Je n’avais pas trouvé cette page lors de mes recherches.
Ca fonctionne parfaitement avec ma BBOX !
Merci.
Hello, merci pour ce tuto et pour la SFR BOX ?
http://forum.ubuntu-fr.org/viewtopic.php?id=1165451 il y a quelque chose par ici..
Salut Vincent!!
J’ai essayer les scripts pour la freebox mais sa ne fonctionne pas. Es que tu en aurai pour la freebox? Merci par avance
Es que le problème peut provenir du serveur Web. Car quand je veut accéder au serveur web par firefox, j’ai une erreur 500?
Le problème viens à priori de la configuration de NGINx, as tu fais cela :
sudo nano /etc/nginx/nginx.conf
Modifie ces deux lignes avec comme valeur :
worker_processes 1;
keepalive_timeout 2;
Merci c’est nickel sa fonctionne!!!!!
bonsoir
ca ne fonctionne pas chez moi j envoie la requete depuis la zibase elle bien recu et executer mais derriere rien
j ai remis admin comme mot de passe mais c est pareil
j ai l impression qu il manque le valider dans le script apres l arret du wifi
si je met la commande dans une page web il me demande de telecharger le php
merci d avance pour vos lumieres
Bonjour,
Sur quel serveur est executé votre script?
avez vous bien exécutée la fonction :
apt-get install curl
?
Le script a été testé chez plusieurs personnes et fonctionne normalement chez toutes.
Bonjour Vincent,
Et pour la Livebox 3 (la noire), c’est le même script ?
Merci
Bonjour,
je ne sais pas, vous pouvez toujours faire le test, il n’y a aucun risque pour votre box