FRITZBOX: Unterschied zwischen den Versionen
K (→Erste Schritte) |
K (Einheitliche Schreibweise Fritz*B*ox statt Fritz*b*ox im Code, kleinere Ergänzungen) |
||
Zeile 6: | Zeile 6: | ||
|ModOwner=tupol/Topos ([http://forum.fhem.de/index.php?action=profile;u=5432 Forum] / [[Benutzer Diskussion:Topos|Wiki]])}} | |ModOwner=tupol/Topos ([http://forum.fhem.de/index.php?action=profile;u=5432 Forum] / [[Benutzer Diskussion:Topos|Wiki]])}} | ||
Das Modul [[FRITZBOX]] ermöglicht die Steuerung einer [[AVM Fritz!Box]] durch Fhem. | Das Modul [[FRITZBOX]] ermöglicht die Steuerung einer [[AVM Fritz!Box]] und von AVM FRITZ!WLAN Repeatern durch Fhem. An Fritzboxen können sowohl Geräte abgefragt werden, auf denen FHEM selbst läuft (lokaler Modus), als auch um eine entfernte (externe) Geräte. | ||
== Voraussetzungen == | == Voraussetzungen == | ||
Zeile 30: | Zeile 30: | ||
==== TR-064: Modul FRITZBOX für Zugriff auf einem externen Server einrichten ==== | ==== 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: | Für den Fernzugriff über TR-064 auf eine oder mehrere Fritzboxen und/oder einen FRITZ!WLAN Repeater sind die folgenden Schritte nötig (für jedes Gerät): | ||
Fritzbox definieren: | Fritzbox definieren: | ||
Zeile 41: | Zeile 41: | ||
:<code>set FritzBox password ''Passwort'' </code> - legt das zugehörige Passwort fest | :<code>set FritzBox password ''Passwort'' </code> - legt das zugehörige Passwort fest | ||
TR-064 Kommandos erlauben: | Manuelle TR-064 Kommandos erlauben (die Abfrage per TR-064 funktioniert auch ohne dieses Attribut): | ||
:<code>attr FritzBox allowTR064Command 1</code> | :<code>attr FritzBox allowTR064Command 1</code> | ||
Wenn die Fritzbox nicht unter http://fritz.box erreichbar ist, IP setzen: | Wenn die Fritzbox nicht unter http://fritz.box erreichbar ist, IP setzen: | ||
:<code>attr | :<code>attr FritzBox fritzBoxIP 192.168.168.168</code> | ||
(192.168.168.168 natürlich durch die passende IP ersetzen...) Manchmal ist ein Neustart von FHEM erforderlich, damit die Fritzbox mit der veränderten IP gefunden wird. | (192.168.168.168 natürlich durch die passende IP ersetzen...) Manchmal ist ein Neustart von FHEM erforderlich, damit die Fritzbox mit der veränderten IP gefunden wird. | ||
Zeile 62: | Zeile 62: | ||
:<code>define FritzBox FRITZBOX</code> | :<code>define FritzBox FRITZBOX</code> | ||
:<code>attr | :<code>attr FritzBox telnetUser ''Benutzername'' </code> - legt den Benutzer fest | ||
:<code>set | :<code>set FritzBox password ''Passwort'' </code> - legt das zugehörige Passwort fest | ||
Wer keinen User konfiguriert hat, kann das Feld "telnetUser" leer lassen. | Wer keinen User konfiguriert hat, kann das Feld "telnetUser" leer lassen. | ||
Wer sicher gehen möchte, dass auch tatsächlich Telnet und nicht andere Zugriffe benutzt werden, sollte außerdem noch setzen: | |||
:<code>attr FritzBox forceTelnetConnection 1</code> | |||
=== mögliche Fehlermeldungen === | === mögliche Fehlermeldungen === | ||
Zeile 175: | Zeile 179: | ||
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. | 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. | ||
=== Anwesenheitserkennung per TR-064 === | |||
Siehe Links. | |||
== Links == | == Links == | ||
* {{Link2Forum|Topic=29725|LinkText=Forenthread}} zu diesem Modul | * {{Link2Forum|Topic=29725|LinkText=Forenthread}} zu diesem Modul | ||
* {{Link2Forum|Topic=39422|LinkText=Forenthread}} zur Anwesenheitserkennung mit diesem Modul | |||
[[Kategorie:FritzBox]] | [[Kategorie:FritzBox]] | ||
<!-- (Modulkategorie wird automatisch gesetzt) --> | <!-- (Modulkategorie wird automatisch gesetzt) --> |
Version vom 21. August 2015, 07:40 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 und von AVM FRITZ!WLAN Repeatern durch Fhem. An Fritzboxen können sowohl Geräte abgefragt werden, auf denen FHEM selbst läuft (lokaler Modus), als auch um eine entfernte (externe) Geräte.
Voraussetzungen
Remote-Zugang
Für den Remote-Zugang müssen die Module JSON:XS, LWP und SOAP::Lite installiert sein; auf einem Raspberry Pi oder unter Ubuntu z. B. mit dem Befehl
sudo apt-get install libjson-perl libwww-perl libsoap-lite-perl libjson-xs-perl
Teilweise ist derzeit zusätzlich die Installation der telnet Libraries erforderlich, auch wenn der Telnet-Zugang nicht genutzt werden soll. Siehe dazu den nachfolgenden Abschnitt.
Telnet
Das Modul basierte ursprünglich auf dem Zugriff auf die Fritzbox per Telnet. Ab FRITZ!OS 6.2x baut AVM den abgekündigten Telnet-Zugang sowie die webcm-Schnittstelle sukzessive zurück bzw. hat dies, je nach Firmware, schon ganz abgestellt (siehe dieses Forenthema). Der zukunftssichere Zugriff auf die Fritzbox sollte also per TR-064 erfolgen. Der Vollständigkeit halber und für ältere Firmwareversionen:
- Wer den Zugang per Telnet (noch) nutzen (kann und) möchte, muss dies zuerst freischalten. Üblicherweise durch Eingabe von #96*7* an einem direkt an der entsprechenden FritzBox angeschlosssenen Telefon
- Auf dem System, auf dem Fhem läuft (Server) muss Telnet installiert sein; auf einem Raspberry Pi und unter Ubuntu z. B. mit dem Befehl
sudo apt-get install libnet-telnet-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).
TR-064: Modul FRITZBOX für Zugriff auf einem externen Server einrichten
Für den Fernzugriff über TR-064 auf eine oder mehrere Fritzboxen und/oder einen FRITZ!WLAN Repeater sind die folgenden Schritte nötig (für jedes Gerät):
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
Manuelle TR-064 Kommandos erlauben (die Abfrage per TR-064 funktioniert auch ohne dieses Attribut):
attr FritzBox allowTR064Command 1
Wenn die Fritzbox nicht unter http://fritz.box erreichbar ist, IP setzen:
attr FritzBox fritzBoxIP 192.168.168.168
(192.168.168.168 natürlich durch die passende IP ersetzen...) Manchmal ist ein Neustart von FHEM erforderlich, damit die Fritzbox mit der veränderten IP gefunden wird.
Telnet: Modul FRITZBOX für Zugriff auf einem externen Server einrichten
Bei Fernzugriff über Telnet sind weitere Schritte nötig:
- Telnet auf der Fritzbox freischalten (Tastenkombination #96*7* am angeschlossenen Telefon (auch FritzFon)
- TelnetUser definieren (wie im Screenshot gezeigt)
- Passwort zum Benutzer auf der Fritzbox definieren
(bitte die Buttons set und attr bei der Definition der jeweiligen Einträge nicht vergessen)
Wer stattdessen lieber das Befehl-Eingabefeld verwendet:
define FritzBox FRITZBOX
attr FritzBox telnetUser Benutzername
- legt den Benutzer festset FritzBox password Passwort
- legt das zugehörige Passwort fest
Wer keinen User konfiguriert hat, kann das Feld "telnetUser" leer lassen.
Wer sicher gehen möchte, dass auch tatsächlich Telnet und nicht andere Zugriffe benutzt werden, sollte außerdem noch setzen:
attr FritzBox forceTelnetConnection 1
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
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 [1] 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 |
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 [2] heruntergeladen werden.
Anwendungsbeispiele
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 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.
Anwesenheitserkennung per TR-064
Siehe Links.
Links
- Forenthread zu diesem Modul
- Forenthread zur Anwesenheitserkennung mit diesem Modul