OwnTone + HomeAssistant + Timer

์๋ด์๊ฒ ์์ ํ๋ ์ด์ด๋ก ๋ง๋ค์ด์ค OwnTone์๋ ์ทจ์นจ์์ฝ์ด๋ ์ฌ์ํ์ ์ค์ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ ์๋๋ค.
ํต์์ ์ผ๋ก๋ ๊ทธ๋ฐ (ํฌ๋ง)๊ธฐ๋ฅ์ ์ฐพ์ ๋ค๋ฅธ ๋์์ ์ฐพ์๋ด์ผ ๊ฒ ์ผ๋ ์์ฒญ์ ์ ์จ ๋ฌด์ํ๊ณ ์๋ค๊ฐ 7์์ ์ด๋๋ ์ข ์ดํด๋ณด๊ธฐ ์์ํ๋ค.
๋ญ ํต์์ ์ธ ๋จํธ๋ค์ด ๊ทธ๋ ๋ฏ์ด ์ ๋ง๋ค๊ณ ์ถ์ ๋๋ ์ด๊ฒ์ ํด์ผ ํ๋ค๊ณ ์ฐ๊ธฐ๋ค๊ฐ ์ ์ ๋ชจ๋ฅด๊ฑฐ๋ ์ ๋๊ฑฐ๋ ํ๋ ์ฌํญ์ ์๊ตฌ๋ฐ์ผ๋ฉด ์๊ฐํด๋ณด์๋ ๋ง๋ก ๋ฏธ๋ฃจ๊ณ ๋ฏธ๋ฃจ๋ ๊ฒ์ด๋ค.
๊ทธ ๋๋ํ ์ ๋ฏธ๋์ด์๊ฒ ๋ฌผ์ด๋ณด๋ ์์ธ์ ๋๋ต์ ํ๋๋ฐ, ์ง ์ค์ ๊ตฌ์ฑ์ ๋ฉ์ธ์ผ๋ก ์ฌ์ฉํ๊ณ ์๋ HA(Home Assistant)๋ฅผ ํตํด ์ ์ด๊ฐ ๋๋๋ค๋ ๊ฒ์ด๋ค.
ํ .. ๊ทธ๋ฌ๊ณ ๋ณด๋ ์ ๊ทธ ์๊ฐ์ ์ ํ์๊น ์ถ์ ์๊ฐ์ด ๋ ๋ค. ๊ทธ ์ ๊น์ง๋ OwnTone์ folkํด์ ๋ง๋ค์ด์ผ ํ๋? ๊ทธ๋ฌ๊ณ ์์๋ค.

๐ท HA์์ ์ฌ์ฉ ํ ๊ธฐ๊ธฐ์ ์๋ํ
HA๋ฅผ ๊ตฌ์ฑํ์ง ๋ช ๋ ์ด๋ ๋์์ง๋ง ์๋ํ๋ฅผ ํ ๋ฒ๋ ๊ตฌ์ฑํด ๋ณด์ง ์์ ๋๋ ๊ทธ ๋์์๋ฆฌ๋ฅผ ์ ํํ๊ฒ ์ดํดํ์ง ๋ชปํ๊ณ ์์๋ค.
์ฒ์ ์๊ฐํ ๊ฒ์
- ๋ฒํผ์ ์ถ๊ฐํ๋ค
- ๋ฒํผ์ ๋๋ฅธ๋ค
- 30๋ถ ๋ค์ ์์ ์ ์ค๋จ ์ํจ๋ค
์ผ๊ฒฌ ๊ฐ๋จํด ๋ณด์ด์ง๋ง Trigger์ Timer๊ฐ ๋ค์ด๊ฐ์ผ ํ๋ ์์ ์ด๋ผ๋ ๊ฒ์ ์กฐ๊ธ๋ง ์๊ฐ ํด ๋ณด๋ฉด ์์์๊ฑฐ ๊ฐ์๋ฐ, ์ฌ๊ธฐ์ ๊ผฌ์ด๊ธฐ ์์ํ๋ค.
Timer์ ์ด๋ป๊ฒ ์ด๋ฒคํธ ์ฝ๋ฉ์ ํ๋๊ฑฐ์ง? (30๋ ์ ๋น์ฃผ์ผ๋ฒ ์ด์ง ํ์ด๋จธ๋ฅผ ๋ ์ฌ๋ ธ๋ ๋ณด๋ค)
๋ด๊ฐ ์๊ณ ์๋ ๋ฐ๋ก๋ HA๋ฅผ ๋ง๋ ์ ์์๊ฐ ๊ฑฐ์ ์ฒ์ฌ๊ธ์ ๊ฐ๊น์ด ๋ถ์ผ๋ก ์๊ณ ์๋๋ฐ ๊ทธ๋ฐ ํ์ ํ ๊ตฌ์ฑ์ ํ์๊ฑฐ ๊ฐ์ง๋ ์๊ณ .
๋ฌธ์ ์ ํต์ฌ์
- ๋ณด์ด๋ ๋ถ๋ถ
- ์ฒ๋ฆฌํ๋ ๋ถ๋ถ
์ด ๋ ๊ฐ์ง์ ์ฒ ์ ํ ๋ถ๋ฆฌ๋ผ๋ ์ ์ด๋ค.
ํ๋ฉด์ด ๋ฐฐ์น๋๊ณ ์คํ(์กฐ์)์ ๋ฐ์๋ค์ด๋ ๋ถ๋ถ๊ณผ (์ฌ๊ธฐ์ ๋งํ๋ค) ๊ทธ ์กฐ์์ ์ฝ๋ฉ์ ํด์ผ ํ๋ค๋ ์๊ฐ์์ ํ์ฐธ์ ํค๋ฉ๋ค๋๊ณ ์์๋ค.

๐ท HA - ๊ธฐ๊ธฐ์ค ๋์ฐ๋ฏธ ์จ๋ฆฌ์ฆ๋ฅผ ๋ช ๊ฐ ์ถ๊ฐํ ๋ชจ์ต
๊ธฐ์ค 30๋ถ, 1์๊ฐ ์ด๋ ๊ฒ ๋ฒํผ์ ๋ ๊ฐ ๋ง๋ค๋ ค๊ณ ํ๋๋ ์๊ตฌ์๊ป์ ๋ช ๋ถ ์์ฝ ํ ๊ฒ์ธ์ง ์ ๋ ฅ์ ํ์๊ฒ ๋จ๋ค.
์ซ์ ์ ๋ ฅ์ฉ ์ฌ๋ผ์ด๋๋ฅผ ํ๋ ์์ฑํ๊ณ ๋ฒํผ์ ๋๋ฅผ ๋ ์ ์ซ์๋ฅผ ์ฝ์ด์ ํ์ด๋จธ์ ๋๊ฒจ์ฃผ๋ ๋ฐฉ์์ด๋ค.
๊ทธ๋ฐ๋ฐ ๊ทธ ์ค์ ์๋ ์ฝ๋ฉ์ ์ ๋ฒํผ์์ ์ฐพ์ผ๋ ค๊ณ ํ ๊ฒ์ด ๋งํ๋ ์ง๋ฆ๊ธธ์ด์ ๋ด ์๊ฐ๊ณผ ์์ค์ด ๊ทธ๊ฒ์ ๋จธ๋ฌผ๋ฌ ์๋ ๊ฒ์ด๋ค.

๐ท ์๋ํ ์ปดํฌ๋ํธ - ์ ์ํ๋ฅผ ํ์ฑ/๋นํ์ฑ ํ ์ ์๋๊ฒ์ ์ฃผ๋ชฉํด์ผ ํ๋ค
๋ฒํผ์๋ ์๋ฌด๋ฐ ์ก์ ์ด ์๋ค. (๋ฒํผ์ ์คํฌ๋ฆฝํธ๋ผ๋ ์ฐ๊ฒฐํ๋ ค๊ณ ๋ฌด์ฒ์ด๋ ์ ์ฐ๊ณ ์์๋ค.)
์๋ํ ๋ฐ ์คํฌ๋ฆฝํธ๋ก ๋์ด์์ ๊ตฌํ์ ํ ์ ์์์ง๋ง Trigger๋๋ ๋ฐฉ์์ ์ดํดํ์ง ๋ชปํ์ผ๋.
์ ์ด๋ฏธ์ง์์ ์๋ํ ์ปดํฌ๋ํธ์ ์ํ๋ฅผ ํ์ฑ/๋นํ์ฑ ํ ์ ์์์ ์ฃผ๋ชฉํด ๋ณด์.
ํ์ฑ์ด๋ผ๋ ๊ฒ์ ์๋ฏธ๋ ์ ๊ฒ ํ๋ ์์ฒด๊ฐ ๋ ๋ฆฝ์ ์ธ ์คํ์ฃผ์ฒด๋ผ๋ ๊ฒ์ ์๋ฏธํ๋ค๊ณ ๋ณธ๋ค.

๐ท ์๋ํ์ปดํฌ๋ํธ ์์ฐจ๊ตฌ์ฑ
์๋ํ ์ปดํฌ๋ํธ์ ๊ตฌ์ฑ์ ์ดํด๋ณด๋ฉด (์ดํด๋ณด๊ธฐ ์ ์ ํธ๋ฆฌ๊ฑฐ, ์กฐ๊ฑด, ๋์ ์ด 3๊ฐ์ง ์ค์ ์ด๋ค ๊ฒ์ ์ ํ ํ ๊ฒ์ธ์ง ๋ถํฐ ๊ณ ๋ฏผ์ด์๋ค.)
alias: "OwnTone: ๋ค์ด๋๋ฏน ์์ฝ์๋ฉด ํ์ด๋จธ"
description: ์ฌ๋ผ์ด๋๋ก ์ง์ ํ ์๊ฐ๋งํผ ํ์ด๋จธ๋ฅผ ๊ตฌ๋ํ๊ณ OwnTone์ ์ฌ์ํ ๋ค ์ข
๋ฃํฉ๋๋ค.
triggers:
- entity_id: input_button.eumagjongryobeoteun
trigger: state
actions:
- target:
entity_id: timer.eumagjongryotaimeo
data:
duration:
minutes: "{{ states('input_number.eumagjongryosigan') | int }}"
action: timer.start
- wait_for_trigger:
- entity_id: timer.eumagjongryotaimeo
from: active
to: idle
trigger: state
- target:
entity_id: media_player.owntone_server
action: media_player.media_stop
mode: restart
trigger์ action์ผ๋ก ๊ตฌ์ฑ๋ ๋ก์ง์ด ์๋ค๋ ๊ฒ์ ํ์ฐธ์ด๋ ์ฐพ์ํค๋ฉ๊ณ ๋ค๋๋ค ๋ง๋ค์ด ๋๊ณ ๋ณด๋ ์ดํด๊ฐ ๋๋ ๊ทธ๋ฐ ์ํฉ์ธ ๊ฒ์ด๋ค.
์ฆ, ๋ฒํผ์ trigger๊ฐ ์๋ ๊ฒ์ด ์๋๋ผ ์๋ํ ๋ชจ๋์ trigger๊ฐ ์๋ค.