Ups, da war die Musik wohl mal wieder zu laut und man hat den Anruf verpasst. Das sollte doch eigentlich mit einem SmartHome lösbar sein. Für viele bedeutet SmartHome ja einfach toll Lichter und sonstige Dinge vom Handy an und ausknipsen können, für mich ist der Fokus aber ein anderer. Die Automatisierung soll automatisch für mehr Komfort sorgen ohne, dass ich etwas dafür tun muss. So z.B. auch meine Steuerung des Frühstücksradios. Genauso soll hier TV und Sonos im Bedarfsfall still sein, wenn ein Anruf kommt. Die Erkennung läuft über die FRITZ!Box gemeinsam mit dem TR064 Binding. Dazu braucht man ein Item welches das Klingeln abfragt:
Switch FBX_ringing "Anruf eingehend [%s]" {fritzboxtr064="callmonitor_ringing" }
Für die Sonos und das Samsung TV habe ich jeweils ein Item zum Muten angelegt
Switch SON_mute "Sonos Mute" {channel="sonos:PLAY1:RINCON_XXXXXXXXXXX:mute"} Switch SAM_mute "TV Mute" {channel="samsungtv:tv:XXXXXXXXXXXXXXXXX:mute"}
Und hier die einfache Regel dazu. Für mich war nur wichtig, dass das Muten nur rückgängig gemacht wird, wenn es auch aus der Regel kommt, deshalb merke ich mir das in den Variablen sonos und tv.
var sonos = 0 var tv = 0 rule "Anruf an" when Item FBX_ringing changed from OFF to ON then if ( SON_status.state == "PLAYING") { logWarn("Anruf", "Sonos Mute ON") sendCommand(SON_mute, ON) sonos = 1 } if ( SAM_on.state == ON && SAM_mute.state == OFF) { logWarn("Anruf", "TV Mute ON") sendCommand(SAM_mute, ON) tv = 1 } end rule "Anruf aus" when Item FBX_ringing changed from ON to OFF then if ( sonos === 1 ) { logWarn("Anruf", "Sonos Mute OFF") sendCommand(SON_mute, OFF) sonos = 0 } if ( tv === 1 ) { logWarn("Anruf", "TV Mute OFF") sendCommand(SAM_mute, OFF) tv = 0 } end
Das Ganze geht mit Sicherheit auch noch deutlich komplexer da es in meinem Fall aber genau ein Festnetztelefon im Haus gibt und ich somit nur die Sonos und den Fernseher in diesem Raum muten muss reicht das völlig für mich.