모든 스마트 장치를 HomeKit에 연결하는 방법(Raspberry Pi 사용)
게시 됨: 2022-01-29많은 스마트 장치가 Apple HomeKit 지원을 건너뛰고 Alexa, Google 및 기타 플랫폼과만 통합됩니다. 그러나 이 Raspberry Pi 해킹을 사용하면 오픈 소스 Homebridge 소프트웨어가 있는 모든 스마트 장치에 HomeKit 지원을 추가할 수 있습니다.
모든 스마트 장치를 위한 HomeKit
HomeKit에 올인하는 경우 한 가지 큰 문제는 이를 지원하는 스마트 장치가 거의 없다는 것입니다. 예를 들어 저렴한 스마트 전구를 가로막는 유일한 것은 HomeKit 지원이 부족하다는 것입니다. Amazon's Choice for a "Smart Light Bulb"는 TECKIN의 4개 팩으로, 이 글을 쓰는 시점에서 가격은 약 40달러로 단일 LIFX 전구보다 저렴합니다.
물론, 그들은 LIFX만큼 프리미엄이 아닙니다. 색상은 생동감이 없고 욕실에서 윙윙거리는 소리를 냅니다. 하지만 10달러에 매우 비할 데 없는 가치입니다.
그러나 주요 문제는 HomeKit 지원이 없다는 것입니다. 그들은 완전히 바보가 아닙니다. Google Home, Alexa, IFTTT 및 제조업체 앱과 함께 작동합니다. TECKIN 스마트 전구만 있는 사람에게 적합합니다.
그러나 HomeKit에서 액세스할 수 없기 때문에 홈 앱, 제어 센터의 위젯 또는 Siri에서 제어할 수 없습니다. 또한 다른 브랜드의 전구가 있는 장면에 포함하거나 자동화에서 사용할 수 없습니다. 이미 HomeKit에 투자한 적이 있다면 이것은 거래 차단기일 가능성이 큽니다.
홈브리지를 만나다
운 좋게도 이러한 특정 전구를 훨씬 더 유용하게 만드는 해킹이 있습니다. HomeKit API를 사용하면 Philips Hue와 같은 브리지라고 하는 장치가 다른 프로토콜에서 작동하는 하위 장치를 연결할 수 있습니다. 브리지를 HomeKit에 장치로 추가하기만 하면 브리지에 연결된 각 조명이 HomeKit에 등록됩니다. 조명 업데이트를 요청할 때마다 전화기는 브리지와 통신하고 브리지는 조명과 통신합니다.
따라서 브리지는 한 API에서 다른 API로 정보를 중계합니다. 인터넷을 통해 TECKIN 전구를 제어할 수 있기 때문에 소프트웨어만으로 HomeKit에 전구를 연결할 수 있습니다. 독점 하드웨어가 필요하지 않습니다.
주변에 Raspberry Pi가 있는 경우(5달러 Pi Zero도 괜찮음) Homebridge라는 프레임워크를 사용하여 브리지로 설정할 수 있습니다. 이 가벼운 NodeJS 애플리케이션은 HomeKit API를 에뮬레이트하고 HomeKit이 아닌 스마트 장치에 요청을 전달합니다.
기본적으로 Pi에서 실행하면 각 '멍청한' 장치가 Home 앱에 추가됩니다. Home 앱이나 Siri를 통해 전구를 제어하려고 하면 Homebridge가 장치와 대화합니다. 설정하고 나면 장치가 처음부터 HomeKit을 지원했던 것과 같습니다.
이를 위해서는 장치가 항상 Homebridge를 실행해야 하므로 랩톱에 설치할 수 없습니다. Raspberry Pi가 이상적이지만 오래된 장치가 있는 경우 항상 실행되는 서버나 데스크톱으로 용도를 변경할 수 있다면 거기에 설치할 수 있습니다.
Homebridge는 프레임워크이며 플러그인으로 확장할 수 있습니다. 상당히 큰 커뮤니티 지원을 받고 있으므로 주어진 스마트 장치에 지원을 추가하는 Homebridge 플러그인이 있을 가능성이 높습니다. 장치에 플러그인이 없지만 스마트 장치에 API가 있고 기술에 정통한 경우 직접 작성할 수 있습니다.
그러나 대부분의 사람들에게 설정은 약간의 구성과 함께 Homebridge 및 장치용 브랜드 플러그인을 설치하는 것입니다. 명령줄을 사용할 수 있고 약간의 시간이 있다면 매우 쉽습니다.
Homebridge 설치 및 구성
Homebridge는 NodeJS 앱이므로 사용하려면 node
와 npm
을 설치해야 합니다. 컴퓨터에서 Linux를 실행하는 경우 패키지 관리자에서 얻을 수 있습니다.
Ubuntu에서 다음을 입력하여 노드 저장소를 수동으로 설정한 다음 nodejs
를 설치해야 합니다.
컬 -sL https://deb.nodesource.com/setup_13.x | sudo -E bash - sudo apt-get install -y nodejs
그렇지 않은 경우 특정 OS에 설치하는 방법에 대한 정보는 Node의 다운로드 페이지를 참조하십시오.
Linux를 사용하는 경우 아래와 같이 일부 종속 항목도 설치해야 합니다.
sudo apt-get 설치 libavahi-compat-libdnssd-dev
이후 아래와 같이 npm
을 통해 Homebridge를 전역적으로 설치할 수 있습니다.
sudo npm install -g --unsafe-perm 홈브리지
Homebridge는 프레임워크일 뿐이므로 필요한 브랜드 플러그인도 설치해야 합니다. 예를 들어 TECKIN 전구의 경우 플러그인은 homebridge-tuya-web
이며 전 세계적으로도 설치됩니다.
다음을 입력합니다.
npm i homebridge-tuya-web -g
모든 것이 설치되면 실제로 사용할 수 있습니다! Homebridge를 한 번 실행하고 모든 것을 초기화하려면 다음을 입력하십시오.
홈브리지
그것은 당신이 만들어야 하는 구성의 부족에 대해 불평할 것입니다. 기본 디렉토리는 ~/.homebridge/
이지만 이동하려는 경우 -U
매개변수를 사용할 수 있습니다.
다음을 입력하여 이 폴더에 새 JSON 구성 파일을 만듭니다.
나노 ~/.homebridge/config.json
사용하는 플러그인에 관계없이 다음과 같은 기본 구성이 필요합니다.
{ "다리": { "이름": "홈브리지", "사용자 이름": "CC:22:3D:E3:CE:30", "포트": 51826, "핀": "031-45-154" }, "설명": "사용자 지정 HomeBridge 서버", "포트": { "시작": 52100, "끝": 52150, }, "플랫폼": [ ] }
이것은 다른 장치에 할당할 수 있는 기본 포트, 이름, PIN 및 포트 범위로 Homebridge를 구성합니다.
빈 platforms
배열 안에 각 플러그인에 대한 구성을 배치합니다. 각 플러그인의 GitHub 페이지에서 이에 대한 지침과 예제를 찾을 수 있습니다.
아래 예에서 homebridge-tuya-web
플러그인은 전구 앱용 API에 연결하기 위해 내 사용자 이름과 비밀번호를 알고 싶어하며 기타 몇 가지 사항을 알고 있습니다.
"플랫폼": [ { "플랫폼": "TuyaWebPlatform", "이름": "TuyaWebPlatform", "옵션": { "사용자 이름": "사용자 이름", "비밀번호": "비밀번호", "국가 코드": "1", "플랫폼": "smart_life", "pollingInterval": 10 } } ]
모든 구성이 완료되면 Homebridge를 사용할 준비가 됩니다. 다시 실행하면 축소할 수 있는 거대한 QR 코드가 터미널에 표시됩니다. Home 앱으로 이것을 스캔하여 HomeKit에 연결된 모든 장치와 추가하십시오.
Homebridge는 플러그인을 로드하고 찾은 각 장치의 화면에 메시지를 기록해야 합니다. 추가된 후 HomeKit에서 모두 볼 수 있어야 하며 완전히 작동해야 합니다.
내 LIFX 전구에 비해 약간의 지연이 있음을 알았습니다. 이는 전구가 직접 제어되지 않고 API를 통해 제어되기 때문일 수 있습니다. 처음에는 전구도 일부 흰색과 따뜻한 흰색을 올바르게 표시하지 않았지만 약간의 조정 후에 적절한 장면을 설정할 수 있었습니다.
항상 자체 앱에서 장치를 구성하고 Home 앱이 업데이트될 때까지 기다린 다음 미리 만들어진 구성으로 HomeKit에서 장면을 설정할 수 있습니다.
Homebridge를 다시 추가해야 하는 경우 config 디렉토리에서 persist/
폴더를 삭제한 다음 "Bridge" 탭 아래 연결된 전구 설정에서 HomeKit의 브리지를 제거합니다.
Homebridge를 서비스로 추가하기
Homebridge를 항상 실행하려면 충돌이 발생하거나 Raspberry Pi가 다시 시작될 때 다시 시작하도록 구성하고 싶을 것입니다. Unix 서비스를 통해 이 작업을 수행할 수 있습니다. Homebridge가 의도한 대로 작동하는지 확인한 후에 설정하세요.
먼저 homebridge
라는 새 서비스 사용자를 추가합니다.
sudo useradd -M --시스템 홈브리지
비밀번호 설정:
sudo passwd 홈브리지
다음으로 홈 homebridge
구성을 개인 홈 디렉토리 외부로 이동해야 합니다. /var/lib/homebridge/
는 괜찮을 것입니다:
sudo mv ~/.homebridge /var/lib/homebridge/
homebridge
를 사용하는 사람이 해당 디렉토리와 모든 하위 폴더의 소유권을 가지고 있는지 확인하십시오.
sudo chown -R 홈브리지 /var/lib/homebridge/
완료되면 서비스를 생성할 수 있습니다. 그렇게 하려면 /etc/systemd/system/
에 homebridge.service
라는 새 파일을 만듭니다.
sudo nano /etc/systemd/system/homebridge.service
그런 다음 다음 구성을 붙여넣습니다.
[단위] 설명=홈브리지 서비스 After=syslog.target network-online.target [서비스] 유형=단순 사용자=홈브리지 ExecStart=/usr/bin/homebridge -U /var/lib/homebridge 재시작=실패 시 RestartSec=10 KillMode=프로세스 [설치] WantedBy=다중 사용자.대상
서비스 데몬을 다시 로드하여 변경 사항으로 업데이트합니다.
sudo systemctl 데몬 다시 로드
이제 서비스를 활성화할 수 있어야 합니다(부팅 시 실행되도록 설정).
sudo systemctl enable homebridge
그리고 시작하세요:
sudo systemctl 홈브리지 시작
서비스 구성에서 발생하는 오류를 디버그해야 하는 경우 다음을 입력하여 서비스에 대한 로그를 볼 수 있습니다.
journalctl -fn 50 -u 홈브리지