스마트 장치를 HomeKit에 연결하는 방법 (Raspberry Pi 사용)

0
1096
Homekit 로고가있는 라즈베리 파이
라즈베리 파이 재단, 애플

많은 스마트 장비는 Apple HomeKit 지원을 건너 뛰고 Alexa, Google 및 기타 플랫폼과 만 통합합니다. 그러나이 Raspberry Pi 핵을 사용하면 오픈 소스 Homebridge 소프트웨어를 사용하여 모든 스마트 장치에 HomeKit 지원을 추가 할 수 있습니다.

모든 스마트 기기를위한 HomeKit

HomeKit에 올인 한 경우 큰 문제 중 하나는 스마트 장치를 지원하는 스마트 장치의 수입니다. 예를 들어, 저렴한 스마트 전구를지지하는 유일한 것은 HomeKit 지원이 없다는 것입니다. “스마트 전구”에 대한 아마존의 선택은 TECKIN의 4 개 팩으로,이 문서를 작성할 때 단일 LIFX 전구보다 약 $ 40 정도입니다.

투야 스마트 라이트

물론, 그들은 LIFX만큼 프리미엄이 아닙니다. 색상이 생생하지 않고 화장실에서 들리는 윙윙 거리는 소리가 들리지만 팝 10 달러에 매우 저렴한 가격입니다.

그러나 주요 문제는 HomeKit 지원이 없다는 것입니다. Google Home, Alexa, IFTTT 및 제조업체의 앱과 함께 작동하는 것은 완전히 바보가 아닙니다. TECKIN 스마트 전구 만있는 사람에게는 좋습니다.

그러나 HomeKit에서 액세스 할 수 없으므로 홈 앱, 제어 센터의 위젯 또는 Siri에서 제어 할 수 없습니다. 또한 다른 브랜드의 전구가있는 ​​장면에 포함하거나 자동화에서 사용할 수 없습니다. HomeKit에 이미 투자 한 경우, 이는 아마도 거래 중단 일 가능성이 높습니다.

Homebridge 만나기

운 좋게도 이러한 특정 전구를 훨씬 더 유용하게 만드는 해킹이 있습니다. HomeKit API를 사용하면 HuPhilips Hue와 같은 브리지라고하는 장치가 다른 프로토콜에서 작동하는 자식 장치를 연결할 수 있습니다. 브리지를 HomeKit에서 장치로 추가하기 만하면 연결된 각 조명이 HomeKit에 등록됩니다. 조명 업데이트를 요청할 때마다 전화기가 브리지와 통신하고 브리지가 조명과 통신합니다.

따라서 브리지는 한 API에서 다른 API로 정보를 중계합니다. 인터넷을 통해 TECKIN 전구를 제어 할 수 있기 때문에 독점 하드웨어가 필요없이 소프트웨어만으로 HomeKit에 전구를 연결할 수 있습니다.

Raspberry Pi를 둘러싼 경우 ($ 5 $ Pi Zero는 괜찮음) Homebridge라는 프레임 워크가있는 브리지로 설정할 수 있습니다. 이 경량 NodeJS 애플리케이션은 HomeKit API를 에뮬레이트하고 HomeKit이 아닌 스마트 디바이스로 요청을 전달합니다.

기본적으로 Pi에서 실행하고 각 'dumb'기기를 홈 앱에 추가합니다. Home 앱 또는 Siri를 통해 전구를 제어하려고하면 Homebridge가 장치와 통신합니다. 설정 한 후에는 장치가 처음에 HomeKit을 지원 한 것과 같습니다.

이를 위해서는 장치가 항상 Homebridge를 실행해야하므로 랩톱에 설치할 것이 아닙니다. Raspberry Pi가 이상적이지만 오래된 장치가있는 경우 항상 실행되는 서버 또는 데스크톱으로 용도를 변경할 수 있습니다.

Homebridge는 프레임 워크이며 플러그인으로 확장 할 수 있습니다. 커뮤니티 지원이 상당히 크므로 특정 스마트 기기에 홈 브릿지 플러그인이있어이를 지원할 가능성이 높습니다. 기기에 플러그인이 없지만 스마트 기기에 API가 있고 기술에 정통한 사용자라면 직접 작성할 수 있습니다.

그러나 대부분의 사람들에게 설정은 약간의 구성과 함께 Homebridge와 장치의 브랜드 플러그인을 설치하는 것입니다. 커맨드 라인을 사용할 수 있고 시간이 약간 있으면 상당히 쉽습니다.

Homebridge 설치 및 구성

Homebridge는 NodeJS 앱이므로 설치해야합니다 node 과 npm 그것을 사용하십시오. 컴퓨터가 Linux를 실행하는 경우 패키지 관리자에서 얻을 수 있습니다.

Ubuntu에서 다음을 입력하여 노드 저장소를 수동으로 설정 한 다음 설치해야합니다. nodejs:

curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
sudo apt-get install -y nodejs

그렇지 않으면 특정 OS에 설치하는 방법에 대한 정보는 노드 다운로드 페이지를 참조하십시오.

Linux를 사용하는 경우 아래와 같이 일부 종속성을 설치해야합니다.

sudo apt-get install libavahi-compat-libdnssd-dev

이후, Homebridge를 통해 전 세계적으로 Homebridge를 설치할 수 있습니다 npm, 아래 그림과 같이:

sudo npm install -g --unsafe-perm homebridge

Homebridge는 프레임 워크 일 뿐이므로 필요한 브랜드 플러그인을 설치하려고합니다. 예를 들어 TECKIN 전구의 경우 플러그인은 homebridge-tuya-web또한 전 세계에 설치됩니다.

다음을 입력하십시오.

npm i homebridge-tuya-web -g

모든 것이 설치되면 실제로 사용할 수 있습니다! Homebridge를 한 번 실행하고 모든 것을 초기화하려면 다음을 입력하십시오.

homebridge

구성 부족으로 인해 불만을 제기 할 수 있습니다. 기본 디렉토리는 ~/.homebridge/을 사용할 수 있지만 -U 당신이 그것을 이동하려는 경우 매개 변수.

이 폴더에 새 JSON 구성 파일을 작성하려면 다음을 입력하십시오.

nano ~/.homebridge/config.json

사용하는 플러그인에 관계없이 다음 기본 구성이 필요합니다.

{
  "bridge": {
    "name": "Homebridge",
    "username": "CC:22:3D:E3:CE:30",
    "port": 51826,
    "pin": "031-45-154"
  },

  "description": "Custom HomeBridge Server",

  "ports": {
    "start": 52100,
    "end": 52150,
  },

  "platforms": (

  )
}

이렇게하면 다른 장치에 할당 할 수있는 기본 포트, 이름, PIN 및 포트 범위로 Homebridge가 구성됩니다.

빈 내부 platforms 각 플러그인에 대해 구성을 배치합니다. 각 플러그인의 GitHub 페이지에서 이에 대한 지침과 예제를 찾을 수 있어야합니다.

아래 예에서 homebridge-tuya-web TECKIN 전구용 플러그인은 전구 앱의 API에 연결하기위한 사용자 이름과 비밀번호를 알고 싶어합니다.

  "platforms": (
     {
       "platform": "TuyaWebPlatform",
       "name": "TuyaWebPlatform",
       "options":
         {
           "username": "username",
           "password": "password",
           "countryCode": "1",
           "platform": "smart_life",
           "pollingInterval": 10
         }
     }
   )

구성이 완료되면 Homebridge를 사용할 수 있습니다. 다시 실행하면 터미널에 축소 할 수있는 거대한 QR 코드가 표시됩니다. Home 앱으로이를 스캔하여 연결된 모든 장치와 HomeKit에 추가하십시오.

QR 코드 입력 터미널

Homebridge는 플러그인을로드하고 찾은 각 장치에 대한 메시지를 화면에 기록해야합니다. 추가 한 후 HomeKit에서 모두 볼 수 있으며 모든 기능을 수행해야합니다.

LIFX 전구에 비해 약간의 지연이 나타났습니다. 전구가 API가 아닌 직접 제어되기 때문일 수 있습니다. 처음에는 전구에 흰색과 따뜻한 흰색이 올바르게 표시되지 않았지만 약간 조정 한 후 적절한 장면을 설정할 수있었습니다.

언제든지 자체 앱에서 장치를 구성하고 홈 앱이 업데이트 될 때까지 기다린 다음 사전 구성된 구성으로 HomeKit에서 장면을 설정할 수 있습니다.

Homebridge를 다시 추가해야하는 경우 persist/ config 디렉토리에 폴더를 넣은 다음“Bridge”탭 아래 연결된 전구 설정에서 HomeKit에서 브리지를 제거하십시오.

홈 브리지를 서비스로 추가

Homebridge를 항상 실행하려면 충돌이 발생하거나 Raspberry Pi가 다시 시작될 때 홈 브릿지를 다시 시작하도록 구성해야합니다. 유닉스 서비스를 통해이를 수행 할 수 있습니다. Homebridge가 의도 한대로 작동하는지 확인한 후에 설정하십시오.

먼저 새로운 서비스 사용자 인 homebridge:

sudo useradd -M --system homebridge

비밀번호를 설정하십시오.

sudo passwd homebridge

다음으로 homebridge개인 홈 디렉토리 외부의 구성. /var/lib/homebridge/ 괜찮을거야:

sudo mv ~/.homebridge /var/lib/homebridge/

사용하는 사람이 homebridge 해당 디렉토리 및 모든 하위 폴더의 소유권이 있습니다.

sudo chown -R homebridge /var/lib/homebridge/

완료되면 서비스를 만들 수 있습니다. 이렇게하려면이라는 새 파일을 만드십시오. homebridge.service 에 /etc/systemd/system/:

sudo nano /etc/systemd/system/homebridge.service

그런 다음 다음 구성을 붙여 넣습니다.

(Unit)
Description=Homebridge service
After=syslog.target network-online.target

(Service)
Type=simple
User=homebridge
ExecStart=/usr/bin/homebridge -U /var/lib/homebridge
Restart=on-failure
RestartSec=10
KillMode=process


(Install)
WantedBy=multi-user.target

서비스 데몬을 다시로드하여 변경 사항으로 업데이트하십시오.

sudo systemctl daemon-reload

이제 서비스를 활성화 할 수 있어야합니다 (부팅시 실행되도록 설정).

sudo systemctl enable homebridge

그리고 그것을 시작하십시오 :

sudo systemctl start homebridge

서비스 구성에서 발생하는 오류를 디버그해야하는 경우 다음을 입력하여 서비스의 로그를 볼 수 있습니다.

journalctl -fn 50 -u homebridge