선풍기, 에어컨 대쉬보드 카드 및 자동화 예시

2025 12 18 133209

홈어시스턴트에서 사용할 예쁜 대쉬보드 카드는 어떤것이고 어떻게 자동화해서 쓰면 좋은지

정답은 없지만, 제가 알고 있는 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

2025 12 18 133209

카드 코드

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

템플릿 스위치 생성 코드

/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 추가 하시면 아래와 같이 개별 카드로 제어하실수 있습니다.

2025 12 18 133503

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤