Muitos dispositivos inteligentes ignoram o suporte do Apple HomeKit e se integram apenas com Alexa, Google e outras plataformas. Com este hack do Raspberry Pi, no entanto, você pode adicionar suporte a HomeKit a qualquer dispositivo inteligente com o software Homebridge de código aberto.
Índice
HomeKit para qualquer dispositivo inteligente
Se você está all-in no HomeKit, um grande problema é como poucos dispositivos inteligentes o suportam. Por exemplo, a única coisa que impede algumas lâmpadas inteligentes de baixo custo é a falta de suporte para HomeKit. A Escolha da Amazon para uma “Lâmpada Inteligente” é um pacote de quatro da TECKIN , que, no momento, custa cerca de US $ 40 – menos do que uma única lâmpada LIFX.
Claro, eles não são tão premium quanto o LIFX; as cores não são tão vibrantes e emitem um zumbido audível no banheiro, mas por US $ 10 o pop, têm um valor bastante imbatível.
O principal problema, porém, é que eles não têm suporte para HomeKit. Eles não são totalmente burros – eles funcionam com o Google Home, Alexa, IFTTT e o aplicativo do fabricante. Eles são bons para quem tem apenas lâmpadas inteligentes TECKIN.
No entanto, como você não pode acessá-los a partir do HomeKit, você não pode controlá-los a partir do app Home, do widget no Centro de Controle ou do Siri. Você também não pode incluí-los em cenas com lâmpadas de outras marcas ou usá-los em automações. Se você já investiu no HomeKit, isso provavelmente é um obstáculo.
Conheça Homebridge
Felizmente, há um hack que torna essas lâmpadas específicas muito mais úteis. A API HomeKit permite que dispositivos chamados pontes, como este da Philips Hue , conectem dispositivos filhos que operam em outros protocolos. Você simplesmente adiciona a ponte como um dispositivo no HomeKit, e ela registra cada luz conectada a ela no HomeKit. Sempre que você faz uma solicitação para atualizar uma luz, seu telefone fala com a ponte e a ponte fala com a luz.
Portanto, uma ponte apenas retransmite informações de uma API para outra. Como você pode controlar as lâmpadas TECKIN pela Internet, é perfeitamente possível conectá-las ao HomeKit apenas com software – nenhum hardware proprietário é necessário.
Se você tem um Raspberry Pi disponível (um Pi Zero de $ 5 é bom), pode configurá-lo como uma ponte com uma estrutura chamada Homebridge . Este aplicativo NodeJS leve emula a API HomeKit e encaminha solicitações para seus dispositivos inteligentes não HomeKit.
Basicamente, você o executa no Pi e ele adiciona cada dispositivo ‘burro’ ao app Home. Quando você tenta controlar a lâmpada por meio do app Home ou Siri, o Homebridge fala com os dispositivos para você. Depois de configurá-lo, é como se o dispositivo tivesse suporte para HomeKit em primeiro lugar.
Isso requer que o dispositivo execute o Homebridge o tempo todo, portanto, isso não é algo que você instalaria no seu laptop. Um Raspberry Pi é ideal, mas se você tem um dispositivo antigo que pode ser reutilizado como um servidor ou desktop que está sempre em execução, você pode instalá-lo lá.
Homebridge é uma estrutura e você pode estendê-la com plug-ins. Ele tem um grande apoio da comunidade, então há uma boa chance de qualquer dispositivo inteligente provavelmente ter um plug-in Homebridge para adicionar suporte para ele. Se o seu dispositivo não tiver um plug-in, mas seu dispositivo inteligente tiver uma API e você tiver experiência em tecnologia, pode escrever uma você mesmo.
Para a maioria das pessoas, entretanto, a configuração consiste apenas em instalar o Homebridge e o plug-in da marca para o dispositivo, junto com um pouco de configuração. Se você puder usar a linha de comando e tiver um pouco de tempo, é bastante fácil.
Instalando e configurando o Homebridge
Homebridge é um aplicativo NodeJS, então você deve instalá-lo node
e npm
usá-lo. Se sua máquina executa Linux, provavelmente você pode obtê-lo com seu gerenciador de pacotes.
No Ubuntu, você precisa digitar o seguinte para configurar o repositório do Node manualmente e depois instalar nodejs
:
curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash - sudo apt-get install -y nodejs
Caso contrário, você pode consultar a página de download do Node para obter informações sobre como instalá-lo em seu sistema operacional específico.
Se você estiver no Linux, também precisará instalar algumas dependências, conforme mostrado abaixo:
sudo apt-get install libavahi-compat-libdnssd-dev
Depois disso, você pode instalar o Homebridge globalmente por meio npm
, conforme mostrado abaixo:
sudo npm install -g --unsafe-perm homebridge
Você também deseja instalar os plug-ins de marca de que precisa, pois o Homebridge é apenas uma estrutura. Para as lâmpadas TECKIN, por exemplo, o plug-in é homebridge-tuya-web
, que também é instalado globalmente.
Você digitaria o seguinte:
npm i homebridge-tuya-web -g
Depois que tudo estiver instalado, você pode realmente usar a coisa! Digite o seguinte para executar o Homebridge uma vez e inicializar tudo:
homebridge
Ele vai reclamar de falta de configuração, que você tem que criar. O diretório padrão é ~/.homebridge/
, mas você pode usar o -U
parâmetro se quiser movê-lo.
Digite o seguinte para criar um novo arquivo de configuração JSON nesta pasta:
nano ~ / .homebridge / config.json
Independentemente dos plug-ins usados, você precisa da seguinte configuração básica:
{ "ponte": { "nome": "Homebridge", "nome de usuário": "CC: 22: 3D: E3: CE: 30", "porta": 51826, "pin": "031-45-154" }, "descrição": "Servidor HomeBridge personalizado", "portas": { "start": 52100, "fim": 52150, }, "plataformas": [ ] }
Isso configura o Homebridge com uma porta, nome, PIN e intervalo de portas padrão disponíveis para alocar a outros dispositivos.
Dentro da platforms
matriz vazia , você coloca a configuração para cada plug-in. Você deve encontrar instruções e exemplos disso na página GitHub de cada plug-in.
No exemplo abaixo, o homebridge-tuya-web
plug-in para as lâmpadas TECKIN deseja saber meu nome de usuário e senha para se conectar à API para o aplicativo da lâmpada e algumas outras coisas:
"plataformas": [ { "plataforma": "TuyaWebPlatform", "nome": "TuyaWebPlatform", "opções": { "username": "username", "senha": "senha", "countryCode": "1", "plataforma": "smart_life", "pollingInterval": 10 } } ]
Assim que estiver tudo configurado, o Homebridge deve estar pronto para funcionar. Execute-o novamente e seu terminal deve exibir um código QR gigante que pode forçá-lo a diminuir o zoom. Faça a varredura com o aplicativo Home para adicioná-lo e todos os dispositivos conectados ao HomeKit.
O Homebridge carrega seus plug-ins e deve registrar uma mensagem na tela para cada dispositivo que encontrar. Você deve vê-los todos no HomeKit após serem adicionados e devem estar totalmente funcionais.
Eu notei um ligeiro atraso em comparação com minhas lâmpadas LIFX. Provavelmente, isso ocorre porque as lâmpadas são controladas por uma API, e não diretamente. No início, as lâmpadas também não exibiam alguns brancos e brancos quentes corretamente, mas depois de alguns ajustes, fui capaz de configurar as cenas adequadas.
Você sempre pode configurar os dispositivos em seus próprios aplicativos, aguardar a atualização do aplicativo Home e, em seguida, definir a cena no HomeKit com a configuração predefinida.
Se você precisar adicionar o Homebridge novamente, você desejará excluir a persist/
pasta no diretório de configuração e, em seguida, remover a ponte do HomeKit das configurações de qualquer lâmpada conectada na guia “Bridge”.
Adicionando Homebridge como um serviço
Se você deseja que o Homebridge rode o tempo todo, provavelmente desejará configurá-lo para reiniciar se travar ou se o Raspberry Pi reiniciar. Você pode fazer isso por meio de um serviço Unix. Configure isso depois de verificar se o Homebridge está funcionando conforme o esperado.
Primeiro, adicione um novo usuário de serviço, chamado homebridge
:
sudo useradd -M --system homebridge
Defina uma senha:
sudo passwd homebridge
Em seguida, você terá que mover a homebridge
configuração para fora do seu diretório pessoal. /var/lib/homebridge/
deve estar bem:
sudo mv ~ / .homebridge / var / lib / homebridge /
Certifique-se de que a pessoa que está usando homebridge
tenha propriedade desse diretório e de todas as subpastas:
sudo chown -R homebridge / var / lib / homebridge /
Feito isso, você pode criar o serviço. Para fazer isso, crie um novo arquivo chamado homebridge.service
em /etc/systemd/system/
:
sudo nano /etc/systemd/system/homebridge.service
Em seguida, cole a seguinte configuração:
[Unidade] Descrição = serviço Homebridge After = syslog.target network-online.target [Serviço] Tipo = simples User = homebridge ExecStart = / usr / bin / homebridge -U / var / lib / homebridge Reiniciar = em caso de falha RestartSec = 10 KillMode = processo [Instalar] WantedBy = multi-user.target
Recarregue o daemon de serviços para atualizá-lo com suas alterações:
sudo systemctl daemon-reload
Agora, você deve ser capaz de habilitar seu serviço (configurando-o para ser executado na inicialização):
sudo systemctl enable homebridge
E comece:
sudo systemctl start homebridge
Se você precisar depurar erros que surgem da configuração do serviço, poderá visualizar os registros do serviço digitando:
journalctl -fn 50 -u homebridge