본문 바로가기
스마트홈 IoT 월드/스마트홈 자동화

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

by 레드추파 2025. 12. 18.
728x90
반응형

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

정답은 없지만, 제가 알고 있는 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 추가 하시면 아래와 같이 개별 카드로 제어하실수 있습니다.

 

728x90
반응형