본문 바로가기

카테고리 없음

샤오미 스마트 선풍기 Home Assistant에 추가하기

2024년 여름의 시작

여름이 되어 묵혀두었던 샤오미 스마트 선풍기를 꺼냈다.
내가 사용하는 선풍기는 아주 오래전에 구입한 'Smartmi 스탠드 선풍기 3'인데, 이때는 한국에 수입이 되기도 훨씬 전이었고 중국 직구로 구입했었다.
 
처음에는 mi home 에서 와이파이로 연결하여 잘 사용하다가 어느 순간 한국 지역에서의 사용을 금지시켰다. (왜일까? 무섭..) 다시 중국 서버로 등록하여 잘 사용했지만 어느 순간부터 중국서버 우회도 막히곤 하였다.
 
근데 앱에서 이거 막는것도 좀 느려서 앱 키자마자 빠르게 조작하면 짧게나마 사용 가능하기도 했다ㅎㅎ
위젯 설정은 또 안막히기도 했고..ㅎ
 
매년 여름마다 이런저런 우여곡절이 있었는데 올해 다시 등록해 보니 이제 한국에서도 공식 지원을 하는 것 같다. UI도 예뻐지고 사용성도 좋아지고 한국 서비스에도 힘을 쓰고 있는 게 느껴졌다.


이전 UI


변경된 UI


근데 번역은 더 이상해졌다? 번역기를 돌렸나보다.
 

올해 여름맞이 선풍기 삽질로는 집안에 구축한 home assistant에 연동해보고자 한다.
물론 샤오미에서 open api를 제공한다거나, HA를 공식 지원하지 않는다.
믿을 건 구글링과 나보다 먼저 삽질한 분들의 글을 찾아보는 것.. 역시나 구글링은 나를 실망시키지 않았다. chat gpt 분발해라!

 

지원 모델 확인하기

 
멋지게도 커스텀 컴포넌트를 만드신 분이 있다. 여기서 지원하는 모델은 아래와 같다.
내가 사용하는 선풍기는 명칭이 'Smartmi Standing Fan 3'이고 모델명은 'zhimi.fan.za5' 이다.

Name Model Model no. Specs
Pedestal Fan Fan V2 zhimi.fan.v2    
Pedestal Fan Fan V3 zhimi.fan.v3    
Pedestal Fan Fan SA1 zhimi.fan.sa1    
Pedestal Fan Fan ZA1 zhimi.fan.za1    
Pedestal Fan Fan ZA3 zhimi.fan.za3    
Pedestal Fan Fan ZA4 zhimi.fan.za4 ZLBPLDS04ZM  
Smartmi Standing Fan 3 zhimi.fan.za5    
Pedestal Fan Fan 1C dmaker.fan.1c    
Pedestal Fan Fan P5 dmaker.fan.p5    
Pedestal Fan Fan P8 dmaker.fan.p8    
Pedestal Fan Fan P9 dmaker.fan.p9    
Pedestal Fan Fan P10 dmaker.fan.p10    
Mijia Pedestal Fan dmaker.fan.p11 BPLDS03DM
2800mAh, 24W, <=58dB
Smart Standing Fan 2 Pro dmaker.fan.p33 BPLDS03DM
2800mAh, 24W, <=58dB
Pedestal Fan Fan P15 dmaker.fan.p15    
Mi Smart Standing Fan 2 dmaker.fan.p18 BPLDS02DM
AC, 15W, 30.2-55.8bB
Rosou SS4 Ventilator leshow.fan.ss4    
Xiaomi Smart Tower Fan dmaker.fan.p39 BPTS01DM 22W, <=63dB

 
지원 모델은 아래 github repository의 README.md에서 가져온 것이다.
 
 

custom_components 추가하기

https://github.com/syssi/xiaomi_fan

GitHub - syssi/xiaomi_fan: Xiaomi Mi Smart Fan integration for Home Assistant

Xiaomi Mi Smart Fan integration for Home Assistant - syssi/xiaomi_fan

github.com

 
 
위의 깃허브의 custom_components/xiaomi_miio_fan 안의 파일들을 home assistant의 custom_components/xiaomi_miio_fan 경로 안에 모두 넣어준다.
참고로 HA에 Code Server를 설치하여 사용하면 편리하다.
 

 
 
 
 
 

선풍기 token과 ip 주소 알아내기

선풍기를 등록하려면 공유기에 연결된 ip 주소와 기기 token을 알아야 한다.
ip는 여러 가지 방법으로 어렵지 않게 알아낼 수 있지만 token은 샤오미 앱에서 제공해주지 않는다.
정확히는 이전 버전 앱에서는 제공해 주었지만 이제는 보여주지 않는다. 그렇다고 찾지 못할 것인가?
 
아래 github에 xiaomi 계정으로 로그인하여 필요한 정보들을 추출해 내는 파이썬 스크립트가 있다.
 
https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor

GitHub - PiotrMachowski/Xiaomi-cloud-tokens-extractor: This tool/script retrieves tokens for all devices connected to Xiaomi clo

This tool/script retrieves tokens for all devices connected to Xiaomi cloud and encryption keys for BLE devices. - PiotrMachowski/Xiaomi-cloud-tokens-extractor

github.com

 
 
 
파이썬 코드를 실행하면 본인의 선풍기 정보를 확인할 수 있다. 여기서 서버를 입력하지 않고, 그냥 엔터를 누르면 전부 다 확인할 수 있다.

 
 
 

configuration.yaml에 선풍기 추가

 
이제 알아낸 정보를 바탕으로 configuration.yaml 에 아래와 같이 fan을 추가한다. 이후 HA를 재부팅해줘야 한다.

configuration.yaml

 
 
개발자 도구에서 fan.{자신의id} 가 나오면 기기 연결 성공이다.

 
 
 

 

Xiaomi Fan Lovelace Card 플러그인 설치

 
이제 대시보드에 선풍기를 추가하고 싶어 진다. 이것 역시 능력자분들이 아름다운 선풍기 카드를 만들어둔 게 있다.
 
hacs에서 Xiaomi Fan Lovelace Card 플러그인을 다운로드할 수 있다. (깃허브 링크)
 

 
 
여기까지 되었으면 HA 재부팅을 한번 더 해준다.
 
 
 

대시보드에 Xiaomi Fan Lovelace Card 추가

플러그인을 설치하며 보았겠지만 이제 아래와 같이 추가할 수 있게 된다.

entity: fan.entity_id
name: Fan Name
type: "custom:fan-xiaomi"
platform: xiaomi_miio_airpurifier

 

비주얼 편집기 화면

 

코드 편집기 화면

 
 
짜잔~ 잘 추가된 것을 볼 수 있다.

선풍기 추가 완료된 모습

 
 
아쉽게도 내 선풍기 모델에서는 자연풍과 타이머는 지원이 안 되는 것 같은데, 전원이나 회전은 모두 동작하니 나머진 자동화를 활용하여 사용하면 될 것 같다.
 
 
퇴실 자동화에 붙여놓으니까, 몸만 나가면 전등, tv, 플러그들과 함께 이젠 선풍기도 같이 꺼진다!
이렇게 샤오미 선풍기 삽질기 끝!