Reboot Ubee ziggo modem elke nacht met Domoticz en een Raspberry Pi.

Aangezien het Ubee ziggo modem nogal eens terug valt op een hele lage speedtest leek het me handig om dat ding elke nacht te resetten.
Dat was niet heel eenvoudig aangezien er op internet niet echt wat zinnigs over te vinden is behalve dat er meer mensen naar een oplossing zoeken.

Bij sommige modems is een simpele URL genoeg om de reset uit te voeren, maar bij de Ubee is er meer nodig.
Door de bron code van de inlog pagina van het modem door te snuffelen ben ik tot het volgende gekomen:

Om het Ubee modem automatisch te resetten zijn 2 html form POSTs nodig.
De 1e om in te loggen en de 2e om het reset commando te geven.

Ik heb dit opgelost door een klein Python script te maken die deze 2 POSTs achter elkaar uitvoert.

#! /usr/bin/python3

import requests

url = 'http://192.168.178.1/goform/loginMR3'
myobj = {'loginUsername': 'pietje', 'loginPassword' : 'puk'}

requests.post(url, data = myobj)

url = 'http://192.168.178.1/goform/RgHomeMR3'
myobj = {'RgHMR3reset': '1', 'RgHMR3undo' : '0'}

requests.post(url, data = myobj)

Na het inlog commando komt een 302 retour. da's een re-direct, deze negeren!
Dan komt het 2e commando om het modem te resetten. Dit is een soft reset en veranderd GEEN instellingen!
RgHMR3reset=1 zorgt voor het reset commando, RgHMR3undo kan alles terug zetten naar fabrieksinstellingen als deze op 1 gezet wordt, wat we niet doen.

De gebruikersnaam "pietje" en wachtwoord "puk" moeten uiteraard veranderd worden.

Het Python script moet op de server gezet worden waar Domoticz ook op draait.

Met chmod moet het script uitvoerbaar gemaakt worden:
chmod +x /home/pi/domoticz/scripts/reset-ziggo.py

Voeg de hardware toe aan Domoticz:

Ga naar "schakelaars" en klik op "Handmatig":

Stel de schakelaar in:

Zo zou het er uit moeten zien:

Klik op "aanpassen" en zet de "Aan" actie op: script:///home/pi/domoticz/scripts/reset-ziggo.py

Stel de timer in om het modem elke nacht te resetten:

Ik denk niet dat het "Uit" commando nodig is, maar voor de zekerheid toch maar uitvoeren.

That's it.
Alles op eigen risico uiteraard.