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.....
Ce script est surement loin d'être parfait, mais si ça peut servir à quelqu'un qui est aussi satisfait de son modem que moi....
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