Zum Ende der Metadaten springen
Zum Anfang der Metadaten
Autor
Logo

Status

STABLE

Version1.0.0
Downloadhttps://github.com/svethi/Loxberry-Plugin-Fritz.Lox/archive/fritzlox-1.0.0.zip
Kompatibilität

LB 0.2.3LB 1.0

Zweck

Das Fritz.Lox Plugin bietet die Möglichkeit einen Callmonitor sowie controller services der AVM-Fritzbox im Loxone MiniServer zur Verfügung zu stellen.

 Version History...

Version 0.1.0

  • Alpha-Status: Es wird der erste konfigurierte MiniServer verwendet

Version 0.2.5

  • Stableversion
  • Multi-MiniServer Support hinzugefügt

Version 0.3.4

  • Option zur Rufnummerübesetzung über das Telefonbuch der Fritzbox hinzugefügt

Version 0.4.0

  • Fehlerbeseitigung: Bei einem anonymen Anruf wurde die Telefonnummer des vorherigen Anrufers nicht zurück gesetzt
  • Fehlerbeseitigung: Die FritzApp stellt bei mir eine Raute ans Ende der Nummer was die Befehlserkennung abbrechen lässt. Rauten werden nun entfernt
  • Fehlerbeseitigung: Bei abgehenden Anrufen wurde beim Verbindungsaufbau der angerufene zusätzlich als Anrufer übergeben
  • Helperservice WLAN aktivieren/deaktivieren hinzugefügt

Version 0.5.0

  • Erweiterung zum Schalten von DECT Aktoren sowie Abfrage der Informationen

Version 0.5.1

  • Bugfix - blanker Bildschirm bei Öffnen der Pluginseite
  • erweitertes Errorhandling in der SOAP-Kommunikation

Version 0.5.2

  • libjson-perl in die Installation eingefügt

Version 0.5.3

  • Verbesserung der Einrichtungshilfe in Bezug auf die User und Passwort Benutzung
  • vorerst deutsches Plugin-Interface in die englische Version eingebunden

Version 0.5.4

  • bei anonymen Anrufen wird nun 'anonym' als Anrufer übergeben, damit der MiniServer den vorherigen Anrufer überschreibt

Version 0.5.5

  • Abruf der DSL-Verbindungsinformation hinzugefügt

Version 0.5.6

  • Abruf der öffentlichen IP-Adresse (Danke an AlexP für die Erweiterung)

Version 0.5.7

  • Das Modul php-soap zur Installation hinzugefügt

Version 0.5.8

  • Anpassungen an jQuery des LoxBerry V1

Version 0.5.9

  • Abfragen des WLAN Status hinzugefügt (hinzugefügt von TorstenF vom Loxforum)
  • Das ist die letzte Version die den Loxberry < 1 unterstützen wird

Version 1.0.0

  • Erste Version die nur den LoxBerry 1.2.3 und höher unterstützt
  • Spanisch hinzugefügt (Danke @madito für die Übersetzung; Muchas gracias @madito por la traducción al español)
  • Logverhalten an LB 1 angepasst und erweitert
  • Funktionen zur ermitteln der notwendigen IP Adressen auf LoxBerry Funktionen umgestellt (example.com/google.com Problem)
  • Auto Update Funktionalität hinzugefügt

Inhalt


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.

Download

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.

  1. Senden der Textdaten (Caller und Recipient)
  2. Senden der UDPDaten (ConnId, Duration, Status)
  3. 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.

19 Kommentare

  1. Hallo,

    ich bekomme die Ausgabe der Telefonbucheinträge hin. Es wird nur die Rufnummer übertragen. Was mache ich hier falsch?

     

    Gruß Lars

  2. Tolles Plugin! Leider werden Fritzbox Passwörter mit Sonderzeichen am Anfang nicht richtig geparsed. Einfach mal in der Weboberfläche Passwort "!asdffdk" eingeben und dann im fbhelper oben ein echo $FBPass machen dann sieht man es gleich. Ist nur ein kleiner Bug aber wohl der Behebung wert (Zwinkern)

    Vielen Dank für das tolle Plugin!

    1. Hatte das gleiche Problem - bei mir war ein Ausrufezeichen am Ende des Passworts und schon parst er die Konfigurationspasswort-Datei nicht mehr (leeres Array).

      Wenn die Werte im Konfigfile in Anführungszeichen gesetzt werden geht es problemlos auch mit Sonderzeichen - vielleicht wäre das was für's nächste Update...

      Ansonsten tolles Plugin - vielen Dank dafür!

    2. Hi Leute,

      ich habe das hier nicht gelesen, da ich hier nie vorbei schaue. Daher sagte ich auch, dass Fehler im Forum gemeldet werden sollen.

      Das muss ich mir ansehen. Das Speichern der Variablen übernehmen fertige Module. Mal sehen, ob man denen das Beibringen kann.

  3. Jörg sagt:

    Hi Sven,
    vielen Dank für die Einbindung meines Feature-Wunsches "DSL Informationen abrufen". Funktioniert perfekt.

    Bzgl. deines Hinweises
    "dass die Gesamtwerte zu groß für die interne Verarbeitung im Miniserver sein können. Bei 4.294.967.296 ist hier Schluss."
    kann ich nur sagen, dass ich gerade einen größeren Wert (160.884.000.626 bei "NewTotalBytesReceived") ohne Probleme empfangen konnte.

    Sofern es doch irgendwo eine Grenze gibt: Könntest du den Wert evtl. zusätzlich noch formatieren (z.B. NewTotalGigaBytesReceived, also /1073741824) und in der php-Datei mit ausgeben?

    Grüße
    Jörg

     

    PS: Vielen vielen Dank nochmal für das Plugin und das tolle Feature! Das wollte ich schon immer haben!

  4. Jörg sagt:

    Hier noch ein Screenshot, wie es in der App aussieht.

    1. Frank Rimpf sagt:

      Hallo Jörg,

      kannst du den Screenshot mal aus der Config zeigen? Bei mir erhöhen sich kontinuierlich die GB-Werte auch wenn kaum Traffic ist.

      Gruß

      Frank

    2. Entschuldige die blöde Frage: aber wie bekommt man die 2-zeilige Darstellung in Loxone hin? Danke Dir!

      1. Jörg sagt:

        Hi Markus,
        ich nutze dazu einfach das Element "Verbrauchszähler".

        Grüße
        Jörg 

  5. Jörg, das ist ja interessant. Mal sehen ob man herausfinden kann, ob Loxone die Variablen vergrößert hat, oder ob das nur in Deinem Fall so ist.

    Frank Rimpf, Du hast da in den Einstellungen sicher angegeben, dass die Werte dazuaddiert werden sollen. Es kommen ja aber fertige Summen, also muss das ausgeschaltet werden.

    1. Frank Rimpf sagt:

      Hm, so ganz erschließt sich das mir noch nicht. Habe den "NewTotalBytesReceived] => \v" auf Eingang E im Verbrauchszähler und bei Absolutwert den Haken gesetzt.Vorher teile ich noch zweimal durch 1024.

      Der Gesmtverbrauch erhöht sich nun bei einem Download im normalen Bereich nur bleibt die obere Anzeige im Verbrauchszähler bei 0.

      Wie muss ich denn was anschließen, damit es so aussieht wie im Screenshot?

       

      1. Um den aktuellen Traffic korrekt am Verbrauchszähler zu geben vorher den Wert durch einen Formelbaustein jagen.

        Die Formel lautet:   (I1/1000000)*8

        Danach erhält man den Traffic als Mbit/s. Der Wert wird an 'P'gehangen.


        Um die Gesamte Menge Daten an den Verbrauchszähler zu übergeben vorher den Wert ebenfalls durch einen Formebaustein jagen. 

        Die Formel lautet: I1/1000000000

        Danach erhält man die gesamte Datenmenge als GB. Der Wert an 'E' gehangen.


        Wichtig das 'A' muss auf 'ein' stehen.

        1. .:Chris:. sagt:

          Hi, könntest du zu der gezeigten Visu bitte mal die Config posten bzw. im Wiki ergänzen. Danke

  6. Das ist der Leistungseingang. Da kannst Du entweder die aktuelle Datenrate oder die DSL Datenrate ranhängen

  7. Hallo 

     

    Kann mir leider nicht die Beispielkonfig runterladen.

     

    Kann mir wer behilflich sein DANKESCHÖN.

    lg

     

    Philipp

    1. Guy Mertens sagt:

      Hallo, konnte ich bitte die Beispieldatei auch herunterladen?

      Mfg

      Guy

  8. Danke für das Tolle Plugin!

    Das abfragen der DSL Informationen funktioniert bei mir Super, aber leider nicht das senden per UDP.

    Wenn ich einen Port eingetragen habe und senden auf ja stelle, sieht es erst einmal gut aus. Klicke ich dann auf speichern ist es automatisch wieder auf nein und das Feld für den Port ist wieder leer.

    Das ganze auf Loxberry 1.0.0

    Danke im vorraus,

    Benni


  9. Danke für das Update. Ich habe jetzt alles auf dem Loxberry 1.0.3.2 installiert. Hier funktioneren leider die Abfragen für DSL-Informatione und die öffentliche IP nicht mehr. Ist heir was bekannt? Der Anrufmonitor funktioniert weiterhin einwandfrei.


    Danke im Voraus.

    Gruß Lars

  10. Thomas sagt:

    Hallo zusammen,

    wie ist denn die Befehlserkennung für die öffentliche IP?
    Hab ich die irgendwo übersehen?