YOGYUI

광교아이파크::조명 Apple 홈킷 연동 (5) 본문

홈네트워크(IoT)/광교아이파크

광교아이파크::조명 Apple 홈킷 연동 (5)

요겨 2021. 1. 1. 04:13
반응형

[5] Homebridge 연동

Homekit에서 커스텀 악세서리 다루고자할 때 최고의 솔루션은 Homebridge라고 생각한다

https://homebridge.io/

 

Homebridge

Homebridge adds HomeKit support to your non-HomeKit smart home devices.

homebridge.io

왠만한 스위치류 및 센서류 제어랑 관련된 기능은 입맛에 맞는 플러그인 검색해서 깔고 configuration만 잘 해주면 된다

 

보통 집안 조명 제어는 dimmer 계열 월패드나 스위치 모듈을 따로 사서 장착하는 경우가 많은데, 나는 기존 홈네트워크 시스템 HW는 최대한 건드리지 않는 방향으로 방향을 잡았기 때문에 (전세다...) 기존 기능, 즉 형광등 끄기/켜기만 되는 플러그인을 찾기로 결정

 

구글링 좀 해보니 homebridge-http-switch 플러그인이 제일 적당해보인다

https://www.npmjs.com/package/homebridge-http-switch

 

homebridge-http-switch

Powerful http switch for Homebridge

www.npmjs.com

  • On, Off 명령 및 Status pulling만 구현하면 스위치 기능 동작 가능

  • HTTP 방식으로 통신: Flask 서버와 100% 연동 가능

  • npm 문서화 잘되어있음

Homebridge 페이지 - 플러그인 가서 검색 후 설치해주자 (@supereg)

homebridge plugin 설치

Config 파일은 별도로 platform 추가할 필요없이 다음과 같이 accessories 리스트를 추가해주면 된다

  • Status 표시할 지 여부 결정 (default: 'Stateful', 'Stateless' 선택 시 단순한 택트스위치처럼 동작)

  • On 시 호출할 url

  • Off 시 호출할 url

  • Status Pulling 시 호출할 url, 해당 url은 body로 1 혹은 0을 문자열로 리턴해주면 된다 

status url 라우팅을 위해 앞서 구현한 app.py에 다음 코드를 추가하자

@app.route('/light/status', methods=['GET'])
def light_status():
    global light_on
    return "{}".format(int(light_on))

홈브릿지의 config.json 중 "accessories" 리스트에 다음과 같이 아이템을 한 개 추가

"accessories": [
        {
            "accessory": "HTTP-SWITCH",
            "name": "Test Switch",
            "switchType": "stateful",
            "onUrl": "http://localhost:9999/light/on",
            "offUrl": "http://localhost:9999/light/off",
            "statusUrl": "http://localhost:9999/light/status"
        },

 

이제 홈브릿지를 재시작하고 초기화 로그에서 다음과 같은 메시지를 볼 수 있으면 액세서리 등록 성공!

accessory 등록 성공

홈브릿지를 추가해둔 아이폰이나 아이패드의 '홈' 어플을 열어보면 스위치가 한개 추가된 것을 볼 수 있다

(홈브릿지 방을 '현관'으로 설정해둬서 스위치도 자동으로 '현관'에 배치되었다)

아이폰 - 스위치 액세서리 등록 확인
아이패드 - 스위치 액세서리 등록 확인

모바일 기기로 동작이 되는지 테스트해보자

아이패드 홈 앱 액세서리 조명 제어 테스트

애플 모바일 기기로 제어가 잘 되는 것을 확인!

 

[시리즈 링크]

광교아이파크::조명 Apple 홈킷 연동 (1)

광교아이파크::조명 Apple 홈킷 연동 (2)

광교아이파크::조명 Apple 홈킷 연동 (3)

광교아이파크::조명 Apple 홈킷 연동 (4)

광교아이파크::조명 Apple 홈킷 연동 (5)

광교아이파크::조명 Apple 홈킷 연동 (6)

광교아이파크::조명 Apple 홈킷 연동 (7)

반응형