Como conectar qualquer dispositivo inteligente ao HomeKit (com um Raspberry Pi)

Logotipo do Raspberry Pi com Homekit
Raspberry Pi Foundation, Apple

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.

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.

Tuya Smart Lights

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.

Recomendado:  Como corrigir problemas de som no Windows 10

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.

Recomendado:  Como excluir sua conta do Telegram

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.

Código QR no Terminal

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.

Recomendado:  Os melhores substitutos para o iniciador de aplicativos do Chrome que em breve será aposentado

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 homebridgeconfiguraçã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