FRITZBOX: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Forenbereich in der Infobox korrigiert)
K (Erste Anpassungen, um den Wiki-Artikel auf den aktuellen Stand zu bringen (Abschaltung Telnet auf Fritzboxen)...)
Zeile 23: Zeile 23:
Zur Erstinstallation reicht ein einfaches <code>define FritzBox FRITZBOX</code>, dieses Modul funktioniert lokal (FHEM auf Fritzbox) sowie per Fernzugriff(FHEM auf einem anderen Server im Netz, siehe nächsten Schritt).
Zur Erstinstallation reicht ein einfaches <code>define FritzBox FRITZBOX</code>, dieses Modul funktioniert lokal (FHEM auf Fritzbox) sowie per Fernzugriff(FHEM auf einem anderen Server im Netz, siehe nächsten Schritt).


==== Modul FRITZBOX für Zugriff auf einem externen Server einrichten ====
HINWEIS: Wie inzwischen schon an vielen Stellen zu lesen, wird mit neueren Firmware-Versionen für die FritzBox (seit ca. 6.2x) der Telnet-Zugang immer weiter eingeschränkt. Der zukunftssicherste Weg zum Zugriff auf die Fritzbox ist daher der Zugriff TR-064 (siehe unten).
 
==== TR-064: Modul FRITZBOX für Zugriff auf einem externen Server einrichten ====
Für den Fernzugriff über TR-064 sind die folgenden Schritte nötig:
 
Fritzbox definieren:
:<code>define FritzBox FRITZBOX</code>
 
Wenn das Login auf der Benutzeroberfläche der FritzBox mit User und Passwort (und nicht nur per Passwort) geschieht, den User konfigurieren:
:<code>attr Fritzbox boxUser ''Benutzername'' </code>
 
Passwort konfigurieren:
:<code>set Fritzbox password ''Passwort'' </code> - legt das zugehörige Passwort fest
 
TR-064 Kommandos erlauben:
:<code>attr Fritzbox allowTR064Command 1</code>
 
==== Telnet: Modul FRITZBOX für Zugriff auf einem externen Server einrichten ====
[[Datei:Screenshot_FritzBox_TelnetUser.png|mini|300px|rechts|Anlegen des Attributs telnetUser]]
[[Datei:Screenshot_FritzBox_TelnetUser.png|mini|300px|rechts|Anlegen des Attributs telnetUser]]
Bei Fernzugriff sind weitere Schritte nötig:
Bei Fernzugriff über Telnet sind weitere Schritte nötig:
# Telnet auf der Fritzbox freischalten (Tastenkombination #96*7* am angeschlossenen Telefon (auch FritzFon)
# Telnet auf der Fritzbox freischalten (Tastenkombination #96*7* am angeschlossenen Telefon (auch FritzFon)
# TelnetUser definieren (wie im Screenshot gezeigt)
# TelnetUser definieren (wie im Screenshot gezeigt)
Zeile 34: Zeile 51:
(bitte die Buttons {{Taste|set}} und {{Taste|attr}} bei der Definition der jeweiligen Einträge nicht vergessen)
(bitte die Buttons {{Taste|set}} und {{Taste|attr}} bei der Definition der jeweiligen Einträge nicht vergessen)


==== ...für die Profis ====
==== Telnet: ...für die Profis ====
(die Telnet auf ihrer FritzBox vermutlich ohnehin längst aktiviert haben)
(die Telnet auf ihrer FritzBox vermutlich ohnehin längst aktiviert haben)


Zeile 42: Zeile 59:
:<code>attr Fritzbox telnetUser ''Benutzername'' </code> - legt den Benutzer fest
:<code>attr Fritzbox telnetUser ''Benutzername'' </code> - legt den Benutzer fest
:<code>set Fritzbox password ''Passwort'' </code> - legt das zugehörige Passwort fest
:<code>set Fritzbox password ''Passwort'' </code> - legt das zugehörige Passwort fest
Wer keinen User konfiguriert hat, kann das Feld "telnetUser" leer lassen.


=== mögliche Fehlermeldungen ===
=== mögliche Fehlermeldungen ===
Zeile 61: Zeile 80:
<code>attr <device> devStateIcon .*on.*off:WLAN_on_gWLAN_off .*on.*on.*:WLAN_on_gWLAN_on WLAN..off.*:WLAN_off</code>
<code>attr <device> devStateIcon .*on.*off:WLAN_on_gWLAN_off .*on.*on.*:WLAN_on_gWLAN_on WLAN..off.*:WLAN_off</code>


Im Verzeichnis www/images/default müssen die passenden Dateien "WLAN_on_gWLAN_off.png", "WLAN_on_gWLAN_on.png" und "WLAN_off.png" liegen.
Im Verzeichnis www/images/default müssen die passenden Dateien "WLAN_on_gWLAN_off.png", "WLAN_on_gWLAN_on.png" und "WLAN_off.png" liegen. Wenn die PNGs fehlen, können sie hier [http://forum.fhem.de/index.php/topic,29725.msg318113.html#msg318113] heruntergeladen werden.


== Anwendungsbeispiele ==
== Anwendungsbeispiele ==
Zeile 147: Zeile 166:


*Box Reboot: <code>get <device> tr064Command DeviceConfig:1 deviceconfig Reboot</code>
*Box Reboot: <code>get <device> tr064Command DeviceConfig:1 deviceconfig Reboot</code>
== Klingel- und Sprachausgabe per TR-064 ==
Das geht derzeit nicht, da entsprechende Kommandos per TR-064 nicht verfügbar sind. Da Telnet sukzessive abgestellt wird, sollten sich Interessenten per Feature-Request an AVM wenden, wie hier [http://forum.fhem.de/index.php/topic,38586.0.html] beschrieben.


== Links ==
== Links ==

Version vom 19. August 2015, 14:45 Uhr

FRITZBOX
Zweck / Funktion
Steuerung einer Fritz!Box über Fhem
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Support (Forum) FRITZ!Box
Modulname 72_FRITZBOX.pm
Ersteller tupol/Topos (Forum / Wiki)
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


Das Modul FRITZBOX ermöglicht die Steuerung einer AVM Fritz!Box durch Fhem. Dabei kann es sich sowohl um eine FritzBox handeln, auf der Fhem selbst läuft (lokaler Modus), als auch um eine entfernte (externe) FritzBox.

Voraussetzungen

Info green.pngBitte Einschränkungen des Moduls ab FRITZ!OS 6.25 und höher durch den Wegfall des Telnet-Zugangs und der webcm-Schnittstelle beachten (siehe dieses Forenthema)!


Um das Modul für den Zugriff auf eine externe FritzBox benutzen zu können, muss

  1. Telnet auf der entsprechenden FritzBox erlaubt/freigeschaltet sein (üblicherweise durch Eingabe von #96*7* an einem direkt an der entsprechenden FritzBox angeschlosssenen Telefon)
  2. Auf dem System, auf dem Fhem läuft (Server) muss Telnet installiert sein; auf einem Raspberry Pi z. B. mit dem Befehl
sudo apt-get install libnet-telnet-perl

Für einen (begrenzten) Remote-Zugang ohne Telnet müssen die Module JSON:XS, LWP und SOAP::Lite installiert sein; auf einem Raspberry Pi z. B. mit dem Befehl

sudo apt-get install libjson-perl libwww-perl libsoap-lite-perl libjson-xs-perl

Installation

Erste Schritte

Zur Erstinstallation reicht ein einfaches define FritzBox FRITZBOX, dieses Modul funktioniert lokal (FHEM auf Fritzbox) sowie per Fernzugriff(FHEM auf einem anderen Server im Netz, siehe nächsten Schritt).

HINWEIS: Wie inzwischen schon an vielen Stellen zu lesen, wird mit neueren Firmware-Versionen für die FritzBox (seit ca. 6.2x) der Telnet-Zugang immer weiter eingeschränkt. Der zukunftssicherste Weg zum Zugriff auf die Fritzbox ist daher der Zugriff TR-064 (siehe unten).

TR-064: Modul FRITZBOX für Zugriff auf einem externen Server einrichten

Für den Fernzugriff über TR-064 sind die folgenden Schritte nötig:

Fritzbox definieren:

define FritzBox FRITZBOX

Wenn das Login auf der Benutzeroberfläche der FritzBox mit User und Passwort (und nicht nur per Passwort) geschieht, den User konfigurieren:

attr Fritzbox boxUser Benutzername

Passwort konfigurieren:

set Fritzbox password Passwort - legt das zugehörige Passwort fest

TR-064 Kommandos erlauben:

attr Fritzbox allowTR064Command 1

Telnet: Modul FRITZBOX für Zugriff auf einem externen Server einrichten

Anlegen des Attributs telnetUser

Bei Fernzugriff über Telnet sind weitere Schritte nötig:

  1. Telnet auf der Fritzbox freischalten (Tastenkombination #96*7* am angeschlossenen Telefon (auch FritzFon)
  2. TelnetUser definieren (wie im Screenshot gezeigt)
  3. Passwort zum Benutzer auf der Fritzbox definieren
Passwort definieren

(bitte die Buttons set und attr bei der Definition der jeweiligen Einträge nicht vergessen)

Telnet: ...für die Profis

(die Telnet auf ihrer FritzBox vermutlich ohnehin längst aktiviert haben)

hier die Befehle für das Befehl-Eingabefeld:

define FritzBox FRITZBOX
attr Fritzbox telnetUser Benutzername - legt den Benutzer fest
set Fritzbox password Passwort - legt das zugehörige Passwort fest

Wer keinen User konfiguriert hat, kann das Feld "telnetUser" leer lassen.

mögliche Fehlermeldungen

Sollte schon bei define FritzBox FRITZBOX die Fehlermeldung kommen, dass dieses Modul nicht existiert, dann bitte prüfen, ob Fhem auf dem aktuellen Stand ist und ggf. aktualisieren.

Kommt jetzt bei der erneuten Definition die Fehlermeldung Error: Perl modul Net::Telnet is missing on this system bitte wie oben schon erwähnt den Befehl

sudo apt-get install libnet-telnet-perl

direkt per Telnet/SSH auf dem FHEM-Server ausführen und neu starten. Sollte alles geklappt haben, seht ihr nun eure Fritzbox und könnt diverse Einstellungen manuell vornehmen und/oder automatisch vornehmen lassen.

Anwendung

Define

Siehe commandref

Attribute

Siehe commandref

Status-Symbol

attr <device> devStateIcon .*on.*off:WLAN_on_gWLAN_off .*on.*on.*:WLAN_on_gWLAN_on WLAN..off.*:WLAN_off

Im Verzeichnis www/images/default müssen die passenden Dateien "WLAN_on_gWLAN_off.png", "WLAN_on_gWLAN_on.png" und "WLAN_off.png" liegen. Wenn die PNGs fehlen, können sie hier [1] heruntergeladen werden.

Anwendungsbeispiele

FRITZBOX Gerät auf der Fhem Oberfläche

Sollte alles geklappt haben, seht ihr nun unter "Unsortiert" den im nebenstehenden Screenshot gezeigten Eintrag für das "Gerät" (hier mit dem Icon "it_router").

TR-064

Die offizielle Programmier-Schnittstelle der Fritz!Box läuft über das Protokoll TR-064.

mit dem Attribute
attr <device> allowTR064Command 1
kann man den Befehl
get <device> tr064Command <service> <control> <action> [[parameterName1 parameterValue1] ...]
freischalten und damit auf diese Schnittstelle zugreifen.

AVM hat die Schnittstellenbeschreibung unter [2] veröffentlicht. Ein weitere Einstiegspunkt befindet sich auch auf der Box unter http://fritz.box:49000/tr64desc.xml

Folgende Service und Controls existieren (für den get-Befehl werden nur die fett formatierten Wörter benötigt)

serviceType controlURL XML Dokument bei AVM
urn:dslforum-org:service:DeviceInfo:1 /upnp/control/deviceinfo deviceinfoSCPD.xml deviceinfoSCPD.pdf
urn:dslforum-org:service:DeviceConfig:1 /upnp/control/deviceconfig deviceconfigSCPD.xml deviceconfigSCPD.pdf
urn:dslforum-org:service:Layer3Forwarding:1 /upnp/control/layer3forwarding layer3forwardingSCPD.xml layer3forwardingSCPD.pdf
urn:dslforum-org:service:LANConfigSecurity:1 /upnp/control/lanconfigsecurity lanconfigsecuritySCPD.xml lanconfigsecuritySCPD.pdf
urn:dslforum-org:service:ManagementServer:1 /upnp/control/mgmsrv mgmsrvSCPD.xml mgmsrvSCPD.pdf
urn:dslforum-org:service:Time:1 /upnp/control/time timeSCPD.xml timeSCPD.pdf
urn:dslforum-org:service:UserInterface:1 /upnp/control/userif userifSCPD.xml userifSCPD.pdf
urn:dslforum-org:service:X_VoIP:1 /upnp/control/x_voip x_voipSCPD.xml x_voipSCPD.pdf
urn:dslforum-org:service:X_AVM-DE_Storage:1 /upnp/control/x_storage x_storageSCPD.xml x_storageSCPD.pdf
urn:dslforum-org:service:X_AVM-DE_OnTel:1 /upnp/control/x_contact x_contactSCPD.xml x_contactSCPD.pdf
urn:dslforum-org:service:X_AVM-DE_WebDAVClient:1 /upnp/control/x_webdav x_webdavSCPD.xml x_webdavSCPD.pdf
urn:dslforum-org:service:X_AVM-DE_UPnP:1 /upnp/control/x_upnp x_upnpSCPD.xml x_upnp.pdf
urn:dslforum-org:service:X_AVM-DE_RemoteAccess:1 /upnp/control/x_remote x_remoteSCPD.xml x_remoteSCPD.pdf
urn:dslforum-org:service:X_AVM-DE_MyFritz:1 /upnp/control/x_myfritz x_myfritzSCPD.xml x_myfritzSCPD.pdf
urn:dslforum-org:service:X_AVM-DE_TAM:1 /upnp/control/x_tam x_tamSCPD.xml x_tam.pdf
urn:dslforum-org:service:X_AVM-DE_AppSetup:1 /upnp/control/x_appsetup x_homeautoSCPD.xml x_appsetupSCPD.pdf
urn:dslforum-org:service:X_AVM-DE_Homeauto:1 /upnp/control/x_homeauto x_homeautoSCPD.xml x_homeautoSCPD.pdf
urn:dslforum-org:service:WLANConfiguration:1 /upnp/control/wlanconfig1 wlanconfigSCPD.xml wlanconfigSCPD.pdf
urn:dslforum-org:service:WLANConfiguration:2 /upnp/control/wlanconfig2 wlanconfigSCPD.xml wlanconfigSCPD.pdf
urn:dslforum-org:service:WLANConfiguration:3 /upnp/control/wlanconfig3 wlanconfigSCPD.xml wlanconfigSCPD.pdf
urn:dslforum-org:service:Hosts:1 /upnp/control/hosts hostsSCPD.xml hostsSCPD.pdf
urn:dslforum-org:service:LANEthernetInterfaceConfig:1 /upnp/control/lanethernetifcfg lanifconfigSCPD.xml lanifconfigSCPD.pdf
urn:dslforum-org:service:LANHostConfigManagement:1 /upnp/control/lanhostconfigmgm lanhostconfigmgmSCPD.xml lanhostconfigmgmSCPD.pdf
urn:dslforum-org:service:WANCommonInterfaceConfig:1 /upnp/control/wancommonifconfig1 wancommonifconfigSCPD.xml wancommonifconfigSCPD.pdf
urn:dslforum-org:service:WANDSLInterfaceConfig:1 /upnp/control/wandslifconfig1 wandslifconfigSCPD.xml wandslifconfigSCPD.pdf
urn:dslforum-org:service:WANDSLLinkConfig:1 /upnp/control/wandsllinkconfig1 wandsllinkconfigSCPD.xml wandsllinkconfigSCPD.pdf
urn:dslforum-org:service:WANEthernetLinkConfig:1 /upnp/control/wanethlinkconfig1 wanethlinkconfigSCPD.xml wanethlinkconfigSCPD.pdf
urn:dslforum-org:service:WANPPPConnection:1 /upnp/control/wanpppconn1 wanpppconnSCPD.xml wanpppconnSCPD.pdf
urn:dslforum-org:service:WANIPConnection:1 /upnp/control/wanipconnection1 wanipconnSCPD.xml wanipconnSCPD.pdf

TR-064 Bespiele

  • Box Reboot: get <device> tr064Command DeviceConfig:1 deviceconfig Reboot

Klingel- und Sprachausgabe per TR-064

Das geht derzeit nicht, da entsprechende Kommandos per TR-064 nicht verfügbar sind. Da Telnet sukzessive abgestellt wird, sollten sich Interessenten per Feature-Request an AVM wenden, wie hier [3] beschrieben.

Links