3 Minuten
Automatisch pausierender Media Player
Lebt man in seiner Wohnung überwiegend allein, kann über Bewegungssensoren verlässlich ermittelt werden, in welchem Raum man sich aufhält. Wie das geht wurde bereits im Post Room Based Presence mit Motion Sensoren erläutert. Schaut man einen Film oder hört ein Hörbuch, geschieht das über einen Media Player, der klar einem Raum zugeordnet ist. Verlässt man den Raum, in dem gerade eine Wiedergabe erfolgt, bspw. um eine Tüte Chips zu holen, kann der Media Player automatisch pausiert und beim Wiedereintreten in den Raum automatisch fortgesetzt werden.
Vorraussetzungen
Für diese Automation wird der sensor.last_motion
benötigt, der in dem Post
Room Based Presence mit Motion Sensoren
ausgiebig erläutert wurde. Durch diesen Sensor weiß Homeassistant in welchem Raum man sich derzeit aufhält.
Es gelten die erläuterten Grundsätze, die im verlinkten Post erläutert wurden:
- Jeder Raum des Hauses benötigt einen Bewegungssensor
- Diese Automation funktioniert nur, wenn sich nur eine Person im Haus aufhält
- Es sollte ein
input_boolean
als Condition in der Automation verwendet werden für den Fall, dass mehrere Personen im Haus anwesend sind
Die Automation
Benötigt wird ein Media Player. In diesem Beispiel verwendete ich meinen Beelink GT-King Pro, der mit CoreElec geflasht wurde und das kostenlose Media Center Kodi ausführt. Wie man diesen Media Player mit CoreElec flasht, habe ich in dem Post Beelink GT-King Pro und CoreElec ausgeführt.
Der Media Player für dieses Beispiel hat den Namen media_player.beelink
und befindet sich in meinem Wohnzimmer.
- alias: Kodi Auto Pause
description: "Automatically pauses and resumes playback when living room is left or entered"
trigger:
- platform: state
entity_id: sensor.last_motion
condition:
condition: and
conditions:
- condition: state
entity_id: input_boolean.besuchermodus
state: 'off'
- condition: state
entity_id: sensor.current_av_receiver_source
state: 'Kodi'
action:
- service: >
{% if not is_state("sensor.last_motion", "Wohnzimmer") and is_state("media_player.beelink", "playing") %}
media_player.media_pause
{% elif is_state("sensor.last_motion", "Wohnzimmer") and is_state("media_player.beelink", "paused") %}
media_player.media_play
{% endif %}
data:
entity_id: media_player.beelink
Erläuterung der Automation
Trigger
- platform: state
entity_id: sensor.last_motion
Trigger ist der Sensor sensor.last_motion
, der den Aufenthalt in Haus angibt. Ändert sich der Aufenthalt, werden zwei conditions
geprüft.
Conditions
- condition: state
entity_id: input_boolean.besuchermodus
state: 'off'
Diese Condition prüft den State eines input_boolean
, der von mir gesetzt wird, wenn Besuch anwesend ist. Für diesen Fall soll die Automation nicht ausgeführt werden.
- condition: state
entity_id: sensor.current_av_receiver_source
state: 'Kodi'
Diese Condition prüft, ob mein AV-Receiver auf den Eingang des Media Players geschaltet ist, damit die Automation nicht triggert, wenn ich bspw. über das Gerät Musik höre.
Action
- service: >
{% if not is_state("sensor.last_motion", "Wohnzimmer") and is_state("media_player.beelink", "playing") %}
media_player.media_pause
{% elif is_state("sensor.last_motion", "Wohnzimmer") and is_state("media_player.beelink", "paused") %}
media_player.media_play
{% endif %}
data:
entity_id: media_player.beelink
Für die Action kommt eine service_template zum Einsatz, die basierend auf dem Zustand des sensor.last_motion
und des Media Players media_player.beelink
zwei Unterschiedliche Aktionen ausführt:
- Pause: Wenn eine Bewegung außerhalb des Wohnzimmers detektiert wird UND der Media Player gerade etwas abspielt
- Resume: Wenn eine Bewegung im Wohnzimmer detektiert wird UND der Media Player pausiert ist.
kodi coreelec hue-motion-sensor
homeautomation media-player motion-sensor
481 Wörter
2021-08-08 16:13