Ich hänge mich mal an diesen Thread dran.
Seit ein paar Wochen habe ich das Problem das sich meine Wifi Switches nicht mehr steuern lassen. Ein reboot der Fritzbox und meiner Repeater hilft meinstens (zumindest für ein paar Tage).
Ich würde gerne meine Box und die Repeater über eine Rule einmal wöchentlicht in der Nacht neustarten lassen.
In meiner oH v. 2.3 ist der Parameter "reboot" nicht vorhanden (erst in der aktuellen Version)
Switch fboxReboot "Reboot" {fritzboxtr064="reboot"}
Bei meiner Recherche bin ich auf folgenden Ansatz mit dem TR-064 Binding gestoßen.
Datei:
cron_fritzbox-reboot.sh
Code: Alles auswählen
#!/bin/bash
#######################################################
### Autor: Nico Hartung <nicohartung1@googlemail.com> #
#######################################################
# Skript sollte ab FritzOS 6.0 (2013) funktioneren - also auch für die 6.8x und 6.9x
# Dieses Bash-Skript nutzt das Protokoll TR-064 nicht die WEBCM-Schnittstelle
# http://fritz.box:49000/tr64desc.xml
# https://wiki.fhem.de/wiki/FRITZBOX#TR-064
# https://avm.de/service/schnittstellen/
# Thanks to Dragonfly (https://homematic-forum.de/forum/viewtopic.php?t=27994)
###=======###
# Variablen #
###=======###
IPS="192.168.137.1
192.168.137.2
192.168.137.3"
FRITZUSER=""
FRITZPW="passwort-weboberflaeche"
###====###
# Skript #
###====###
location="/upnp/control/deviceconfig"
uri="urn:dslforum-org:service:DeviceConfig:1"
action='Reboot'
for IP in ${IPS}; do
curl -k -m 5 --anyauth -u "$FRITZUSER:$FRITZPW" http://$IP:49000$location -H 'Content-Type: text/xml; charset="utf-8"' -H "SoapAction:$uri#$action" -d "<?xml version='1.0' encoding='utf-8'?><s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'><s:Body><u:$action xmlns:u='$uri'></u:$action></s:Body></s:Envelope>" -s > /dev/null
done
Leider habe ich keine Ahnung ob man dieses Script irgendwie in eine Rule einbauen kann.
pyth hat geschrieben: ↑28. Nov 2019 23:25
Es gibt ein Reboot Argument in der TR064. Du hast 2 Möglicheiten:
1. du nimmst dir das Binding und fixt das Problem.
2. du baust dir den JSON Aufruf selbst, definierst den als Thing und dann weiter wie du angefangen hast. Das ist vermutlich das einfachste.
gruss -pyth
Wie müsste so ein JSON Aufruf aussehen?
Für ein paar hilfreiche Tipps wäre ich sehr dankbar