Änderungen
/* Befehlsübersicht */
==Voraussetzungen=='''[http://homematic-inside.de/software/cuxdaemon CUxD]''' muß installiert und sollte auf aktuellem Stand sein.
'''[http://homematic-inside.de/software/cuxdaemon CUxD]''' muß installiert und sollte auf aktuellem Stand sein.<br/>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
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, welches 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.
*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
<u>Hochladen auf die CCU:</u>
*mit FTP zu folgenden Pfad kopieren: ''/usr/local/addons/cuxd/user/''
*Rechte von beiden auf 755 setzen
<u>erster Aufruf:</u> *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 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.<br/>Ruft man das Script mit dem Parameter "h" auf, bekommt man eine Übersicht der Befehle: ''sh FritzBox.sh h''
<u>der Debug-Modus kann deaktiviert werden:</u>
*FritzBox.sh in einem Texteditor öffenen
*Debug="1" nach Debug="0" ändern
*FritzBox.sh hochladen
== Befehlsübersicht ==
*<span style="font-size:small">'''sh FritzBox.sh FB-AHA [AIN|MAC] [0|1|state CUX2801xxx:x]'''<br/>aus/ein, Status an das sendende Gerät (CUxD (28)System.Exec (Schalter))</span>
*<span style="font-size:small">'''sh FritzBox.sh FB-AHA [AIN|MAC] [state CUX9001xxx:x]'''<br/>Status an CUxD (90)State-Monitor Device</span>
*<span style="font-size:small">'''sh FritzBox.sh FB-AHA [AIN|MAC] [0|1|state1 CUX2801xxx:x]'''<br/>aus/ein, Status an das sendende Gerät (CUxD (28)System.Exec (Schalter)) und SysVar [CUX2801xxx:x-Status] -> Werteliste: nicht erreichbar;erreichbar;unbekannt</span>
*<span style="font-size:small">'''sh FritzBox.sh FB-AHA [AIN|MAC] [0|1|state1-p CUX2801xxx:x]'''<br/>aus/ein, Status an das sendende Gerät (CUxD (28)System.Exec (Schalter)) und SysVar: [CUX2801xxx:x-Status] [CUX2801xxx:x-Leistung] -> Zahl</span>
*<span style="font-size:small">'''sh FritzBox.sh FB-AHA [AIN|MAC] [0|1|state1-t CUX2801xxx:x]'''<br/>aus/ein, Status an das sendende Gerät (CUxD (28)System.Exec (Schalter)) und SysVar: [CUX2801xxx:x-Status] [CUX2801xxx:x-Temperatur] -> Zahl</span>
*<span style="font-size:small">'''sh FritzBox.sh FB-AHA [AIN|MAC] [0|1|state1-pt CUX2801xxx:x]'''<br/>aus/ein, Status an das sendende Gerät (CUxD (28)System.Exec (Schalter)) und SysVar: [CUX2801xxx:x-Status] [CUX2801xxx:x-Leistung] [CUX2801xxx:x-Temperatur]</span>
*<span style="font-size:small">'''sh FritzBox.sh FB-AHA [AIN|MAC] [0|1|state1-pts CUX2801xxx:x]'''<br/>aus/ein, Status an das sendende Gerät (CUxD (28)System.Exec (Schalter)) und SysVar: [CUX2801xxx:x-Status] [CUX2801xxx:x-Leistung] [CUX2801xxx:x-Temperatur] [CUX2801xxx:x-Schaltzustand]</span>
*<span style="font-size:small">'''sh FritzBox.sh FB-AHA [AIN|MAC] [power CUX2801xxx:x]'''<br/>Status an SysVar [CUX2801xxx:x-Leistung] -> Zah</span>l
*<span style="font-size:small">'''sh FritzBox.sh FB-AHA [AIN|MAC] [power1 CUX9000xxx:x]'''<br/>Status an CUxD (90)Transform Device</span>
*<span style="font-size:small">'''sh FritzBox.sh FB-AHA [AIN|MAC] [temperature CUX2801xxx:x]'''<br/>Status an SysVar [CUX2801xxx:x-Temperatur] -> Zahl</span>
*<span style="font-size:small">'''sh FritzBox.sh FB-AHA [AIN|MAC] [temperature1 CUX9000xxx:x]'''<br/>Status an CUxD (90)Transform Device</span>
*<span style="font-size:small">'''sh FritzBox.sh FB-AHA [AIN|MAC] [temperature2 CUX9002xxx:x]'''<br/>Status an CUxD (90)Thermostat Device</span>
*<span style="font-size:small">'''sh FritzBox.sh FON-alarm [610|611|...] [1|2|3] [0|1|...] [Text]'''<br/><span style="font-size:small">Beispiel: ''sh FritzBox.sh FON-alarm 610 1 8 Hallo%20Welt''</span>
*<span style="font-size:small">'''sh FritzBox.sh FON-RingTone [610|611|...] [0|1|...]'''<br/><span style="font-size:small">Beispiel: ''shFritzBox.sh FON-RingTone 610 16''</span>
*<span style="font-size:small">'''sh FritzBox.sh FON-Name [610|611|...] [Name]'''<br/><span style="font-size:small">Beispiel: ''sh FritzBox.sh FON-Name 610 Name''</span>
*<span style="font-size:small">'''sh FritzBox.sh WLAN [0|1|state CUX2801xxx:x]'''</span><br/><span style="font-size:small">aus/ein, Status an das sendende Gerät (CUxD (28)System.Exec (Schalter))</span>
*<span style="font-size:small">'''sh FritzBox.sh WLAN5 [0|1|state CUX2801xxx:x]'''</span><br/><span style="font-size:small">aus/ein, Status an das sendende Gerät (CUxD (28)System.Exec (Schalter))</span>
*<span style="font-size:small">'''sh FritzBox.sh WLANGast [0|1|state CUX2801xxx:x]'''</span><br/><span style="font-size:small">aus/ein, Status an das sendende Gerät (CUxD (28)System.Exec (Schalter))</span>
*<span style="font-size:small">'''sh FritzBox.sh WLANNacht [0|1]'''</span>
*<span style="font-size:small">'''sh FritzBox.sh WLANAnwesend [Name des WLAN Geraetes] [Name der logischen Variable (Bool)in der CCU]'''<br/>Beispiel: ''sh FritzBox.sh WLANAnwesend Geraet CCUVariable''</span>
*<span style="font-size:small">'''sh FritzBox.sh WLANOnline [Name des WLAN Geraetes] [Name der logischen Variable (Bool)in der CCU]'''<br/>Beispiel: ''sh FritzBox.sh WLANOnline Geraet CCUVariable''</span>
*<span style="font-size:small">'''sh FritzBox.sh LANAnwesend [Name des LAN Geraetes] [Name der logischen Variable (Bool)in der CCU]'''<br/>Beispiel: ''sh FritzBox.sh LANAnwesend Geraet CCUVariable''</span>
*<span style="font-size:small">'''sh FritzBox.sh LANOnline [Name des LAN Geraetes] [Name der logischen Variable (Bool)in der CCU]'''<br/>Beispiel:''sh FritzBox.sh LANOnline Geraet CCUVariable''</span>
*<span style="font-size:small">'''sh FritzBox.sh WakeOnLan [Name des LAN Geraetes]'''<br/>Beispiel: ''sh FritzBox.sh WakeOnLan Geraetename''</span>
*<span style="font-size:small">'''sh FritzBox.sh DECT [0|1|state CUX2801xxx:x]'''</span><br/><span style="font-size:small">aus/ein, Status an das sendende Gerät (CUxD (28)System.Exec (Schalter))</span>
*<span style="font-size:small">'''sh FritzBox.sh UMTS [0|1|state CUX2801xxx:x]'''</span><br/><span style="font-size:small">aus/ein, Status an das sendende Gerät (CUxD (28)System.Exec (Schalter))</span>
*<span style="font-size:small">'''sh FritzBox.sh CallThrough [0|1|state CUX2801xxx:x]'''</span><br/><span style="font-size:small">aus/ein, Status an das sendende Gerät (CUxD (28)System.Exec (Schalter))</span>
*<span style="font-size:small">'''sh FritzBox.sh NACHTRUHE [0|1]'''</span>
*<span style="font-size:small">'''sh FritzBox.sh KLINGELSPERRE [0|1]'''</span>
*<span style="font-size:small">'''sh FritzBox.sh ANRUFEN [(Telefonnummer z.B. **610)]'''</span>
*<span style="font-size:small">'''sh FritzBox.sh RUFUMLEITUNG [0|1|2|3(Rufumleistung)] [0|1]'''</span>
*<span style="font-size:small">'''sh FritzBox.sh Diversity [0|1|2|3(Rufumleistung)] [0|1]'''</span>
*<span style="font-size:small">'''sh FritzBox.sh DECT200 [16|17|18|19] [0|1]'''</span>
*<span style="font-size:small">'''sh FritzBox.sh DECT200Energie [Nummer des Aktors:16|17|18|19] [Name der Variable in der CCU]'''<br/>Beispiel: ''sh FritzBox.sh DECT200Energie 16 DECT200''</span>
*<span style="font-size:small">'''sh FritzBox.sh AB [0|1|2...-9] [0|1|state CUX2801xxx:x]'''</span><br/><span style="font-size:small">aus/ein, Status an das sendende Gerät (CUxD (28)System.Exec (Schalter))</span>
*<span style="font-size:small">Beispiel schaltet den 2. AB ein: ''sh FritzBox.sh AB 1 1''</span>
*<span style="font-size:small">'''sh FritzBox.sh Status-AB [1|2...-10] [Name der logischen Variable (Bool)in der CCU]'''<br/>Beispiel Status 2. AB:''sh FritzBox.sh Status-AB 2 CCUVariableAB2''</span>
*<span style="font-size:small">'''sh FritzBox.sh Anrufliste'''</span>
*<span style="font-size:small">'''sh FritzBox.sh Anrufliste2CCU [0000(HOMEMATIC Webmatic SYSVAR ID)] [Anzahl Eintraege]'''</span>
*<span style="font-size:small">'''sh FritzBox.sh Status-Rufumleitung [Name der logischen Variable (Bool)in der CCU]'''<br/>Beispiel: ''sh FritzBox.sh Status-Rufumleitung RufumleitungVariableCCU''</span>
*<span style="font-size:small">'''sh FritzBox.sh Status-DECT [Name der logischen Variable (Bool)in der CCU]'''<br/>Beispiel: ''sh FritzBox.sh Status-DECT DECTanausVariableCCU''</span>
*<span style="font-size:small">'''sh FritzBox.sh Status-UMTS [Name der logischen Variable (Bool)in der CCU]'''<br/>Beispiel: ''sh FritzBox.sh Status-UMTS UMTSanausVariableCCU''</span>
*<span style="font-size:small">'''sh FritzBox.sh Status-DECT200 [16|17|18|19] [Name der logischen Variable (Bool)in der CCU]'''<br/>Beispiel: ''sh FritzBox.sh Status-DECT200 16 DECT16VariableCCU''</span>
*<span style="font-size:small">'''sh FritzBox.sh Status-IP [Name der logischen Variable (Bool)in der CCU]'''<br/>Beispiel: ''sh FritzBox.sh SStatus-IP ExterneIPVariableCCU''</span>
*<span style="font-size:small">'''sh FritzBox.sh Status-KLINGELSPERRE [Name der logischen Variable (Bool)in der CCU]'''<br/>Beispiel: ''sh FritzBox.sh Status-KLINGELSPERRE KLINGELSPERREVariableCCU''</span>
*<span style="font-size:small">'''sh FritzBox.sh Status-Verbindung [Name der logischen Variable (Bool)in der CCU] '''<br/>Beispiel: ''sh FritzBox.sh Status-Verbindung InternetverbundenVariableCCU''</span>
*<span style="font-size:small">'''sh FritzBox.sh Status-Verbindungszeit [Name der logischen Variable (Zeichenkette)in der CCU] '''<br/>Beispiel:''sh FritzBox.sh Status-Verbindungszeit InternetVerbindungszeitVariableCCU''</span>
*<span style="font-size:small">'''sh FritzBox.sh Status-WLAN [Name der logischen Variable (Bool)in der CCU]'''<br/>Beispiel: ''sh FritzBox.sh Status-WLAN WLANanausVariableCCU''</span>
*<span style="font-size:small">'''sh FritzBox.sh Status-WLAN5 [Name der logischen Variable (Bool)in der CCU] '''<br/>Beispiel:''sh FritzBox.sh Status-WLAN5 WLAN5anausVariableCCU''</span>
*<span style="font-size:small">'''sh FritzBox.sh Status-WLANGast [Name der logischen Variable (Bool)in der CCU]'''<br/>Beispiel: ''sh FritzBox.sh Status-WLANGast WLANGastanausVariableCCU''</span>
*<span style="font-size:small">'''sh FritzBox.sh Status-WLANZeitschaltung [Name der logischen Variable (Bool)in der CCU]'''<br/>Beispiel: ''sh FritzBox.sh Status-WLANZeitschaltung WLANZeitschaltungVariableCCU''</span>
*<span style="font-size:small">'''sh FritzBox.sh Weckruf [0|1|2] [0|1]'''<br/>Beispiel - schaltet den ersten Weckruf ein: ''sh FritzBox.sh Weckruf 0 1''</span>
*<span style="font-size:small">'''sh FritzBox.sh Status-Weckruf [0|1|2] [Name der logischen Variable (Bool)in der CCU]'''<br/>Beispiel: ''sh FritzBox.sh Status-Weckruf 0 CCUvarWeckruf1''</span>
*<span style="font-size:small">'''sh FritzBox.sh reboot'''</span>
== Integration ==
=== CUxD - (28)System.Exec ===
Dieses Gerät ruft das Shellscript auf.<br />
Installation und Beschreibung des Gerätes ist aus der CUxD-Doku zu entnehmen.
==== ein-/ausschalten mit Statusanzeige ====
(28)System.Exec wird hier als Schalter verwendet (ein/aus).
<u>Geräteparameter einstellen:</u><br/>PARAM1 [sh /usr/local/addons/cuxd/user/FritzBox.sh]<span style="color:#B22222"> -> ruft das Script auf</span><br/>PARAM2 [x 192.168.125.1 CCU HomeMatic]<span style="color:#B22222"> -> der Login</span>
[[File:FritzBox geraete-parameter.jpg|RTENOTITLE]]
<u>Scriptaufruf und Login via Parameter:</u><br/>SWITCH|CMD_SHORT [$_P1$ $_P2$ WLAN 0] <span style="color: #BF0000">-> ausschalten</span><br/>SWITCH|CMD_LONG [$_P1$ $_P2$ WLAN 1] <span style="color: #BF0000">-> einschalten</span><br/>SWITCH|CMD_TIMER [$_P1$ $_P2$ WLAN state $CHANNEL$] <span style="color: #BF0000">-> Status-Abfrage für diesen Kanal</span>
[[File:FritzBox wlan.jpg|RTENOTITLE]]
<u>Scriptaufruf via Parameter, Login über die Config im Script:</u><br/>SWITCH|CMD_SHORT [$_P1$ WLAN5 0]<span style="color: #BF0000">-> ausschalten</span><br/>SWITCH|CMD_LONG [$_P1$ WLAN5 1] <span style="color: #BF0000">-> einschalten</span><br/>SWITCH|CMD_TIMER [$_P1$ WLAN5 state $CHANNEL$] <span style="color: #BF0000">-> Status-Abfrage für diesen Kanal</span>
[[File:FritzBox wlan5.jpg|RTENOTITLE]]
Hier wurde auch der Parameter <span style="font-weight: bold">$CHANNEL$</span> verwendet - dieser ersetzt SN:Kanal des Gerätes, von dem er aufgerufen wird.
<u>Verwendung eines Kanalparamters mit einem DECT200.Eintrag in den Geräteparametern:</u><br/>PARAM1 [sh /usr/local/addons/cuxd/user]<br/><br/>SWITCH|CMD_SHORT [$_P1$/FritzBox.sh FB-AHA $_C1$ 0]<span style="color: #BF0000">-> ausschalten</span><br/>SWITCH|CMD_LONG [$_P1$/FritzBox.sh FB-AHA $_C1$ 1] <span style="color: #BF0000">-> einschalten</span><br/>SWITCH|CMD_TIMER [$_P1$/FritzBox.sh FB-AHA $_C1$ state1 $CHANNEL$] <span style="color: #BF0000">-> Status-Abfrage für diesen Kanal</span>
[[File:FritzBox dect200.jpg|RTENOTITLE]]<br/><br/>Mit Hilfe von Kanalparametern können für mehrere DECT200 die Befehle immer gleich bleiben.<br/>Es ist nur die AIN-Nummer einzutragen.
==== ein-/ausschalten mit Statusanzeige und SystemVariablen ====
Funktion und Aufruf ist hier gleich wie bei "ein-/ausschalten mit Statusanzeige".<br/>Zusätzlich werden hier aber SystemVariablen benötigt, die von einem erweiterten "state"-Befehl befüllt werden. Je nach Befehl werden unterschiedliche SysVars benötigt.
[[File:FritzBox exec.jpg|RTENOTITLE]]