홈어시스턴트에서 사용할 예쁜 대쉬보드 카드는 어떤것이고 어떻게 자동화해서 쓰면 좋은지
정답은 없지만, 제가 알고 있는 2개의 카드를 소개해드리고자 합니다.
[추천카드 1]
https://github.com/karlis-vagalis/circular-timer-card
GitHub - karlis-vagalis/circular-timer-card: Custom Home Assistant card to display timer countdowns using D3.js
Custom Home Assistant card to display timer countdowns using D3.js - karlis-vagalis/circular-timer-card
github.com

카드 코드
square: false
type: grid
cards:
- type: custom:circular-timer-card
entity: timer.timer_sunpoonggi1sigan
bins: 30
color:
- "#1e7883"
- "#a9bdbb"
- "#ee7256"
layout: minimal
color_state: true
name: 1시간
icon: mdi:fan
- type: custom:circular-timer-card
entity: timer.timer_sunpoonggi3sigan
bins: 30
color:
- "#1e7883"
- "#a9bdbb"
- "#ee7256"
layout: minimal
color_state: true
name: 3시간
icon: mdi:fan
- type: custom:circular-timer-card
entity: timer.timer_sunpoonggi5sigan
bins: 30
color:
- "#1e7883"
- "#a9bdbb"
- "#ee7256"
layout: minimal
color_state: true
name: 5시간
icon: mdi:fan
columns: 3
아래 코드는 모든 선풍기를 그룹 제어하는 자동화 코드 입니다.
개별 제어가아닌 그룹제어를 원하시는 분들은 아래와 같은 방법으로 에어컨, 난방, 제습기, 가습기도 구현 하실수 있습니다.
자동화 코드
alias: z(타이머) 선풍기 타이머
description: ""
triggers:
- entity_id:
- timer.timer_sunpoonggi1sigan
from: active
to: idle
id: 선풍기 1시간 끝나면
trigger: state
- entity_id:
- timer.timer_sunpoonggi1sigan
from: idle
to: active
id: 선풍기 1시간 시작되면
trigger: state
- entity_id:
- timer.timer_sunpoonggi3sigan
from: active
to: idle
id: 선풍기 3시간 끝나면
trigger: state
- entity_id:
- timer.timer_sunpoonggi3sigan
from: idle
to: active
id: 선풍기 3시간 시작되면
trigger: state
- entity_id:
- timer.timer_sunpoonggi5sigan
from: active
to: idle
id: 선풍기 5시간 끝나면
trigger: state
- entity_id:
- timer.timer_sunpoonggi5sigan
from: idle
to: active
id: 선풍기 5시간 시작되면
trigger: state
conditions: []
actions:
- if:
- condition: trigger
id:
- 선풍기 1시간 시작되면
then:
- if:
- condition: state
entity_id: timer.timer_sunpoonggi3sigan
state: active
then:
- metadata: {}
data: {}
enabled: true
target:
entity_id: timer.timer_sunpoonggi3sigan
action: timer.finish
- if:
- condition: state
entity_id: timer.timer_sunpoonggi3sigan
state: paused
then:
- data: {}
target:
entity_id: timer.timer_sunpoonggi3sigan
action: timer.cancel
- if:
- condition: state
entity_id: timer.timer_sunpoonggi5sigan
state: active
then:
- metadata: {}
data: {}
target:
entity_id: timer.timer_sunpoonggi5sigan
enabled: true
action: timer.finish
- if:
- condition: state
entity_id: timer.timer_sunpoonggi5sigan
state: paused
then:
- target:
entity_id:
- timer.timer_sunpoonggi5sigan
data: {}
action: timer.cancel
- if:
- condition: not
conditions:
- condition: state
entity_id: number.keompyuteobang_sihaseu_jaesil_kaunteo_senseo_people
state: "0"
then:
- if:
- condition: device
type: is_off
device_id: aadb11edcc164ce39e9dcc260642c389
entity_id: f60298838432807f9f266b62d3da2fe0
domain: switch
then:
- type: turn_on
device_id: aadb11edcc164ce39e9dcc260642c389
entity_id: f60298838432807f9f266b62d3da2fe0
domain: switch
alias: 컴퓨터방 선풍기 전원 스위치 켜기
- if:
- condition: not
conditions:
- condition: state
entity_id: number.0x00158d008bcd7bee_people
state: "0"
then:
- if:
- condition: device
device_id: 63e62985e43281cb4fb0e26c1a33989e
domain: fan
entity_id: 4e16fb22aaab56932c7fc81e35cc692c
type: is_off
then:
- type: turn_on
device_id: 63e62985e43281cb4fb0e26c1a33989e
entity_id: 4e16fb22aaab56932c7fc81e35cc692c
domain: fan
- if:
- type: is_occupied
condition: device
device_id: 457e265e3a0878b0bb9a9fb3f024657a
entity_id: 3beabbcd357af327e7970d490337b186
domain: binary_sensor
then:
- alias: 거실 선풍기 켜기
if:
- condition: device
device_id: 7565e73ac5ff3512ad38d1d738549608
domain: fan
entity_id: 31e4954d34eb8e77b7b9a7fcb2de2cf9
type: is_off
then:
- type: turn_on
device_id: 7565e73ac5ff3512ad38d1d738549608
entity_id: 31e4954d34eb8e77b7b9a7fcb2de2cf9
domain: fan
- if:
- condition: trigger
id:
- 선풍기 3시간 시작되면
then:
- if:
- condition: state
entity_id: timer.timer_sunpoonggi1sigan
state: active
then:
- metadata: {}
data: {}
target:
entity_id:
- timer.timer_sunpoonggi1sigan
enabled: true
action: timer.finish
- if:
- condition: state
entity_id: timer.timer_sunpoonggi1sigan
state: paused
then:
- target:
entity_id:
- timer.timer_sunpoonggi1sigan
data: {}
action: timer.cancel
- if:
- condition: state
entity_id: timer.timer_sunpoonggi5sigan
state: active
then:
- metadata: {}
data: {}
target:
entity_id: timer.timer_sunpoonggi5sigan
enabled: true
action: timer.finish
- if:
- condition: state
entity_id: timer.timer_sunpoonggi5sigan
state: paused
then:
- target:
entity_id:
- timer.timer_sunpoonggi5sigan
data: {}
action: timer.cancel
- if:
- condition: not
conditions:
- condition: state
entity_id: number.keompyuteobang_sihaseu_jaesil_kaunteo_senseo_people
state: "0"
then:
- if:
- condition: device
type: is_off
device_id: aadb11edcc164ce39e9dcc260642c389
entity_id: f60298838432807f9f266b62d3da2fe0
domain: switch
then:
- type: turn_on
device_id: aadb11edcc164ce39e9dcc260642c389
entity_id: f60298838432807f9f266b62d3da2fe0
domain: switch
alias: 컴퓨터방 선풍기 전원 스위치 켜기
- if:
- condition: not
conditions:
- condition: state
entity_id: number.0x00158d008bcd7bee_people
state: "0"
then:
- if:
- condition: device
device_id: 63e62985e43281cb4fb0e26c1a33989e
domain: fan
entity_id: 4e16fb22aaab56932c7fc81e35cc692c
type: is_off
then:
- type: turn_on
device_id: 63e62985e43281cb4fb0e26c1a33989e
entity_id: 4e16fb22aaab56932c7fc81e35cc692c
domain: fan
- if:
- type: is_occupied
condition: device
device_id: 457e265e3a0878b0bb9a9fb3f024657a
entity_id: 3beabbcd357af327e7970d490337b186
domain: binary_sensor
then:
- alias: 거실 선풍기 켜기
if:
- condition: device
device_id: 7565e73ac5ff3512ad38d1d738549608
domain: fan
entity_id: 31e4954d34eb8e77b7b9a7fcb2de2cf9
type: is_off
then:
- type: turn_on
device_id: 7565e73ac5ff3512ad38d1d738549608
entity_id: 31e4954d34eb8e77b7b9a7fcb2de2cf9
domain: fan
- if:
- condition: trigger
id:
- 선풍기 5시간 시작되면
then:
- if:
- condition: state
entity_id: timer.timer_sunpoonggi1sigan
state: active
then:
- metadata: {}
data: {}
target:
entity_id:
- timer.timer_sunpoonggi1sigan
enabled: true
action: timer.finish
- if:
- condition: state
entity_id: timer.timer_sunpoonggi1sigan
state: paused
then:
- target:
entity_id:
- timer.timer_sunpoonggi1sigan
data: {}
action: timer.cancel
- if:
- condition: state
entity_id: timer.timer_sunpoonggi3sigan
state: active
then:
- metadata: {}
data: {}
target:
entity_id:
- timer.timer_sunpoonggi3sigan
enabled: true
action: timer.finish
- if:
- condition: state
entity_id: timer.timer_sunpoonggi3sigan
state: paused
then:
- target:
entity_id:
- timer.timer_sunpoonggi3sigan
data: {}
action: timer.cancel
- if:
- condition: not
conditions:
- condition: state
entity_id: number.keompyuteobang_sihaseu_jaesil_kaunteo_senseo_people
state: "0"
then:
- if:
- condition: device
type: is_off
device_id: aadb11edcc164ce39e9dcc260642c389
entity_id: f60298838432807f9f266b62d3da2fe0
domain: switch
then:
- type: turn_on
device_id: aadb11edcc164ce39e9dcc260642c389
entity_id: f60298838432807f9f266b62d3da2fe0
domain: switch
alias: 컴퓨터방 선풍기 전원 스위치 켜기
- if:
- condition: not
conditions:
- condition: state
entity_id: number.0x00158d008bcd7bee_people
state: "0"
then:
- if:
- condition: device
device_id: 63e62985e43281cb4fb0e26c1a33989e
domain: fan
entity_id: 4e16fb22aaab56932c7fc81e35cc692c
type: is_off
then:
- type: turn_on
device_id: 63e62985e43281cb4fb0e26c1a33989e
entity_id: 4e16fb22aaab56932c7fc81e35cc692c
domain: fan
- if:
- type: is_occupied
condition: device
device_id: 457e265e3a0878b0bb9a9fb3f024657a
entity_id: 3beabbcd357af327e7970d490337b186
domain: binary_sensor
then:
- alias: 거실 선풍기 켜기
if:
- condition: device
device_id: 7565e73ac5ff3512ad38d1d738549608
domain: fan
entity_id: 31e4954d34eb8e77b7b9a7fcb2de2cf9
type: is_off
then:
- type: turn_on
device_id: 7565e73ac5ff3512ad38d1d738549608
entity_id: 31e4954d34eb8e77b7b9a7fcb2de2cf9
domain: fan
- if:
- condition: trigger
id:
- 선풍기 1시간 끝나면
then:
- if:
- condition: and
conditions:
- condition: state
entity_id: timer.timer_sunpoonggi5sigan
state: idle
- condition: state
entity_id: timer.timer_sunpoonggi3sigan
state: idle
then:
- alias: 컴퓨터방 선풍기 전원 스위치 끄기
if:
- condition: device
type: is_on
device_id: aadb11edcc164ce39e9dcc260642c389
entity_id: f60298838432807f9f266b62d3da2fe0
domain: switch
then:
- type: turn_off
device_id: aadb11edcc164ce39e9dcc260642c389
entity_id: f60298838432807f9f266b62d3da2fe0
domain: switch
- if:
- condition: device
device_id: 7565e73ac5ff3512ad38d1d738549608
domain: fan
entity_id: 31e4954d34eb8e77b7b9a7fcb2de2cf9
type: is_on
then:
- type: turn_off
device_id: 7565e73ac5ff3512ad38d1d738549608
entity_id: 31e4954d34eb8e77b7b9a7fcb2de2cf9
domain: fan
alias: 거실 선풍기 끄기
- if:
- condition: device
device_id: 63e62985e43281cb4fb0e26c1a33989e
domain: fan
entity_id: 4e16fb22aaab56932c7fc81e35cc692c
type: is_on
then:
- type: turn_off
device_id: 63e62985e43281cb4fb0e26c1a33989e
entity_id: 4e16fb22aaab56932c7fc81e35cc692c
domain: fan
- if:
- condition: trigger
id:
- 선풍기 3시간 끝나면
then:
- if:
- condition: and
conditions:
- condition: state
entity_id: timer.timer_sunpoonggi1sigan
state: idle
- condition: state
entity_id: timer.timer_sunpoonggi5sigan
state: idle
then:
- alias: 컴퓨터방 선풍기 전원 스위치 끄기
if:
- condition: device
type: is_on
device_id: aadb11edcc164ce39e9dcc260642c389
entity_id: f60298838432807f9f266b62d3da2fe0
domain: switch
then:
- type: turn_off
device_id: aadb11edcc164ce39e9dcc260642c389
entity_id: f60298838432807f9f266b62d3da2fe0
domain: switch
- if:
- condition: device
device_id: 7565e73ac5ff3512ad38d1d738549608
domain: fan
entity_id: 31e4954d34eb8e77b7b9a7fcb2de2cf9
type: is_on
then:
- type: turn_off
device_id: 7565e73ac5ff3512ad38d1d738549608
entity_id: 31e4954d34eb8e77b7b9a7fcb2de2cf9
domain: fan
alias: 거실 선풍기 끄기
- if:
- condition: device
device_id: 63e62985e43281cb4fb0e26c1a33989e
domain: fan
entity_id: 4e16fb22aaab56932c7fc81e35cc692c
type: is_on
then:
- type: turn_off
device_id: 63e62985e43281cb4fb0e26c1a33989e
entity_id: 4e16fb22aaab56932c7fc81e35cc692c
domain: fan
- if:
- condition: trigger
id:
- 선풍기 5시간 끝나면
then:
- if:
- condition: and
conditions:
- condition: state
entity_id: timer.timer_sunpoonggi3sigan
state: idle
- condition: state
entity_id: timer.timer_sunpoonggi1sigan
state: idle
then:
- alias: 컴퓨터방 선풍기 전원 스위치 끄기
if:
- condition: device
type: is_on
device_id: aadb11edcc164ce39e9dcc260642c389
entity_id: f60298838432807f9f266b62d3da2fe0
domain: switch
then:
- type: turn_off
device_id: aadb11edcc164ce39e9dcc260642c389
entity_id: f60298838432807f9f266b62d3da2fe0
domain: switch
- if:
- condition: device
device_id: 7565e73ac5ff3512ad38d1d738549608
domain: fan
entity_id: 31e4954d34eb8e77b7b9a7fcb2de2cf9
type: is_on
then:
- type: turn_off
device_id: 7565e73ac5ff3512ad38d1d738549608
entity_id: 31e4954d34eb8e77b7b9a7fcb2de2cf9
domain: fan
alias: 거실 선풍기 끄기
- if:
- condition: device
device_id: 63e62985e43281cb4fb0e26c1a33989e
domain: fan
entity_id: 4e16fb22aaab56932c7fc81e35cc692c
type: is_on
then:
- type: turn_off
device_id: 63e62985e43281cb4fb0e26c1a33989e
entity_id: 4e16fb22aaab56932c7fc81e35cc692c
domain: fan
mode: single
[추천카드 2]
https://github.com/ArikShemesh/ha-simple-timer
GitHub - ArikShemesh/ha-simple-timer: Custom Simple Timer Integration for Home Assistant
Custom Simple Timer Integration for Home Assistant - ArikShemesh/ha-simple-timer
github.com
템플릿 스위치 생성 코드
/homeassistant/templates.yaml
- switch:
- name: "geosil 에어컨"
unique_id: geosil_aircon
#상태가 off가 아니면 켜진것으로 판단
state: "{{ not is_state('climate.geosil_eeokeon', 'off') }}"
turn_on:
- action: climate.turn_on
target:
entity_id: climate.geosil_eeokeon
turn_off:
- action: climate.turn_off
target:
entity_id: climate.geosil_eeokeon
wifi 모듈이 없는 에어컨 일 경우 모뎀 모듈을 추가 설치하셔도되고
도어센서를 사용해서 켜짐상태를 판단하셔서 위와같이 스위치 생성하시면 됩니다.
그리고 대쉬보드에서 Simple Timer Card 추가 하시면 아래와 같이 개별 카드로 제어하실수 있습니다.

'스마트홈 IoT 월드 > 스마트홈 자동화' 카테고리의 다른 글
| 세탁기, 건조기, 세탁물 알림 자동화 (고급편) (1) | 2026.01.05 |
|---|---|
| 홈어시스턴트에서 Node-RED 사용해보기: 웹훅을 이용한 재실 자동화 (1) | 2025.07.09 |
| 시하스 카운터 센서를 HA에서 더 편하게 사용 하게 해주는 블루프린트 (0) | 2025.04.28 |
| 컴퓨터 켜기 자동화의 끝판왕 (WOL, AOS, 비콘) (0) | 2025.03.19 |
| HA 가상스위치를 사용하여 구글홈 앱 스마트하게 사용하기 3탄 (0) | 2025.03.11 |