2025/07/26

Tuya Zigbee Knob 전등밝기 조절 자동화



z2m에 페어링 후 operation mode를 command로 설정.

event  모드는 일반 무선버튼처럼 사용하는 방식으로 click, double, hold, rotate_right, rotate_left 이벤트를 사용하고 command 모드로 설정하면 toggle, brightness_step(up, down) 이벤트 사용.

또한 command 모드에선 action step size, action transition time 엔티티가 활성화 됨. action step size를 이용해 얼만큼 노브를 돌렸는지 파악해 밝기의 스텝을 조절.


아래 자동화에서 toggle은 거실 전등 모두를 on/off하고 노브는 거실 전등 리스트중 현재 켜져 있는 전등만 밝기를 action step size만큼 올리고 내림.

- id: 버튼-Knob-1st
  alias: 버튼-Knob-1st
  mode: parallel
  triggers:
    - trigger: state
      entity_id: event.knob_1st_action
      to: ~
  conditions:
      - condition: template
        value_template: "{{ trigger.from_state.state != 'unavailable' }}"
  actions:
    - choose:
        - conditions: ##거실 전등 on/off
            - condition: template
              value_template: "{{ trigger.to_state.attributes.event_type == 'toggle' }}"
          sequence:
            - action: light.toggle
              entity_id: light.hue_all
        - conditions: ## 전등 밝기 올림
            - condition: template
              value_template: "{{ trigger.to_state.attributes.event_type == 'brightness_step' and trigger.to_state.attributes.direction == 'up'}}"
          sequence:
            - action: light.turn_on
              data:
                brightness_step_pct: "{{ states('sensor.knob_1st_action_step_size') | int(0) }}"
              target:
                entity_id: >
                  {{ expand([
                    'light.geosildeung1',
                    'light.geosildeung2',
                    'light.geosildeung3',
                    'light.geosildeung4',
                    'light.geosildeung5',
                    'light.geosildeung6',
                    'light.geosiltvdeung',
                    'light.livingroom_mood'
                  ]) | selectattr('state', 'eq', 'on') | map(attribute='entity_id') | list }}
        - conditions: ## 전등 밝기 내림
            - condition: template
              value_template: "{{ trigger.to_state.attributes.event_type == 'brightness_step' and trigger.to_state.attributes.direction == 'down'}}"
          sequence:
            - action: light.turn_on
              data:
                brightness_step_pct: "{{ (states('sensor.knob_1st_action_step_size') | int(0)) * -1 }}"
              target:
                entity_id: >
                  {{ expand([
                    'light.geosildeung1',
                    'light.geosildeung2',
                    'light.geosildeung3',
                    'light.geosildeung4',
                    'light.geosildeung5',
                    'light.geosildeung6',
                    'light.geosiltvdeung',
                    'light.livingroom_mood'
                  ]) | selectattr('state', 'eq', 'on') | map(attribute='entity_id') | list }}


** z2m/설정/Home Assistant Integration/ 에서 Home Assistant experimental event entities를 체크해줘야 event 엔티티 사용 가능해짐.

** 25/08/01 색온도 조절 자동화 추가: https://ntxlds.blogspot.com/2025/08/tuya-knob.html