사용기 혹은 연동기가 되겠다.

Xiaomi-Clearglass-Air-Detector

출처: https://www.xiaomitoday.com/xiaomi-clearglass-air-detector-unboxing/

이 제품이다. 색상은 위 이미지인 Graphite와 White 색상이 있는데, 액정있는 제품들은 블랙이 액정과의 일체감이 높다는 판단으로 Graphite로 구매를 했다.

1월 마지막 주쯤에 주문을 했고, 2월 20일 배송 받았다. 알리에서 Graphite 색상으로 재고가 있는 판매자 중 가장 저렴한 가격인 129.99 달러에 주문을 했었다. 며칠 뒤 판매자로부터 메시지가 왔는데 5 달러를 추가 결제해달라고 했다. 취소할까 고민을 했었지만, 중국 내 유통가 799 위안인 것과 다른 판매자들이 135달러 보다 더 비싼 금액으로 판매 중인 것들이 많은 듯 해보여서 추가 결제를 했다. 어차피 사용해 보고 싶어서.
그랬더니 설 연휴쯤 배송이 시작되었던 것 같다.

찌그러진 제품 박스
튀는 USB-C 전원 케이블

무튼 배송을 받고 포장을 뜯었다. 이미지로만 봤어서 크기를 짐작하지 못했었는데 생각보다 작다. 액정의 사이즈가 아이폰 X의 절반 크기만하다. 액정의 뒤편으로 센서와 배터리 전원 등의 장비들이 있는 곳이 더 크지만 제품 홍보 이미지로만 가늠했었던 크기보다 훨씬 작다. 전원 어댑터는 없으며 빨간색 USB-A - USB-C 케이블이 들어있다.

박스 기능 소개

기능은 PM2.5, CO2, tVOC, 상대습도, 온도 측정이 가능하다. 기기가 인터넷에 연결되어 외부 기온을 가져올 수 있고, Clearglass 앱과 연동되고 Xiaomi의 Mi Home 앱과 연동이 가능하다.
뒤쪽에는 USB-C 단자가 있으며 충전하여 포터블(모바일)로 사용 가능하다.

지원 언어

처음 전원을 켜면 언어 설정이 나온다. 중국어(번체, 간체?)와 영어가 지원된다. 영어로 선택하고 넘어가면, WIFI를 설정이 가능하다. 설정이 끝나면...

메인 화면
시간/날씨 정보

첫 화면에서 PM 2.5 값이 메인으로 보여지고, 숫자 옆 그래프 모양의 버튼을 누르면 기록 화면으로 넘어간다. 화면을 옆으로 넘기면 현재 시간와 날씨를 확인할 수 있다. WIFI를 연결하고 자동으로 detect되도록 하였더니 저 도시로 나왔다. 설정에서 시간대와 지역을 수동으로 설정 가능하다. AQI는 중국 내에서만 지원이 되는 것인지 나오지 않았다. 다음 화면은 설정, 그 다음은 앱과 연동하도록하는 안내 화면이다.
일정시간이 지나면 화면보호기로 넘어가도록 할 수 있고, 애플워치의 인포그래프 같은 화면다. 아날로그 시계화면과 센서값들을 모두 확인 가능하다.

PM 2.5의 기준은 중국 기준과 US 기준을 선택할 수 있다. 위 사진의 아마 중국 기준으로 설정되어 있을 때라 45ug/m3이 Good으로 표현되었을 것이다. US 기준을 선택하면 약간 나쁨으로 나온다.

센서의 리포팅은 실시간이다. 적어도 화면이 켜져 있는 상황에는.. 사용 설명서에는 중국어로만 되어있어 정확한 기능을 알 수가 없다.
화면이 켜져 있는 동안에는 초단위로 계속 바뀌고 있으며, 화면이 꺼져 있는 상황에서도 Mi Home앱에서나 miio(Mi Connector)로 계속 리포팅이 되긴한다. 배터리가 부족한 상황이나 화면이 오랫동안 꺼져있다면 어떻게 될지 모르겠다.

tVOC값은 아직 추정 중이고, 다른 공기질 센서가 없어서 정확도는 판단할 수 없었다. 다다음주 쯤에 DIY로 공기질 센서를 만들 예정인데 그때쯤에서 센서값을 비교해볼 수 있을 것 같다.

이제 내가 사용하고 있는 Hubitat으로 연동하기 위해, 신짱님께서 이 제품의 보급형(?) 모델인 Mi Multifunction Air Monitor(cgllc.airmonitor.b1) 용 DTH를 이미 만들어두셔서 이걸 활용하면 된다.

Mi Connector App 코드에서 addDevice 함수 안쪽에

    } else if (params.type == "chuangmi.ir.v2") {
        dth = "Xiaomi Remote";
        name = "Xiaomi Remote";
    } else if (params.type == "cgllc.airmonitor.s1") {
        dth = "Xiaomi Air Detector";
        name = "Clearglass Air Detector"
    } else if 

type이 cgllc.airmonitor.s1인 경우 Xiaomi Air Detector Driver로 추가할 수 있도록 조건을 추가한다.

Driver 코드는 GitHub에서 복사하여 추가한다.
코드 중에 physicalgraphhubitat으로 바꾸고, capability 중에 Hubitat에서 지원하지 않는 Air Quality Sensor, Tvoc Measurement, Dust Sensor 를 지운다. 그리고 리포팅 되는 기온 정보가 HE와 완벽하게 호환되지 않아서, 20 C에서 20이 되도록 문자열을 자를 수 있도록 수정한다. setStatus() 함수 일부분을 아래처럼 수정하고, callback() 함수의 부분도 수정이 필요하다.

    case "temperature":
        sendEvent(name:"temperature", value: params.data[0..-3] as float)
        break;

그리고 토큰을 추출한다. 토큰을 추출한 뒤에 Mi Connector에 IP와 토큰을 등록해준다. Mi Connector에서 모델명은 cgllc.airmonitor.s1으로 나타난다. 위에서 App코드에 추가한 모델명이다. 자동으로 추가되거나(?) Hubitat 등록하기 위해 Add Device[ST] 메뉴에서 등록하면 된다.

HE의 Device state

이렇게 상태값이 나타날 것이다. 아직 HE에서 PM2.5나 VOC등의 Capability가 지원안되어서 webCore/Homebridge로 연동이 완벽히 안될 것이다. (다른 플랫폼 연동은 아직이다.)
신짱님께서 알람용으로 만들어두신 설정값도 테스트해보지 않았다.
Capability는 HE의 업데이트를 기다려야 한다.

아직은 이 정도까지 연동해보았고 심층적인 사용처와 연동은 좀더 고려해봐야겠다.