Metainformationen zur Seite
Plugin-Daten | |
---|---|
Autor | Sven Thierfelder |
Logo | |
Status | STABLE |
Version | 1.2.1 |
Min. LB Version | 1.2 |
Release Download | https://github.com/svethi/Loxberry-Plugin-Fritz.Lox/archive/refs/tags/fritzlox-1.2.1.zip |
Beschreibung | Das Fritz.Lox Plugin bietet die Möglichkeit einen Callmonitor sowie controller services der AVM-Fritzbox im Loxone MiniServer zur Verfügung zu stellen. |
Sprachen | EN, DE, ES |
Diskussion | https://www.loxforum.com/forum/projektforen/loxberry/plugins/68376-loxberry-fritz-lox-plugin-verf%C3%BCgbar |
Fritz.Lox
Konfigurationsoptionen
- Fritzbox-IP: Die IP der Fritzbox. Ist die Fritzbox der verwendete Router, wird diese automatisch erkannt.
- Fritzbox-Login: Loginname der Fritzbox wenn die Fritzbox so eingestellt wurde, dass zur Anmeldung auch ein Username notwendig ist
- Fritzbox-Passwort: Passwort des Fritzboxusers, der Zugriff auf das Telefonbuch hat
- FB Telefonbuch verwenden: Ob das Fritzboxtelefonbuch zur Übersetzung der Telefonnummern genutzt werden soll (wird nur aktiviert, wenn der angegebene Benutzer Zugriff auf das Telefonbuch hat)
- MiniServer: Auswahl eines vorkonfigurierten MiniServer.
- MiniServer UDP-Port: Der UDP-Port an den der Callmonitor die UDP-Daten an den MiniServer sendet.
- Daten an diesen MiniServer senden: Sollen die Callmonitor-Daten an diesen MiniServer gesendet werden?
Werden Daten zu einem MiniServer geändert, wird der "Angaben speichern"-Button aktiviert. Sollen die Änderungen verworfen werden, muss nur an anderer MiniServer ausgewählt oder die Seite verlassen werden. Das Speichern der Angaben erfolgt stets nur für den ausgewählten MiniServer.
Achtung: Es wurde festgestellt, dass der MiniServer bestimmte Port blockiert. Diese können nicht als Empfangsport genutzt werden. Leider wird man von der Konfig hier nicht darüber informiert. So geht z.B. in der Version 8.1.11.11 der Port 7777 nicht als UDP-Empfangsport. Sollten also an einem gewählten Port keine Informationen ankommen (UDP-Monitor in der Konfig), einfach andere Ports ausprobieren.
Einrichtungshilfe
DSL Informationen abrufen
Der hier enthaltene Link wird bei einem HTTP-Eingang in der Loxone-Config als URL angegeben.
Als Rückgabe erhält man 2 Arrays mit den gewünschten Information zu Verbindungsgeschwindigkeit der DSL-Leitung sowie der aktuellen Übertragungsdaten.
Die Rückgabe könnte in etwa so aussehen:
Array
(
[NewWANAccessType] ⇒ DSL
[NewLayer1UpstreamMaxBitRate] ⇒ 10047000
[NewLayer1DownstreamMaxBitRate] ⇒ 51392000
[NewPhysicalLinkStatus] ⇒ Up
)
Array
(
[NewByteSendRate] ⇒ 1855
[NewByteReceiveRate] ⇒ 1556
[NewPacketSendRate] ⇒ 0
[NewPacketReceiveRate] ⇒ 0
[NewTotalBytesSent] ⇒ 797936112
[NewTotalBytesReceived] ⇒ 2067940879
[NewAutoDisconnectTime] ⇒ 0
[NewIdleDisconnectTime] ⇒ 0
[NewDNSServer1] ⇒ 217.237.149.142
[NewDNSServer2] ⇒ 217.237.150.205
[NewVoipDNSServer1] ⇒ 217.237.149.142
[NewVoipDNSServer2] ⇒ 217.237.150.205
[NewUpnpControlEnabled] ⇒ 0
[NewRoutedBridgedModeBoth] ⇒ 1
)
Über die Befehlserkennung können dann z.B. folgende Werte ausgelesen werden.
- Uploadgeschwindigkeit der DSL-Leitung: NewLayer1UpstreamMaxBitRate] ⇒ \v
- Downloadgeschwindigkeit der DSL-Leitung: NewLayer1DownstreamMaxBitRate] ⇒ \v
- gesamte gesendete Bytes: NewTotalBytesSent] ⇒ \v
- gesamte empfangene Bytes: NewTotalBytesReceived] ⇒ \v
Bei diesen Angaben handelt es sich im Byteangaben. Diese können bei Belieben durch 1024 dividiert werden um zu kB → MB zu kommen.
Zu beachten ist, dass die Gesamtwerte zu groß für die interne Verarbeitung im Miniserver sein können. Bei 4.294.967.296 ist hier Schluss.
Wlan aktivieren/deaktivieren
Hier findet man Einstellungsbeispiele für virtuelle Ausgänge um vom MiniServer aus das WLAN zu aktivieren oder deaktivieren.
Um diese Funktion nutzen zu können ist ein Login für die Fritzbox notwendig welche die Berechtigung hat die WLAN Einstellungen zu ändern. Zum Einen kann das Adminpasswort verwendet werden, es ist hier nicht nötig einen Benutzernamen anzugeben. Zum Anderen kann ein spezieller User angelegt werden. Dies kann unter System→FRITZ!Box-Benutzer erledigt werden. Weiterhin muss der Zugriff für Anwendungen freigegeben sein. Dies kann man unter Heimnetz→Heimnetzübersicht und dann im rechten Fenster den Register Netzwerkeinstellungen. Hier müssen die entsprechenden Zugriffe freigegeben werden.
Ist diese geschehen, legt man in der Loxone-Config einen virtuellen Ausgang an. Die Adresse die hier anzugeben ist, ist http://<IP-des-Loxberry> (kann aus der Einrichtungshilfe entnommen werden). Damit nicht jeder über den Loxberry das WLAN oder sonstiges schalten kann, muss auch der Loxberry Benutzer und das dazugehörige Passwort eingegeben werden. In diesem virtuellen Ausgang wird dann ein virtueller Ausgang Befehl angelegt. Die Befehle die hier einzutragen sind, können aus der Einrichtungshilfe entnommen werden. Die Befehle aus der Einrichtungshilfe enden mit WLAN=. Hier fehlt am Ende noch eine Zahl von 1-3. Diese Zahl stellt das WLAN dar, welches geändert werden soll. Die Zahlen stehen für:
- 1 = Das private 2,4GHz WLAN
- 2 = Das private 5GHz WLAN wenn die Fritzbox darüber verfügt, oder das Gäste-WLAN
- 3 = Das Gäste-WLAN wenn die Fritzbox über ein 5GHz WLAN verfügt
Das Ende eine Befehls sieht dann z.B. so aus ….&WLAN=1
DECT Aktoren schalten
Hier werden Befehle aufgelistet, die in der Config verwendet werden können um vom MiniServer aus Aktoren zu schalten oder Informationen dazu abzufragen.
Das Ganze funktioniert analog zum aktivieren/deaktivieren des WLAN.
Im Anschluss sind dann die Links zum An-und Abschalten des Aktoren. Die Abfrage der Informationen funktioniert etwas anders. Hier sollen ja auch die Rückgabewerte verarbeitet werden, als benutzt man dafür einen virtuellen HTTP-Eingang und verwendet die hierfür angegebene URL. Auch hier wird der Loxberry-Benutzer mit seinem Passwort benötigt. Als Rückgabe kommt dann eine Ausgabe wie Folgende:
Array ( [NewDeviceId] => 16 [NewFunctionBitMask] => 896 [NewFirmwareVersion] => 03.59 [NewManufacturer] => AVM [NewProductName] => FRITZ!DECT 200 [NewDeviceName] => FRITZ!DECT 200 #1 [NewPresent] => CONNECTED [NewMultimeterIsEnabled] => ENABLED [NewMultimeterIsValid] => VALID [NewMultimeterPower] => 0 [NewMultimeterEnergy] => 17 [NewTemperatureIsEnabled] => ENABLED [NewTemperatureIsValid] => VALID [NewTemperatureCelsius] => 220 [NewTemperatureOffset] => 0 [NewSwitchIsEnabled] => ENABLED [NewSwitchIsValid] => VALID [NewSwitchState] => OFF [NewSwitchMode] => MANUAL [NewSwitchLock] => 0 [NewHkrIsEnabled] => DISABLED [NewHkrIsValid] => INVALID [NewHkrIsTemperature] => 0 [NewHkrSetVentilStatus] => CLOSED [NewHkrSetTemperature] => 0 [NewHkrReduceVentilStatus] => CLOSED [NewHkrReduceTemperature] => 0 [NewHkrComfortVentilStatus] => CLOSED [NewHkrComfortTemperature] => 0 )
Über die Befehlserkennung können dann z.B. folgende Werte ausgelesen werden.
- die aktuelle Temperatur: NewTemperatureCelsius] ⇒ \v
- die aktuelle Leistung: NewMultimeterPower] ⇒ \v
- der Verbrauch: NewMultimeterEnergy] ⇒ \v
- der Schaltstatus: NewSwitchState] ⇒ O\1 (der Ausgabewert ist hier der ASCII-Code von N (78) für ON oder F (70) für OFF)
Die Werte für Temperatur, Leistung und Verbrauch sind durch 10 zu teilen.
Sollten keine Aktoren vorhanden sein aber Informationen von anderen DECT Geräten abgefragt werden, muss sich die entsprechende URL selbst zusammengebaut werden. Ein Beispiel hierfür wäre:
http://loxberry:DEIN-loxberry-PASSWORT@loxberry/admin/plugins/fritzlox/FBHelper.php?cmd=DECTgetInfo&DECTAIN=DEINE+AIN
Das Leerzeichen in der AIN ist wie im Beispiel durch ein + zu ersetzen.
DECT Modul auslesen
Mit dem Befehl
DECT Ventilantriebe
Mit der Version 1.1.2 wurde die Steuerung der Ventilantriebe hinzugefügt. Hiermit ist es möglich die Solltemperatur des Antriebes zu setzen. Wie auch bei den DECT Aktoren, werden auch hier die Links für die Config im Plugin-GUI bereitgestellt.
Achtung! Das Plugin ist NICHT schneller als die Fritzbox selbst. Es kann auch hier bis zu 15min dauern bis der Wert am Antrieb übernommen wird.
MQTT publishing
In Version 1.1.2 wurde MQTT publishing für den callmonitor hinzugefügt. Für MQTT muss das MQTT-Gateway von Christian Fenzl installiert sein. Ist es installiert muss nichts eingestellt werden. Es sucht sich die Einstellungen selbst und verwendet es. Die Topics sind folgend aufgebaut fritzlox/callmonitor/<Leitung/ConnID>/… als Werte werden event (ring, call, connect, disconnect), caller, recipient, duration übergeben.
Download
- Das Plugin ist hier erhältlich: https://github.com/svethi/Loxberry-Plugin-Fritz.Lox/archive/fritzlox-1.1.2.zip
- (Letzte Version für den LB < 1: https://github.com/svethi/Loxberry-Plugin-Fritz.Lox/archive/fritzlox-0.5.9.zip)
Funktion des Plugin
Um den Callmonitor nutzen zu können, ist es notwendig den Callmonitor der Fritzbox zu aktivieren. Hierfür muss man an einem angeschlossenen analogen Telefon #96*5* wählen und danach wieder auflegen. Abgeschaltet wird er wieder über #96*4*.
Ist er aktiviert und der Loxberry neu gestartet, werden die Informationen zu ankommenden und abgehenden Anrufen an die konfigurierten MiniServer weitergereicht. Dies geschieht auf 2 unterschiedlichen Wegen. Ein Teil der Informationen, reine Zahlendaten, werden per UDP an den MiniServer geschickt. Die Telefonnummern können z.B. führenden Nullen enthalten und sind daher keine reinen Zahlenwerte. Diese lassen sich nicht über den UDP-Befehlserkenner einlesen. Daher werden diese direkt an den vordefinierte virtuelle Texteingänge des MiniServer "gepusht". Sind alle Daten an den MiniServer übergeben, wird noch ein kurzer Impuls geschickt, damit eine Auswerten innerhalb der Config erfolgen kann wenn alle Daten auch vorhanden sind.
Ebenso ist es möglich das WLAN über Web-Requests an-und abzuschalten.
Einrichtung in der Loxone Configsoftware
Das Plugin wurde für die Verwendung mit dem virtuellen UDP-Eingängen und virtuellen Texteingängen entwickelt. Detailierte Informationen hierzu gibt es in der Loxone Dokumentation.
Im virtuellen UDP Eingang wird dann bei Sendeadresse die IP-Adresse des Loxberry angegeben und beim UDP-Empfangsport der Port, der im Plugin für diesen MiniServer angegeben wurde. In diesem virtuellen UDP-Eingang sind dann 3 Werte relevant. Diese werden über virtuelle UDP-Eingang Befehle eingelesen. Diese sind:
- ConnectionId (Line): ist die Nummer der Leitung über die die entsprechende Verbindung läuft. Befehlserkennung: \s17;callmonitor;\v
- Duration (Dauer): ist die Dauer der Verbindung die am Ende der Verbindung übergeben wird. Befehlserkennung: \s17;callmonitor;\#;\#;\#;\w;\#;\#;\v
- Satus: ist die Art der Information: 0-Leitung frei; 1-ankommender Anruf; 2-Verbindung wurde aufgebaut; 3-abgehender Anruf; 4-Leitung wieder frei: Befehlserkennung: \s17;callmonitor;\#;\#;\#;\w;\#;\v
- Caller; Recipient; Extension werden aus dem CallMonitor der Fritzbox weitergegeben sind aber nicht mehr relevant.
Zu beachten ist, dass es ja durchaus sein kann, das 2 gleichzeitige Gespräche geführt werden und daher bei allen Informationen die dazugehörige Leitung ausgewertet werden muss, damit die weiteren Daten auch für die entsprechende Verbindung angezeigt werden.
Wie bereits oben beschrieben ist es in der Loxone Config nicht so einfach mit Texten umzugehen. Aus diesem Grund werden die Telefonnummern nunmehr direkt in festdefinierte virtuelle Texteingänge geschickt. Diese sind nach dem Schema:
- CMCallerX
- CMRecX
zu benennen. Das X steht hierbei für eine Leitungsnummer (0-4). Die anzulegenden virtuellen Texteingänge für die 1.Leitung wären also CMCaller1 und CMRec1. Das Ganze dann für so viele Leitungen wie überwacht werden sollen. Wenn ich es richtig in Erinnerung habe kann die Fritzbox gleichzeitig 2 Festleitungen und 3 Sip-Leitungen gleichzeitig verwalten. Damit müssten in Summe 10 virtuelle Texteingänge angelegt werden. Da ich nicht über so viele Leitungen verfüge, habe ich den Callmonitor mal für 4 Leitungen bei mir angelegt. Als letztes kommt noch ein virtueller Eingang:
- CMImp
als Digitaleingang hinzu. Dieser wird verwendet um Timingprobleme zu kompensieren. Die Reihenfolge bei Senden der Informationen sieht so aus.
- Senden der Textdaten (Caller und Recipient)
- Senden der UDPDaten (ConnId, Duration, Status)
- Senden des Impulses CMImp
Somit ist stets klar, dass bei einem CMImp alle Werte aktualisiert sind und verarbeitet werden können. Nach dem Ende der Verbindung werden Caller und Recipient nicht zurückgesetzt und bleiben bis zum nächsten Gespräch und/oder MiniServer-Neustart bestehen.
Im Diskussionsthema im Loxforum habe ich eine Beispielkonfiguration hinterlegt, die einen Beispiel-Callmonitor mit Visualisierung zeigt. In diesem müssen natürlich die IP-Adresse und der UDP-Empfangsport entsprechend angepasst werden.
Achtung: Seit Version 7 der LoxoneConfig. Funktioniert der Tracker nicht mehr. Dieses speichert keine Texte mehr und listet daher nur noch 1 auf.
29.01.2017 - Im Forum ist nun eine neue Beispielkonfig vorhanden, die einen Workarroud bietet. Nicht schick, aber funktioniert. Danke nochmals an Wolfgang vom Loxone-Support für diesen WA
Fehler melden
Fehlerberichte bitte direkt im Loxforum melden.