Wie ich im letzten Beitrag zu Home Assistant dargelegt habe, spielen automatische Sprachansagen in meinem Smart-Home eine gewisse Rolle. Heute wollen wir uns mal um deren Lautstärke kümmern. Während ich sie tagsüber gerne etwas lauter haben möchte, halte ich abends und nachts eine reduzierte Lautstärke für angebracht.
Auch dies können wir natürlich automatisieren. Dazu habe ich mir in meiner sensors.yaml einen sogenannten Template-Sensor definiert:
- platform: template sensors: tts_volume: value_template: > {% set state = states('sensor.time') %} {% if '00:00' <= state < '08:00' %} 0.3 {% elif '08:00' <= state < '22:00' %} 0.5 {% else %} 0.3 {% endif %}
Dieser Sensor ändert seinen Wert in Abhängigkeit von der Uhrzeit. Zwischen 0 und 8 Uhr sowie zwischen 22 und 0 Uhr liefert er den “Messwert” 0.3. Zur übrigen Zeit also zwischen 8 und 22 Uhr 0.5. Ich habe ihn “tts_volume” genannt. Ihr könnt natürlich weitere Abstufungen einziehen, indem ihr zusätzliche elif-Bedingungen (“else if”) definiert. Nach der Ergänzung der sensors.yaml empfehle ich dringend, über die Entwicklerwerkzeuge in der linken Toolbar eine Konfigurationsprüfung zu machen. Fällt diese positiv aus, ist ein Neustart von Home Assistant erforderlich. Danach sollte der neue Sensor verfügbar sein. Allein die Möglichkeit, selber solche Sensoren erzeugen zu können, macht Home Assistant einfach großartig.
Wie setzen wir den Sensor nun ein? Da gehen wir zurück zum letzten Artikel. Dort haben eine Sprachansage ja mit folgendem Code aufgerufen:
service: script.tts_engine data: speaker: media_player.kueche message: Posteinwurf erkannt! volume: 0.5 delay: 10
Diesen ändern wir nun wie folgt:
service: script.tts_engine data: speaker: media_player.kueche message: Posteinwurf erkannt! volume: "{{ states('sensor.tts_volume') }}" delay: 10
Nun wird der Wert unseres Sensors als Lautstärke ein gesetzt. 0,5 wären hier übrigens 50 Prozent. Die Lautstärke ist somit jetzt wie gewünscht zeitabhängig.