ShellScript:FritzBox
Inhaltsverzeichnis
Voraussetzungen
CUxD muß installiert und sollte auf aktuellem Stand sein.
Wegen geändertem Loginverfahren muß auf der FritzBox mindestens die Version Fritz!OS 5.50 installiert sein.
Beschreibung
Das Programm dient zur Steuerung der FritzBox und dazu, diverse Informationen von dieser zu holen.
Ein kleiner Auszug hiervon:
- WLAN ein/ausschalten und visualisieren
- Telefonbuch auslesen
- Anrufe tätigen
- Dect200 Schalter ein/ausschalten und visualisieren
- Temperatur und Entergiemessung der Dect200 auslesen
- Onlinestatus von Geräten auslesen
Das Auslesen aus der FritzBox und setzten der Stati in der CCU übernimmt der mit CUxD mitgelieferte CURL-Befehl.
Visualisierung in der CCU
Die Visualisierung der Stati in der CCU kann klassisch über SystemVariable oder auch direkt mit CUxD erfolgen, welche den Vorteil birgt, daß vor allem ein/ausschaltbare Geräte nicht nur über eine Schaltfläche bedient werden können, sondern auch den korrekten Status anzeigen, falls eine Schaltung direkt über die FritzBox erfolgt ist. Dies wird mit einem CUxD (28)System.Exec (Schalter) verwirklicht. Weitere Alternativen zur SystemVariable die CUxD zur Verfügung stellt und genutzt werden können sind das (90)State-Monitor Device, das(90)Transform Device und das (90)Thermostat Device.
Scriptaufruf
Um eine korrekte Visualisierung zu erhalten oder eine Schaltung tätigen zu können, muß natürlich das Script aufgerufen werden.
Dies erfolgt entweder durch ein Script in einem Programm der WebUI, durch ein CUxD (28)System.Exec oder einem CUxD (28)System.Timer.
Installation
zur Konfiguration stehen 3 Varianten zur Auswahl (Dateien mit einem Texteditor bearbeiten):
- FritzBox.sh -> es muß nur diese Datei hochgeladen werden
- FritzBox.cfg -> bei einem Update der FritzBox.sh muß nicht neu konfiguriert werden
- direkt beim Aufruf (sh FritzBox.sh x [IP] [Username|-] [Passwd] ...) -> andere Konfigurationen werden ignoriert, die Verwendung von mehreren Boxen ist möglich
Hochladen auf die CCU:
- mit FTP zu folgenden Pfad kopieren: /usr/local/addons/cuxd/user/
- Rechte von beiden auf 755 setzen
erster Aufruf:
- mit Telnet in den Ordner wechseln, in dem sich das Script sich befindet: cd /usr/local/addons/cuxd/user/
- einen beliebigen Befehl aufrufen
- sh FritzBox.sh WLAN 0 (oder sh /usr/local/addons/cuxd/user/FritzBox.sh WLAN 0 ohne Wechsel in den Ordner)
- sh FritzBox.sh WLAN 1
- sh FritzBox.sh WLAN state
Nun sieht man, ob das Script Zugriff auf die Fritzbox hat. Gleichzeitig wird auch für CCU1 Besitzer die Datei CPWMD5 im Verzeichnis /usr/local/addons/cuxd/user/ installiert, da diese hier noch nötig ist. Die CCU2 kommt ohne sie aus.
Ruft man das Script mit dem Parameter "h" auf, bekommt man eine Übersicht der Befehle: sh FritzBox.sh h
der Debug-Modus kann deaktiviert werden:
- FritzBox.sh in einem Texteditor öffenen
- Debug="1" nach Debug="0" ändern
- FritzBox.sh hochladen
Befehlsübersicht
- sh FritzBox.sh FB-AHA [AIN|MAC] [0|1|state CUX2801xxx:x]
ein/aus, Status an das sendende Gerät - sh FritzBox.sh FB-AHA [AIN|MAC] [0|1|state CUX9001xxx:x]
ein/aus, Status an CUxD (90)State-Monitor Device - sh FritzBox.sh FB-AHA [AIN|MAC] [0|1|state1 CUX2801xxx:x]
SysVar [CUX2801xxx:x-Status] -> Werteliste: nicht erreichbar;erreichbar;unbekannt - sh FritzBox.sh FB-AHA [AIN|MAC] [0|1|state1-p CUX2801xxx:x]
SysVar: [CUX2801xxx:x-Status] [CUX2801xxx:x-Leistung] - sh FritzBox.sh FB-AHA [AIN|MAC] [0|1|state1-t CUX2801xxx:x]
SysVar: [CUX2801xxx:x-Status] [CUX2801xxx:x-Temperatur] - sh FritzBox.sh FB-AHA [AIN|MAC] [0|1|state1-pt CUX2801xxx:x]
SysVar: [CUX2801xxx:x-Status] [CUX2801xxx:x-Leistung] [CUX2801xxx:x-Temperatur] - sh FritzBox.sh FB-AHA [AIN|MAC] [0|1|state1-pts CUX2801xxx:x]
SysVar: [CUX2801xxx:x-Status] [CUX2801xxx:x-Leistung] [CUX2801xxx:x-Temperatur] [CUX2801xxx:x-Schaltzustand] - sh FritzBox.sh FB-AHA [AIN|MAC] [0|1|power CUX2801xxx:x]
SysVar [CUX2801xxx:x-Leistung] -> Zah - sh FritzBox.sh FB-AHA [AIN|MAC] [0|1|power1 CUX9000xxx:x]
CUxD (90)Transform Device - sh FritzBox.sh FB-AHA [AIN|MAC] [0|1|temperature CUX2801xxx:x]
SysVar [CUX2801xxx:x-Temperatur] -> Zahl - sh FritzBox.sh FB-AHA [AIN|MAC] [0|1|temperature1 CUX9000xxx:x]
CUxD (90)Transform Device - sh FritzBox.sh FB-AHA [AIN|MAC] [0|1|temperature2 CUX9002xxx:x]
CUxD (90)Thermostat Device - sh FritzBox.sh FON-alarm [610|611|...] [0|1|...] [Text]
Beispiel: sh FritzBox.sh FON-alarm 610 8 Hallo%20Welt - sh FritzBox.sh WLAN [0|1|state CUX2801xxx:x]
- sh FritzBox.sh WLAN5 [0|1|state CUX2801xxx:x]
- sh FritzBox.sh WLANGast [0|1|state CUX2801xxx:x]
- sh FritzBox.sh WLANNacht [0|1]
- sh FritzBox.sh WLANAnwesend [Name des WLAN Geraetes] [Name der logischen Variable (Bool)in der CCU]
Beispiel: sh FritzBox.sh WLANAnwesend Geraet CCUVariable - sh FritzBox.sh WLANOnline [Name des WLAN Geraetes] [Name der logischen Variable (Bool)in der CCU]
Beispiel: sh FritzBox.sh WLANOnline Geraet CCUVariable - sh FritzBox.sh LANAnwesend [Name des LAN Geraetes] [Name der logischen Variable (Bool)in der CCU]
Beispiel: sh FritzBox.sh LANAnwesend Geraet CCUVariable - sh FritzBox.sh LANOnline [Name des LAN Geraetes] [Name der logischen Variable (Bool)in der CCU]
Beispiel:sh FritzBox.sh LANOnline Geraet CCUVariable - sh FritzBox.sh WakeOnLan [Name des LAN Geraetes]
Beispiel: sh FritzBox.sh WakeOnLan Geraetename - sh FritzBox.sh DECT [0|1|state CUX2801xxx:x]
- sh FritzBox.sh UMTS [0|1|state CUX2801xxx:x]
- sh FritzBox.sh CallThrough [0|1|state CUX2801xxx:x]
- sh FritzBox.sh NACHTRUHE [0|1]
- sh FritzBox.sh KLINGELSPERRE [0|1]
- sh FritzBox.sh ANRUFEN [(Telefonnummer z.B. **610)]
- sh FritzBox.sh RUFUMLEITUNG [0|1|2|3(Rufumleistung)] [0|1]
- sh FritzBox.sh Diversity [0|1|2|3(Rufumleistung)] [0|1]
- sh FritzBox.sh DECT200 [16|17|18|19] [0|1]
- sh FritzBox.sh DECT200Energie [Nummer des Aktors:16|17|18|19] [Name der Variable in der CCU]
Beispiel: sh FritzBox.sh DECT200Energie 16 DECT200 - sh FritzBox.sh AB [0|1|2...-9] [0|1|state CUX2801xxx:x]
Beispiel schaltet den 2. AB ein: sh FritzBox.sh AB 1 1 - sh FritzBox.sh Status-AB [1|2...-10] [Name der logischen Variable (Bool)in der CCU]
Beispiel Status 2. AB:sh FritzBox.sh Status-AB 2 CCUVariableAB2 - sh FritzBox.sh Anrufliste
- sh FritzBox.sh Anrufliste2CCU [0000(HOMEMATIC Webmatic SYSVAR ID)] [Anzahl Eintraege]
- sh FritzBox.sh Status-Rufumleitung [Name der logischen Variable (Bool)in der CCU]
Beispiel: sh FritzBox.sh Status-Rufumleitung RufumleitungVariableCCU - sh FritzBox.sh Status-DECT [Name der logischen Variable (Bool)in der CCU]
Beispiel: sh FritzBox.sh Status-DECT DECTanausVariableCCU - sh FritzBox.sh Status-UMTS [Name der logischen Variable (Bool)in der CCU]
Beispiel: sh FritzBox.sh Status-UMTS UMTSanausVariableCCU - sh FritzBox.sh Status-DECT200 [16|17|18|19] [Name der logischen Variable (Bool)in der CCU]
Beispiel: sh FritzBox.sh Status-DECT200 16 DECT16VariableCCU - sh FritzBox.sh Status-IP [Name der logischen Variable (Bool)in der CCU]
Beispiel: sh FritzBox.sh SStatus-IP ExterneIPVariableCCU - sh FritzBox.sh Status-KLINGELSPERRE [Name der logischen Variable (Bool)in der CCU]
Beispiel: sh FritzBox.sh Status-KLINGELSPERRE KLINGELSPERREVariableCCU - sh FritzBox.sh Status-Verbindung [Name der logischen Variable (Bool)in der CCU]
Beispiel: sh FritzBox.sh Status-Verbindung InternetverbundenVariableCCU - sh FritzBox.sh Status-Verbindungszeit [Name der logischen Variable (Zeichenkette)in der CCU]
Beispiel:sh FritzBox.sh Status-Verbindungszeit InternetVerbindungszeitVariableCCU - sh FritzBox.sh Status-WLAN [Name der logischen Variable (Bool)in der CCU]
Beispiel: sh FritzBox.sh Status-WLAN WLANanausVariableCCU - sh FritzBox.sh Status-WLAN5 [Name der logischen Variable (Bool)in der CCU]
Beispiel:sh FritzBox.sh Status-WLAN5 WLAN5anausVariableCCU - sh FritzBox.sh Status-WLANGast [Name der logischen Variable (Bool)in der CCU]
Beispiel: sh FritzBox.sh Status-WLANGast WLANGastanausVariableCCU - sh FritzBox.sh Status-WLANZeitschaltung [Name der logischen Variable (Bool)in der CCU]
Beispiel: sh FritzBox.sh Status-WLANZeitschaltung WLANZeitschaltungVariableCCU - sh FritzBox.sh Weckruf [0|1|2] [0|1]
Beispiel - schaltet den ersten Weckruf ein: sh FritzBox.sh Weckruf 0 1 - sh FritzBox.sh Status-Weckruf [0|1|2] [Name der logischen Variable (Bool)in der CCU]
Beispiel: sh FritzBox.sh Status-Weckruf 0 CCUvarWeckruf1 - sh FritzBox.sh reboot