Ein Smartphone-Klingeln während eines Kundengesprächs ist unangenehm. Noch störender wird es, wenn das Smartphone direkt neben dem Mikrofon liegt und nicht nur die Gesprächspartner, sondern möglicherweise auch eine laufende Bildschirmaufnahme unterbricht.
Genau das wollte ich vermeiden: Sobald ich am Windows-PC an einem Kundencall teilnehme oder eine Bildschirmaufnahme starte, soll mein Android-Smartphone automatisch auf Vibration wechseln. Wenn der Call oder die Aufnahme beendet ist, soll der Klingelmodus automatisch wieder auf „Normal“ gestellt werden.
Die Lösung verwendet:
- Home Assistant
- die Home-Assistant-App auf dem Android-Smartphone
- HASS.Agent auf dem Windows-PC
- mehrere von HASS.Agent bereitgestellte Windows-Sensoren
Alternativ zur Vibration lässt sich das Smartphone mit derselben Automation auch vollständig lautlos stellen.
Hinweis: Diese Anleitung setzt eine vorhandene Home-Assistant-Installation voraus. HASS.Agent muss mit Home Assistant verbunden sein, beispielsweise über MQTT, und seine Sensoren an Home Assistant übertragen.

Warum eine solche Automation sinnvoll ist
Mein Smartphone liegt während der Arbeit meistens weniger als einen halben Meter vom Mikrofon entfernt. Eine eingehende Nachricht oder ein Anruf ist dadurch in einer Videokonferenz deutlich hörbar.
Bei Bildschirmaufnahmen ist das genauso problematisch. Wenn ich beispielsweise ein Tutorial oder eine Erklärung für einen Kunden aufzeichne, kann ein Klingelton die gesamte Aufnahme unbrauchbar machen. Im schlechtesten Fall fällt die Störung erst nach der Aufnahme auf und das Video muss erneut aufgenommen werden.
Natürlich könnte ich den Klingelmodus vor jedem Gespräch oder jeder Aufnahme manuell ändern. In der Praxis vergisst man das aber schnell. Noch häufiger vergisst man nach dem Gespräch, das Smartphone wieder auf normal zu stellen.
Die Automation übernimmt deshalb beide Schritte:
- Call oder Bildschirmaufnahme erkennen.
- Android auf Vibration oder lautlos stellen.
- Nach dem Call oder der Aufnahme wieder den normalen Klingelmodus aktivieren.
Warum der Windows-Modus „Bitte nicht stören“ allein nicht ausreicht
Windows 11 kann „Bitte nicht stören“ unter bestimmten Umständen automatisch aktivieren, beispielsweise bei einer Vollbildanwendung oder während einer Präsentation.
HASS.Agent stellt hierfür den Sensor UserNotification bereit. Er kann unter anderem folgende Werte liefern:
NotPresent
Busy
RunningDirect3dFullScreen
PresentationMode
AcceptsNotifications
QuietTime
RunningWindowsStoreApp
In meinem Fall wechselte der Sensor beim Start einer Bildschirmaufnahme mit oCam zuverlässig von:
AcceptsNotifications
zu:
Busy
Nach dem Beenden der Aufnahme wechselte er wieder zu AcceptsNotifications.
Bei Microsoft Teams und Google Meet funktionierte diese Erkennung jedoch nicht. Obwohl eine Teams-Besprechung aktiv war und sogar der Bildschirm geteilt wurde, blieb der Windows-Status bei AcceptsNotifications.
Das liegt daran, dass der von HASS.Agent gemeldete Windows-Benachrichtigungsstatus nicht automatisch jeden aktiven Videocall erkennt. Deshalb kombinieren wir mehrere Sensoren.
Die verwendete Erkennungslogik
Die Automation stellt das Smartphone auf Vibration, sobald mindestens eine dieser Bedingungen erfüllt ist:
Windows meldet Busy oder PresentationMode
ODER
Microsoft Teams läuft und das Mikrofon ist aktiv
ODER
die Webcam ist aktiv
Die drei Wege decken unterschiedliche Anwendungsfälle ab.
Bildschirmaufnahmen und Präsentationen
Für Bildschirmaufnahmen verwenden wir den Sensor:
UserNotification
Relevante Zustände sind:
Busy
PresentationMode
Der Zustand:
RunningDirect3dFullScreen
wird bewusst ignoriert. Dadurch wird das Smartphone nicht allein deshalb auf Vibration gestellt, weil ein Spiel im Vollbildmodus läuft.
Microsoft Teams
Teams aktiviert den Windows-Status Busy nicht zwangsläufig. Deshalb wird ein Teams-Call anhand zweier Bedingungen erkannt:
Microsoft-Teams-Prozess läuft
UND
Mikrofon ist aktiv
HASS.Agent kann mit dem Sensor Process Active zählen, wie viele Instanzen eines bestimmten Prozesses laufen.
In meinem Fall wird der Prozess überwacht:
ms-teams.exe
Wenn Teams geschlossen ist, liefert der Sensor:
0
Während Teams läuft, kann er beispielsweise liefern:
2
Die genaue Zahl ist nicht wichtig. Die Automation kontrolliert lediglich, ob der Wert größer als null ist.
Zusätzlich muss der HASS-Agent-Sensor Microphone Active eingeschaltet sein. Dadurch reicht ein lediglich im Hintergrund geöffnetes Teams nicht aus, um das Smartphone auf Vibration zu stellen.
Google Meet und andere browserbasierte Calls
Google Meet läuft innerhalb des Browsers. Ein einfacher Prozesssensor für Firefox, Chrome oder Edge wäre daher nicht aussagekräftig: Der Browser kann geöffnet sein, ohne dass ein Videocall läuft.
Für Google Meet verwenden wir stattdessen:
Webcam Active
Sobald Google Meet auf die Webcam zugreift, meldet HASS.Agent:
on
Nach dem Verlassen des Meetings wechselt der Sensor wieder auf:
off
Diese Erkennung funktioniert unabhängig davon, welcher Browser verwendet wird.
Sie gilt außerdem für andere Anwendungen, die auf die Webcam zugreifen. Das ist in diesem Fall ausdrücklich erwünscht: Wenn die Webcam für einen Call oder eine Aufnahme verwendet wird, soll das Smartphone ebenfalls nicht klingeln.

Voraussetzungen
Für die Umsetzung werden benötigt:
- eine funktionierende Home-Assistant-Installation
- HASS.Agent auf dem Windows-PC
- eine Verbindung zwischen HASS.Agent und Home Assistant
- die Home-Assistant-Companion-App auf dem Android-Smartphone
- aktivierte Benachrichtigungen für die Home-Assistant-App
- die Berechtigung, mit der Home Assistant den Klingel- beziehungsweise „Nicht stören“-Modus des Smartphones ändern darf
Die Home-Assistant-App verwendet einen speziellen Notification Command. Dabei wird keine gewöhnliche sichtbare Benachrichtigung erzeugt. Die Benachrichtigungsfunktion dient lediglich als Transportweg für den Steuerbefehl.
Home Assistant unterstützt für Android unter anderem diese Klingelmodi:
normal
vibrate
silent
Mit vibrate wird der Vibrationsmodus aktiviert. Mit silent wird das Gerät vollständig lautlos gestellt. normal stellt anschließend den normalen Klingelmodus wieder her.
Schritt 1: HASS.Agent installieren und verbinden
HASS.Agent wird auf dem Windows-PC installiert und anschließend mit Home Assistant verbunden.
Je nach HASS-Agent-Version und bestehender Home-Assistant-Konfiguration erfolgt die Übertragung der Sensoren typischerweise über MQTT.
Nach erfolgreicher Einrichtung sollte der Windows-PC in Home Assistant als Gerät erscheinen.
Schritt 2: Die benötigten Sensoren in HASS.Agent anlegen
In HASS.Agent werden folgende Sensoren benötigt:
User Notification State
Dieser Sensor liefert den aktuellen Windows-Benachrichtigungszustand.
Beispielname:
usernotification
Beispiel-Entity in Home Assistant:
sensor.aero_laptop_usernotification
Microphone Active
Dieser Binärsensor zeigt, ob das Mikrofon aktuell verwendet wird.
Beispielname:
microphoneactive
Beispiel-Entity:
binary_sensor.aero_laptop_microphoneactive
Webcam Active
Dieser Binärsensor zeigt, ob eine Anwendung gerade auf die Webcam zugreift.
Beispielname:
webcamactive
Beispiel-Entity:
binary_sensor.aero_laptop_webcamactive
Process Active für Microsoft Teams
Als Prozess wird überwacht:
ms-teams
Hier muss darauf geachtet werden, die Dateiendung (.exe) wegzulassen so wie es in der Beschreibung des Sensors in HASS.Agent steht.
Beispielname:
ProcessActiveSensor MS Teams
Beispiel-Entity:
sensor.aero_laptop_processactive
Der Sensor liefert die Anzahl der laufenden Prozessinstanzen. HASS.Agent beschreibt Process Active entsprechend als Anzahl der laufenden Instanzen eines Prozesses. Microphone Active und Webcam Active melden, ob das jeweilige Gerät verwendet wird.

Schritt 3: Die tatsächlichen Entity-IDs kontrollieren
Die Entity-IDs können auf jedem System anders heißen.
In Home Assistant öffnet man:
Entwicklerwerkzeuge → Zustände
Dort werden die neu angelegten HASS-Agent-Sensoren gesucht.
In meinem Fall lauten sie:
sensor.aero_laptop_usernotification
binary_sensor.aero_laptop_microphoneactive
binary_sensor.aero_laptop_webcamactive
sensor.aero_laptop_processactive
Diese Namen müssen im späteren YAML-Code durch die Entity-IDs der eigenen Installation ersetzt werden.
Schritt 4: Den Mobile-App-Benachrichtigungsdienst finden
Die Steuerung des Android-Klingelmodus erfolgt über die Home-Assistant-App.
Der benötigte Aktionsname sieht ungefähr so aus:
notify.mobile_app_sm_s916b
Der genaue Name hängt von der Geräte-ID des Smartphones ab.
Er kann unter:
Entwicklerwerkzeuge → Aktionen
durch eine Suche nach:
notify.mobile_app
gefunden werden.
Wichtig ist, tatsächlich die Mobile-App-Aktion zu verwenden. Eine Notify-Entität wie:
notify.sm_s916b
ist nicht zwangsläufig für die verschachtelten Android-Steuerbefehle geeignet.

Schritt 5: Den Klingelmodus manuell testen
Bevor die vollständige Automation erstellt wird, sollte der Steuerbefehl separat getestet werden.
Smartphone auf Vibration stellen
action: notify.mobile_app_sm_s916b
data:
message: command_ringer_mode
data:
command: vibrate
Dabei muss folgende Zeile angepasst werden:
action: notify.mobile_app_sm_s916b
Hier wird der tatsächliche Benachrichtigungsdienst des eigenen Smartphones eingetragen.
Smartphone wieder auf normal stellen
action: notify.mobile_app_sm_s916b
data:
message: command_ringer_mode
data:
command: normal
Beim ersten Versuch kann Android die Berechtigung verlangen, den Klingelmodus oder den „Nicht stören“-Status zu ändern.
Home Assistant dokumentiert command_ringer_mode offiziell für Android. Unterstützt werden unter anderem normal, vibrate und silent.
Die vollständige Home-Assistant-Automation
Die folgende Automation reagiert auf jede Zustandsänderung der vier Sensoren.
Wenn Windows Busy oder PresentationMode meldet, Teams zusammen mit einem aktiven Mikrofon läuft oder die Webcam aktiv ist, wird das Smartphone auf Vibration gestellt.
Sobald keine dieser Bedingungen mehr zutrifft, wartet Home Assistant fünf Sekunden und stellt das Smartphone wieder auf normal.
alias: Android bei Call oder Bildschirmaufnahme auf Vibration
description: >
Stellt das Android-Smartphone bei Bildschirmaufnahmen,
Präsentationen, Teams-Calls oder aktiver Webcam auf Vibration.
Sobald keine dieser Bedingungen mehr erfüllt ist, wird der
normale Klingelmodus wiederhergestellt.
mode: restart
triggers:
- trigger: state
entity_id:
- sensor.aero_laptop_usernotification
- binary_sensor.aero_laptop_microphoneactive
- binary_sensor.aero_laptop_webcamactive
- sensor.aero_laptop_processactive
conditions: []
actions:
- variables:
windows_status: >
{{ states('sensor.aero_laptop_usernotification')
| lower
| replace(' ', '')
| replace('_', '') }}
windows_busy: >
{{ windows_status in ['busy', 'presentationmode'] }}
teams_call: >
{{
states('sensor.aero_laptop_processactive') | int(0) > 0
and is_state(
'binary_sensor.aero_laptop_microphoneactive',
'on'
)
}}
webcam_active: >
{{
is_state(
'binary_sensor.aero_laptop_webcamactive',
'on'
)
}}
- choose:
- conditions:
- condition: template
value_template: >
{{ windows_busy or teams_call or webcam_active }}
sequence:
- action: notify.mobile_app_sm_s916b
data:
message: command_ringer_mode
data:
command: vibrate
default:
- delay:
seconds: 5
- variables:
current_windows_status: >
{{ states('sensor.aero_laptop_usernotification')
| lower
| replace(' ', '')
| replace('_', '') }}
still_windows_busy: >
{{
current_windows_status
in ['busy', 'presentationmode']
}}
still_in_teams_call: >
{{
states('sensor.aero_laptop_processactive')
| int(0) > 0
and is_state(
'binary_sensor.aero_laptop_microphoneactive',
'on'
)
}}
still_webcam_active: >
{{
is_state(
'binary_sensor.aero_laptop_webcamactive',
'on'
)
}}
- condition: template
value_template: >
{{
not still_windows_busy
and not still_in_teams_call
and not still_webcam_active
}}
- action: notify.mobile_app_sm_s916b
data:
message: command_ringer_mode
data:
command: normal
Durch den Automationsmodus:
mode: restart
wird eine noch laufende Ausführung abgebrochen und mit den aktuellen Sensorwerten neu gestartet, wenn innerhalb der fünfsekündigen Wartezeit erneut ein relevanter Zustand auftritt. Home Assistant beschreibt restart entsprechend als Neustart der laufenden Automation bei einer erneuten Auslösung.
Diese Stellen müssen angepasst werden
In der Automation müssen die folgenden Entity- und Aktionsnamen an die eigene Home-Assistant-Installation angepasst werden.
Windows-Benachrichtigungsstatus
sensor.aero_laptop_usernotification
Mikrofonstatus
binary_sensor.aero_laptop_microphoneactive
Webcamstatus
binary_sensor.aero_laptop_webcamactive
Teams-Prozesssensor
sensor.aero_laptop_processactive
Mobile-App-Aktion des Android-Smartphones
notify.mobile_app_sm_s916b
Die Namen kommen im YAML teilweise mehrfach vor. Deshalb sollten alle Vorkommen ersetzt werden.
Smartphone vollständig lautlos statt auf Vibration stellen
Wer das Smartphone nicht nur auf Vibration, sondern vollständig lautlos stellen möchte, ändert in der Automation:
command: vibrate
zu:
command: silent
Der Befehl zum späteren Wiederherstellen bleibt:
command: normal
Damit ergibt sich:
Call oder Aufnahme beginnt
→ Smartphone vollständig lautlos
Call oder Aufnahme endet
→ Smartphone wieder normal
Auf unterstützten Android-Geräten kann silent zugleich den „Nicht stören“-Modus einschalten. normal beziehungsweise vibrate kann ihn anschließend wieder deaktivieren.
Warum Spiele bewusst ignoriert werden
Der HASS-Agent-Sensor UserNotification kann bei einem Spiel den Zustand:
RunningDirect3dFullScreen
melden.
Dieser Wert ist in der Automation bewusst nicht in windows_busy enthalten:
windows_busy: >
{{ windows_status in ['busy', 'presentationmode'] }}
Dadurch wird das Smartphone beim Spielen nicht automatisch verändert.
Wer auch während eines Spiels nicht gestört werden möchte, kann den Zustand ergänzen:
windows_busy: >
{{
windows_status in [
'busy',
'presentationmode',
'runningdirect3dfullscreen'
]
}}
Die Automation testen
Die einzelnen Anwendungsfälle sollten nacheinander getestet werden.
Test 1: Bildschirmaufnahme
- Smartphone auf normal stellen.
- Bildschirmaufnahme mit oCam oder einer vergleichbaren Anwendung starten.
- In Home Assistant prüfen, ob
UserNotificationaufBusywechselt. - Das Smartphone sollte auf Vibration wechseln.
- Aufnahme beenden.
- Nach fünf Sekunden sollte das Smartphone wieder normal klingeln.
Test 2: Microsoft Teams
- Teams vollständig schließen.
- Kontrollieren, dass der Prozesssensor
0meldet. - Teams öffnen, aber noch keine Besprechung starten.
- Das Smartphone sollte normal bleiben.
- Eine eigene Testbesprechung starten.
- Sobald Teams läuft und das Mikrofon aktiv ist, sollte das Smartphone vibrieren.
- Die Besprechung verlassen.
- Nach fünf Sekunden sollte der normale Klingelmodus wiederhergestellt werden.
Für diesen Test wird kein zweiter Teilnehmer benötigt. Eine selbst gestartete Teams-Besprechung reicht aus.
Test 3: Google Meet
- Einen neuen Google-Meet-Raum öffnen.
- Die Webcam aktivieren.
- Der Webcam-Sensor sollte auf
onwechseln. - Das Smartphone sollte auf Vibration wechseln.
- Meeting verlassen oder Webcamzugriff beenden.
- Nach fünf Sekunden sollte das Smartphone wieder normal klingeln.
Mögliche Fehltrigger
Die Lösung ist bewusst pragmatisch und nicht auf einzelne Meeting-Anbieter beschränkt.
Teams läuft im Hintergrund und eine andere Anwendung verwendet das Mikrofon
Die Teams-Erkennung lautet:
Teams läuft und Mikrofon ist aktiv
Wenn Teams geöffnet bleibt und anschließend eine andere Anwendung das Mikrofon verwendet, kann die Automation ebenfalls auslösen.
Wer Teams nur für einzelne Kundentermine öffnet und anschließend wieder beendet, dürfte davon kaum betroffen sein.
Eine noch genauere Erkennung wäre über den HASS-Agent-Sensor Microphone Process möglich. Damit könnte geprüft werden, welcher Prozess das Mikrofon verwendet.
Jede Webcam-Nutzung löst die Automation aus
Auch die Windows-Kamera-App, OBS oder eine andere lokale Videoanwendung aktiviert den Webcam-Sensor.
Für meinen Anwendungsfall ist das gewünscht. Wenn eine Anwendung die Webcam verwendet, läuft wahrscheinlich gerade ein Call oder eine Aufnahme, die nicht durch das Smartphone gestört werden soll.
Wer ausschließlich Google Meet erkennen möchte, müsste zusätzlich den verwendeten Browser, Fenstertitel oder den Webcam-Prozess auswerten.
Das Smartphone wird immer auf „Normal“ zurückgestellt
Diese einfache Variante speichert den vorherigen Klingelmodus nicht.
Das bedeutet:
Smartphone war vorher auf Vibration
→ Automation wird aktiv
→ Automation endet
→ Smartphone wird auf Normal gestellt
In meinem Fall ist das unproblematisch, weil das Smartphone im Alltag normalerweise auf normal steht.
Wer den vorherigen Zustand exakt wiederherstellen möchte, kann ihn vor dem Umschalten in einem Home-Assistant-Helfer speichern. Für eine erste, unkomplizierte Umsetzung ist das jedoch nicht zwingend erforderlich.
Funktioniert das auch mit einem iPhone?
Die Home-Assistant-Companion-App ist ebenfalls für iOS verfügbar. Die in dieser Anleitung verwendete Steuerung des Klingelmodus mit command_ringer_mode ist jedoch eine Android-Funktion und kann nicht unverändert für ein iPhone übernommen werden.
Eine vergleichbare Lösung ist unter iOS grundsätzlich über die Apple-App „Kurzbefehle“ und einen Fokusmodus wie „Nicht stören“ denkbar. Home Assistant kann einen auf dem iPhone eingerichteten Kurzbefehl anstoßen, der anschließend den gewünschten Fokusmodus aktiviert oder deaktiviert.
Die Einrichtung unterscheidet sich damit deutlich von der hier beschriebenen Android-Automation und wird in dieser Anleitung nicht behandelt.
Fazit
Mit HASS.Agent und Home Assistant lässt sich der Klingelmodus eines Android-Smartphones automatisch an die aktuelle Arbeitssituation am Windows-PC anpassen.
Die Kombination aus mehreren Sensoren ist dabei zuverlässiger als eine einzelne Abfrage:
Windows Busy oder PresentationMode
ODER
Teams läuft und Mikrofon ist aktiv
ODER
Webcam ist aktiv
Damit werden unter anderem folgende Situationen abgedeckt:
- Bildschirmaufnahmen
- Microsoft-Teams-Besprechungen
- Google-Meet-Calls
- andere browserbasierte Videokonferenzen
- lokale Webcam-Aufnahmen
- Präsentationsmodi unter Windows
Während des Calls oder der Aufnahme wechselt das Smartphone automatisch auf Vibration oder vollständig lautlos. Danach stellt Home Assistant den normalen Klingelmodus wieder her.
Das verhindert störende Klingeltöne in Kundengesprächen und erspart gleichzeitig den manuellen Wechsel des Klingelmodus vor und nach jedem Termin.
