Home Assistant on monikäyttöinen kotiautomaatiojärjestelmä, jonka tulin huomanneeksi, kun mietin, että miten voisin rajoittaa Samsungin älytelevision äänen voimakkuutta. Meillä kotona tuppasi käymään siten, että kiusalla äänen voimakkuutta nostettiin välillä lähes maksimiin, jonka vuoksi kyllästyin ja aloin miettimään ratkaisua tähän ongelmaan.
Valmistajan sovelluskaupasta ei apuja löytynyt, joten päätin kokeilla, että miten Home Assistant tässa onnistuu. Ja onnistuuhan se, vieläpä oikein hyvin.
Aluksi meidän täytyy lisätä älytelevio Home Assistantiin media playerinä, jonka Home Assistant yleensä tekee automaattisesti, mikäli TV on samassa verkossa. Minulla TV näkyy integraatiossa seuraavasti:
Kuva: Integraatiot, TV
Seuraavaksi luodaan muuttuja, jolla määritetään äänen voimakkuuden yläraja. Tämä muuttuja luodaan input_number
-muuttujana eli lisätään configuration.yaml
-tiedostoon seuraavat rivit:
# configuration.yaml
input_number:
tv_volume_max:
name: 'Maksimi äänenvoimakkuus'
initial: 20
min: 0
max: 40
step: 1
icon: mdi:cog
mode: box
Alarajalle voidaan myös tehdä oma muuttuja, mutta itse olen määrittänyt automaatiossa tähän arvoksi 10. Eli tämä tarkoittaa sitä, että kun TV:n äänen voimakkuus nostetaan yli muuttujan määrittämän arvon, eli tässä tapauksessa 20, niin automaatio laskee äänen voimakuuden automaattisesti takaisin tasolle 10. HUOM! Home Assistant määrittää automaatiossa äänen voimakkuuden desimaalilukuna eli tässä tapauksessa lukuna 0,1
.
Tämä Home Assistantin avulla tehty ratkaisu ei ole kuitenkaan aivan “idiootti”-varma, koska äänen voimakkuutta “renkuttamalla” automaatio voi joskus pudota kyydistä, jolloin rajoitus ei hetkeen toimi. Normaalissa käytössä se toimii kuitenkin hyvin.
Seuraavaksi määritetään TV:n äänen voimakkuudesta oma sensori lisäämällä sensor:
-kohtaan seuraavat rivit
sensor:
- platform: template
sensors:
tv_volume:
friendly_name: 'TVn äänen voimakkuus'
value_template: "{{ (state_attr('media_player.tv','volume_level') *100 |float) | round(0) }}"
Lopuksi tehdään vielä tarvittava automaatio, joka sitten laskee äänen voimakkuutta tarvittaessa alas päin. Käyttöliittymän kautta tehtynä se näyttää seuraavalta:
Laukaisuehdot:
Kuva: Laukaisuehdot
Toiminnot:
Kuva: Toiminnot
Mikäli haluaa tehdä muutokset automations.yaml
-tiedostoon, niin tällöin lisätään sinne rivit:
# automations.yaml
- id: '1650139109230'
alias: TVn äänenvoimakkuuden rajoitus
description: ''
trigger:
- platform: template
value_template: '{{states.sensor.tv_volume.state >= states.input_number.tv_volume_max.state}}'
condition: []
action:
- service: media_player.volume_set
data:
volume_level: 0.1
target:
entity_id:
- media_player.tv
mode: single
Home Assistantin työpöydällä TV:n tiedot näkyvät seuraavasti:
Kuva: Älytelevision äänen voimakkuuden rajoitus
Jaa tämä: