본문 바로가기
IOT스마트홈 만들기 (Home Assistant)/zigbee2mqtt 호환 기기 소개

[z2m] zigbee 버튼 사용기 - Aqara wireless switch

by ProjectDH 2020. 10. 30.

제 메인 IOT 플랫폼은 Home Assistant 입니다. HA와 관련된 기초 팁과 기기리뷰들을 앞으로 작성해볼까합니다.

 

오늘은 샤오미 아카라 지그비 버튼에 대해 소개하고 직접 설정해보겠습니다.

이 제품입니다. 양면테이프가 부착되어 있어서 설치가 너무~ 쉽습니다. 이사갈 때 이 버튼만 그냥 떼어가면 됩니다! 정말 쉽죠?

저는 라즈베리파이4에 설치된 z2m에 등록해서 사용할겁니다.

www.zigbee2mqtt.io/devices/WXKG12LM.html

 

Xiaomi WXKG12LM control via MQTT

Integrate your Xiaomi WXKG12LM via Zigbee2MQTT with whatever smart home infrastructure you are using without the vendors bridge or gateway.

www.zigbee2mqtt.io

참고로 저는 CC2531 동글을 사용합니다. 지그비 입문자가 쓰기에 적당한 동글이더라고요.

 

 

zigbee2mqtt를 새 기기 등록 허용으로 바꾸고 기기를 페어링모드로 전환(길게 페어링 버튼 누르고있으면 됨)을 시켰습니다.

 

한번에 붙었습니다.

 

mqtt에 zigbee2mqtt/<FriendlyName>이 토픽에 값이 올라옵니다. FriendlyName을 Eddy_button으로 설정하였습니다.

 

버튼을 누르면 다음과 같이 mqtt에 올라옵니다.

 

한 번 누르면 {"action":"single","battery":91,"click":"single","linkquality":47,"voltage":2985}

두 번 누르면 {"action":"double","battery":91,"click":"double","linkquality":47,"voltage":2985}

 

여기서 click이라는 값만 불러올겁니다. 즉 몇 번 눌렸는지 그 값만 불러와서 자동화 트리거로 이용하면 됩니다.

아래는 제가 작성한 자동화 예제입니다. (한 번 버튼 클릭하면 스위치 값 반전)

스위치 값 반전 이란?: (On이였다면 Off로, Off였다면 On 으로 값을 변경) 즉, 꺼짐과 켜짐 상태간의 전환입니다.

 

- alias: Eddy_button_single

  trigger:

    platform: mqtt

    topic: "zigbee2mqtt/Eddy_button"

  condition:

  - condition: template

    value_template: "{{ trigger.payload_json.click == 'single' }}"

  action:

    service: switch.toggle

    entity_id: switch.스위치엔티티

 

Eddy_button대신에 z2m에서 설정한 FriendlyName으로 바꿔주시고 스위치엔티티에만 대상을 잘 적으시면

두 번 눌렀을 때로 하고싶다면 single 대신 double을 적으면 되겠습니다.

 

한 번 누르면 플러그1 스위치 값 반전, 두 번 누르면 플러그2 스위치 값 반전으로 설정했습니다.

 

혹시라도 버튼을 눌러도 반영이 없거나 너무 느리다 싶으면 z2m 공식 사이트에 있는 예제 코드를 활용해서 해보는걸 추천합니다.

www.zigbee2mqtt.io/integration/home_assistant.html

 

Home Assistant

📘 Zigbee2mqtt documentation

www.zigbee2mqtt.io

오늘 설정할 때는 mqtt를 트리거로 직접 사용했지만, Home Assistant에 센서를 추가하고 센서값 상태를 트리거로 설정하는 방법도 있습니다.

 

다음에는 Mijia 버튼 사용기를 올릴 예정인데 그때 다른 방법으로 자동화 트리거를 설정해보겠습니다.

감사합니다.

 

작성한 코드 스크린샷:

 

#EddyLab님이 제품을 지원해주셨습니다.

댓글