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" } }