Integration FritzBox in das openHAB-System
Neben der Präsenzsteuerung über die FritzBox bzw. WLAN soll natürlich auch die Hauptfunktion – Telefonie – integriert werden. Ziel soll es sein in openHAB die aktuell eingehenden Anrufe zu visualisieren und über das Regelwerk entsprechend darauf zu reagieren.
Was würdet Ihr noch an Telefonie-Funktionen und Einstellungen einer FritzBox-Telefonanlage abfragen? Welche Ideen habt Ihr dazu?
Aufbau der Items
Aus der Dokumentation habe ich die Items wie folgt übernommen (nur die WAN-IP funktioniert nicht – wahrscheinlich liegt das aber an meinem Glasfaser-Provider bzw. der eigenen Firmware):
String fboxName "FBox Model [%s]" {fritzboxtr064="modelName"}
//String fboxWanIP "FBox WAN IP [%s]" {fritzboxtr064="wanip"}
Switch fboxWifi24 "2,4GHz Wifi" {fritzboxtr064="wifi24Switch"}
Switch fboxWifi50 "5,0GHz Wifi" {fritzboxtr064="wifi50Switch"}
Switch fboxGuestWifi "Guest Wifi" {fritzboxtr064="wifiGuestSwitch"}
// only when using call monitor
Switch fboxRinging "Phone ringing [%s]" {fritzboxtr064="callmonitor_ringing" }
Switch fboxRinging_Out "Phone ringing [%s]" {fritzboxtr064="callmonitor_outgoing" }
Call fboxIncomingCall "Incoming call: [%1$s to %2$s]" {fritzboxtr064="callmonitor_ringing" }
Call fboxOutgoingCall "Outgoing call: [%1$s to %2$s]" {fritzboxtr064="callmonitor_outgoing" }
// resolve numbers to names according phonebook
Call fboxIncomingCallResolved "Incoming call: [%1$s to %2$s]" {fritzboxtr064="callmonitor_ringing:resolveName" }
// Telephone answering machine (TAM) items
// Number after tamSwitch is ID of configured TAM, start with 0
Switch fboxTAM0Switch "Answering machine ID 0" {fritzboxtr064="tamSwitch:0"}
Number fboxTAM0NewMsg "New Messages TAM 0 [%s]" {fritzboxtr064="tamNewMessages:0"}
// Missed calls: specify the number of last days which should be searched for missed calls
Number fboxMissedCalls "Missed Calls [%s]" {fritzboxtr064="missedCallsInDays:5"}Aufbau der Sitemap
Aufbau der Regel
Die Regel für ein eingehendes Telefonat ist auch sehr einfach gehalten (hier werde ich ggf. als Aktion mir eine E-Mail oder Nachricht auf das Handy schicken lassen):
rule "Phone is ringing"
when
// fboxRinging is a switch item which switches to ON if call is detected
Item fboxRinging changed to ON
then
logInfo("Anrufermeldung", "Generating caller name message...")
// fboxIncoming call receives numbers/name of incoming call
val CallType incCall = fboxIncomingCall.state as CallType
var callerName = incCall.destNum //destNum is external number OR resolved Name if no phonebook entry exists
// do something with callerName
logInfo("fRITZbOX","Externe Nummer: " + callerName)
end
Aufbau der Sitemap
Die Visualisierung sollte nun so aussehen (ich habe eine Unterteilung für technische Einstellungen und alles zur Telefonie eingefügt):

Umgesetzt wurde das in der Konfiguration wie folg:
Text label="FritzBox" icon="alarm" {
Frame label="Einstellungen" {
Text item=fboxName label="Modell"
Switch item=fboxWifi24 label="WLAN 2,4 GHz"
Switch item=fboxWifi50 label="WLAN 5,0 GHz"
Switch item=fboxGuestWifi label="Gäste WLAN"
}
Frame label="Anrufe" {
Switch item=fboxRinging label="Eingehendes Telefonat"
Switch item=fboxRinging_Out label="Ausgehendes Telefonat"
Text item=fboxIncomingCall label="Eingehendes Telefonat"
Text item=fboxOutgoingCall label="Ausgehendes Telefonat"
Text item=fboxIncomingCallResolved label="Eingehendes Telefonat (Name)"
Switch item=fboxTAM0Switch label="Anrufbeantworter"
Text item=fboxTAM0NewMsg label="Anrufbeantworter (neue Nachrichten)" icon="text"
Text item=fboxMissedCalls label="Verpasste Anrufe" icon="text"
}
}

