이전에 Home Assistant의 기기를 Homekit에 등록하는 방법을 해봤었는데요.



그런데 말입니다.

제가 샤오미 1세대 로봇청소기를 쓰고 있는데요. 얘는 등록이 안되어 있어요... 

https://www.home-assistant.io/components/homekit/ 에 보면 이유가 나와있는데요.


지원되는 컴포넌트에 vacuum이 없어요.


그래서 좀 다른 접근이 필요해요. 


우리가 할 작업은 가상 스위치를 이용하는 겁니다. 

가상의 스위치를 만들고 그 스위치를 켜면 로봇청소기를 작동시키고, 끄면 집으로 돌아가게 설정을 하는거죠.

스위치에 다음을 추가합니다.

- platform: template
switches:
mivacuum:
friendly_name: ""
value_template: "{{ is_state('vacuum.xiaomi_vacuum_cleaner','cleaning') }}"
turn_on:
service: vacuum.start
data:
entity_id: vacuum.xiaomi_vacuum_cleaner
turn_off:
service: vacuum.return_to_base
data:
entity_id: vacuum.xiaomi_vacuum_cleaner

잠깐 설명하자면 friendly_name 은 사용하고자 할 이름입니다.

value_template은 스위치의 상태를 나타내는데 True면 켜짐이고 False 면 꺼짐이에요.

is_state('vacuum.xiaomi_vacuum_cleaner','cleaning') 는 로봇청소기의 상태가 cleaning 즉, 청소중 인지를 물어보는 명령이에요. 청소 중이면 True 가 되어 켜짐 상태가 되고, 아니면 False 가 되어 꺼짐 상태가 되죠.

밑에 있는 turn_on 은 켜있을 때 할 작업, turn_off 는 꺼져있을 때 작업이에요.


이렇게 저장하고 HA를 재시작하면..


짜잔!! 로봇청소기가 등록이 되었어요. 저걸 키면 로봇청소기가 작동을 하게 됩니다. 


참 쉽죠? 이제 시리에게 "로봇청소기 켜" 로 명령을 할 수가 있어요!!



물론 여기에 좀더 다양한 옵션들을 넣을 수도 있을거예요. 하지만 로봇청소기에 기능은 켜고 끄고말고는 거의 안써서 저렇게만 등록해도 사용하는데 전혀 문제가 없을거예요. 


아직은 연구 중이라서 켜고 끄고만 해뒀는데 기기에 문제가 생겼을때의 처리도 한번 생각을 해봐야 될거 같기도 하더라고요.

그건 차후에 알아보고 수정해 두겠습니다.



요즘 들어 애플 홈킷(Apple HomeKit)에 빠져들어 있습니다.

다만 아직 기기를 지를 시기는 아니라서 지르지는 않고 

레트로파이를 설치해서 오락기로 쓰던 라즈베리파이를 삭제하고 하스비안(Hassbian)을 설치했습니다.


제목의 작업을 하기 위해서는 Home Assistant(이하 HA)가 설치된 운영체제가 필요합니다.

나스에 docker를 이용하여 설치하거나, 저처럼 라즈베리파이에 Hassbian 같은 놈들을 설치해서 쓰더라고요.


제가 쓰게 될 내용은 Hassbian 0.84.1이 기준이 될 겁니다. 

파일의 경로가 다를 수도 있으니 확인을 한 후 수정하기 바랍니다.


Hassbian의 설치는 이전 작성글을 확인해보세요.



HA의 기기들은 아주 쉽게 홈킷으로 등록이 가능한데요.


우선 서버에 파일을 하나 설치해줘야되요.

$ sudo apt install libavahi-compat-libdnssd-dev


그리고 configuration.yaml 파일에 homekit: 만 추가해주면 됩니다.

이렇게요.


간단하죠?


그리고 HA를 재시작하고 홈킷에 등록을 해봅시다.

홈 앱을 실행해봅시다.

   

액세서리 추가를 누르고 "코드가 없거나 스캔할 수 없습니까?" 이거를 누르고 오른쪽 그림에 뜨는 Home Assistant Bridge를 선택합니다.


그럼 8자리 번호를 물어보는데요. HA 설정 페이지에 가면 번호가 떠 있을겁니다. 이렇게요.

입력을 해주면 등록이 완료되고 HA에 등록된 기기들을 홈킷에 등록할 수 있죠.



+ Recent posts