Script pour rebooter sa box

Vous avez des questions concernant les scripts dans Domoticz, posez vos questions ici, quelque soit le langage nous tenterons des réponses pertinentes ...
Répondre
gawel3164
Messages : 266
Enregistré le : 07 janv. 2016, 19:51

Script pour rebooter sa box

Message par gawel3164 »

Salut,
je partage un script que j'ai bricolé en m'inspirant du script de détection de présence.
En effet je suis "l'heureux" client numéricable qui à hérité d'un modem 30Mégas qui se déconnecte d'internet très régulièrement..... Du coup, plus d'accès depuis l'extérieur, par contre mon réseau et mon système domotique continuent a fonctionner en local... Si je redémarre le modem, internet fonctionne a nouveau. Depuis la page d'administration du modem, aucune commande de redémarrage n'est disponible donc la seule solution que j'ai trouvée (pas très fine j'en conviens..... :D ) est de couper l'alimentation électrique du modem puis la remettre. J'ai donc branché ma box sur une prise DIO et je fais régulièrement un ping sur Google (l'intervalle entre deux pings peut être modifié dans le script). Dès que le ping échoue, la prise est éteinte puis rallumée.
Ce script est surement loin d'être parfait, mais si ça peut servir à quelqu'un qui est aussi satisfait de son modem que moi.... :lol:

Script: script_time_rebootbox.lua

Code : Tout sélectionner

-- Ce script vérifie la connexion internet en faisant un ping vers Google 
-- L'intervalle de détection peut être réglé. Ici par défaut toutes les 3 heures  
-- créer un dummy nommé "PingBox". La prise commandée sur laquelle est branchée la box s'appelle "Connexion". Régler un delai d'allumage de 10s sur l'inter "Connexion" pour que la prise reste éteinte un laps de temps.
 
commandArray = {}
 
--Cette fonction calcule la différence de temps (en secondes) entre maintenant
--et la date passée en paramètre.
function timedifference (s)
 year = string.sub(s, 1, 4)
  month = string.sub(s, 6, 7)
  day = string.sub(s, 9, 10)
  hour = string.sub(s, 12, 13)
  minutes = string.sub(s, 15, 16)
  seconds = string.sub(s, 18, 19)
  t1 = os.time()
  t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
  difference = os.difftime (t1, t2)
 return difference
end
 
--Si la connexion est perdue ou si la connexion est présente depuis plus de 3 heures,
--alors on vérifie à nouveau sa présence
if ((otherdevices['Connexion']=='Off' and timedifference(otherdevices_lastupdate['Connexion']) > 10800) or (otherdevices['Connexion']=='On' and timedifference(otherdevices_lastupdate['Connexion']) > 10800)) then
	ping_success_google=os.execute('ping -c1 8.8.8.8')
	
	
	if ping_success_google  then
	  print('Connexion fonctionnelle')
	  commandArray['Connexion']='On'
	  commandArray['PingBox']='On'
         
	else
	      print('Connexion non fonctionnelle')
	      commandArray['Connexion']='Off'
             commandArray['PingBox']='Off'      
	end
else
   if (timedifference(otherdevices_lastupdate['PingBox']) < 120 and otherdevices['PingBox']=='Off' ) then
commandArray['Connexion']='On'
print('redemarrage')
   end
end
 
return commandArray
Domoticz 4.10717/RFlink V1.1_R48/ prises: DIO, SCS/caméras IP/station météo Auriol/sondes Oregon/PIR/ZK1PA/Relevé compteur Gaz/téléinfo EDF/Mysensors:RGB-3D,Temp.,IR/Arrosage autonome/Google home/ ESP: IR,Temp.,relai,distance,OLED/Withings Ws30

zipman
Messages : 16
Enregistré le : 28 mars 2016, 21:51

Re: Script pour rebooter sa box

Message par zipman »

Super je viens de poster un sujet identique il y a quelques minutes, étant totalement novice en script et travaillant sur Domoticz sur un D212J synology.

Comment enregistrer ce script et l'exécuter sur ma prise CHACON/DIO ?



Envoyé de mon iPad en utilisant Tapatalk
Domoticz synology D212J, RFX COM, sondes temp BANGGOOD, station météo Oregon, capteurs ouverture (2262), modules BRICELEC (blyss), sonnette CHACON

acuponctus
Messages : 57
Enregistré le : 13 sept. 2016, 12:10
Contact :

Re: Script pour rebooter sa box

Message par acuponctus »

Bonjour,

Je relance le sujet, car je cherche à faire la même chose mais il me manque la prise...
Aussi en me basant sur le même scénario j'aurai imaginé non pas couper l'alimentation électrique, mais l'ouverture d'une page un peu comme ca :

http://192.168.1.1/reboot?submit_button ... d=password (exemple imaginaire)

j'ai trouvé ca sur un forum qu'il faudra traduire en LUA :
wget -q http://%IP%/login --referer="http://%IP%/login?page_ref=/reboot" http://%IP%/reboot --post-data="method=passwd&zsid=&login=%WEBLOGIN%&password=%WEBPASS%&submit=" >nul:

L'idée est faire un script qui profite à tous ceux qui ont domoticz et une box SFR. Et avec un URL appelé on puisse se connecter à la Box et utiliser la fonction reboot. Car il arrive environ une fois par mois que la box se désynchronise. Le LAN reste fonctionnel, c'est juste sur le WAN. ET en rebootant la box tout est OK.

Merci !
ABOX Raspberry Pi 3 Modèle B Plus
domoticz V4.10717 - Stick Aeon - multisensors 6+ - Fibaro FGSD-002 - prises Horsky flashées - cameras sv3c et 1x wansview - TH16 flashé

deennoo
Messages : 4015
Enregistré le : 25 janv. 2015, 02:00

Re: Script pour rebooter sa box

Message par deennoo »

Voici l'api qui va aider.

https://www.neufbox4.org/download/apire ... st_4.0.pdf

Page 7 et 24
je ne peux pas plus aider je suis chez Free.
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr

acuponctus
Messages : 57
Enregistré le : 13 sept. 2016, 12:10
Contact :

Re: Script pour rebooter sa box

Message par acuponctus »

Merci, je vais tester ça prochainement et préciserai le résultat.
ABOX Raspberry Pi 3 Modèle B Plus
domoticz V4.10717 - Stick Aeon - multisensors 6+ - Fibaro FGSD-002 - prises Horsky flashées - cameras sv3c et 1x wansview - TH16 flashé

acuponctus
Messages : 57
Enregistré le : 13 sept. 2016, 12:10
Contact :

Re: Script pour rebooter sa box SFR - arret WiFi

Message par acuponctus »

Bonjour,
Je vois que je n'avais pas posté ma réponse...
Pour ma part j'ai donc ce script qui permet de rebooter la box et qui fonctionne depuis plusieurs mois :

wget -q http://192.168.1.1/login --referer="http://192.168.1.1/login?page_ref=/reboot" http://192.168.1.1/reboot --post-data="method=passwd&zsid=&login=admin&password=motdepassedelabox&submit=" >/dev/null 2>&1

C'est utile quand il y a une désynchronisation, car dans ce cas seul le reboot permet de retrouver l'accès internet.
Je fais d'abord un ping vers google par exemple, et si ça ne fonctionne pas, ca lance le reboot de la box.


Maintenant je voudrai pouvoir faire la même chose mais avec le WiFi pour le couper ou le remettre en route, l'un d'entre vous aurait il une idée ?
Je commencerai de la même manière
wget -q http://192.168.1.1/login --referer="http://192.168.1.1/login?page_ref=/wifi/config" http://192.168.1.1/wifi/config

mais après ?
ABOX Raspberry Pi 3 Modèle B Plus
domoticz V4.10717 - Stick Aeon - multisensors 6+ - Fibaro FGSD-002 - prises Horsky flashées - cameras sv3c et 1x wansview - TH16 flashé

Répondre