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

Publicados: 2022-01-29
Raspberry Pi com logotipo do Homekit
Fundação Raspberry Pi, Apple

Muitos dispositivos inteligentes ignoram o suporte ao Apple HomeKit e se integram apenas com Alexa, Google e outras plataformas. Com este hack do Raspberry Pi, no entanto, você pode adicionar suporte ao HomeKit a qualquer dispositivo inteligente com o software Homebridge de código aberto.

HomeKit para qualquer dispositivo inteligente

Se você gosta do HomeKit, um grande problema é como poucos dispositivos inteligentes o suportam. Por exemplo, a única coisa que impede algumas lâmpadas inteligentes baratas é a falta de suporte ao HomeKit. A Amazon's Choice 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.

Luzes inteligentes Tuya

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 a pop, eles são um valor bastante imbatível.

O principal problema, porém, é que eles não têm suporte ao HomeKit. Eles não são totalmente burros - eles trabalham com o Google Home, Alexa, IFTTT e o aplicativo do fabricante. Eles são bons para quem só tem lâmpadas inteligentes TECKIN.

No entanto, como você não pode acessá-los no HomeKit, não pode controlá-los no aplicativo Home, no widget no Control Center ou na 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 problema.

Conheça a Homebridge

Felizmente, há um truque que torna essas lâmpadas muito mais úteis. A API HomeKit permite que dispositivos chamados bridges, 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.

Propaganda

Portanto, uma ponte apenas transmite informações de uma API para outra. Como você pode controlar as lâmpadas TECKIN pela Internet, é totalmente possível conectá-las ao HomeKit apenas com software - nenhum hardware proprietário é necessário.

Se você tem um Raspberry Pi por aí (um Pi Zero de US $ 5 é bom), você pode configurá-lo como uma ponte com uma estrutura chamada Homebridge. Esse aplicativo leve e NodeJS emula a API HomeKit e encaminha solicitações para seus dispositivos inteligentes não HomeKit.

Basicamente, você o executa no Pi e adiciona cada dispositivo 'burro' ao aplicativo Home. Quando você tenta controlar a lâmpada pelo aplicativo Home ou Siri, o Homebridge fala com os dispositivos para você. Depois de configurá-lo, é como se o dispositivo tivesse suporte ao HomeKit em primeiro lugar.

Isso requer que o dispositivo execute o Homebridge o tempo todo, portanto, isso não é algo que você instalaria em seu laptop. Um Raspberry Pi é ideal, mas se você tem um dispositivo antigo, pode reaproveitar como um servidor ou desktop que está sempre em execução, pode instalá-lo lá.

O Homebridge é um framework e você pode estendê-lo com plug-ins. Ele tem um suporte de comunidade bastante grande, então há uma boa chance de que qualquer dispositivo inteligente provavelmente tenha um plug-in Homebridge para adicionar suporte a ele. Se o seu dispositivo não tiver um plug-in, mas o seu dispositivo inteligente tiver uma API e você for experiente em tecnologia, poderá escrever um por conta própria.

Propaganda

Para a maioria das pessoas, porém, a configuração é apenas instalar o Homebridge e o plug-in da marca para o dispositivo, juntamente 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

O Homebridge é um aplicativo NodeJS, então você precisa instalar o node e o npm para usá-lo. Se sua máquina roda Linux, você provavelmente pode obtê-lo no seu gerenciador de pacotes.

No Ubuntu, você deve digitar o seguinte para configurar o repositório Node manualmente e instalar o 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 para 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, você pode instalar o Homebridge globalmente por meio npm , conforme mostrado abaixo:

 sudo npm install -g --unsafe-perm homebridge
Propaganda

Você também deseja instalar os plug-ins de marca necessários, 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 em 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:

 ponte

Ele reclamará da falta de configuração, que você precisa criar. O diretório padrão é ~/.homebridge/ , mas você pode usar o parâmetro -U 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",
    "username": "CC:22:3D:E3:CE:30",
    "porta": 51826,
    "pino": "031-45-154"
  },

  "description": "Servidor HomeBridge Personalizado",

  "portas": {
    "iniciar": 52100,
    "fim": 52150,
  },

  "plataformas": [

  ]
}

Isso configura o Homebridge com uma porta padrão, nome, PIN e intervalo de portas disponíveis para alocar a outros dispositivos.

Propaganda

Dentro da matriz de platforms vazia, você coloca a configuração para cada plug-in. Você deve encontrar instruções e exemplos disso na página do GitHub de cada plug-in.

No exemplo abaixo, o plug-in homebridge-tuya-web para as lâmpadas TECKIN deseja saber meu nome de usuário e senha para conectar-se à API do aplicativo da lâmpada e algumas outras coisas:

 "plataformas": [
     {
       "plataforma": "TuyaWebPlatform",
       "name": "TuyaWebPlatform",
       "opções":
         {
           "username": "username",
           "senha": "senha",
           "countryCode": "1",
           "platform": "smart_life",
           "pollingInterval": 10
         }
     }
   ]

Depois que tudo estiver configurado, o Homebridge deve estar pronto para ser usado. Execute-o novamente e seu terminal deve exibir um código QR gigante que pode forçá-lo a diminuir o zoom. Digitalize isso 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 eles devem estar totalmente funcionais.

Eu notei um pequeno atraso em comparação com minhas lâmpadas LIFX. Isso provavelmente 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, consegui 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.

Propaganda

Se você precisar adicionar novamente o Homebridge, você desejará excluir a pasta persist/ 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 o Homebridge como um serviço

Se você deseja que o Homebridge seja executado o tempo todo, provavelmente desejará configurá-lo para reiniciar se ele travar ou se o Raspberry Pi reiniciar. Você pode fazer isso através 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 configuração do homebridge 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 usa o homebridge tenha a 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

E cole a seguinte configuração:

 [Unidade]
Description=Serviço Homebridge
After=syslog.target network-online.target

[Serviço]
Tipo=simples
Usuário=homebridge
ExecStart=/usr/bin/homebridge -U /var/lib/homebridge
Reiniciar = em caso de falha
RestartSec=10
KillMode=processo


[Instalar]
WantedBy=multi-usuário.destino

Recarregue o daemon de serviços para atualizá-lo com suas alterações:

 sudo systemctl daemon-reload
Propaganda

Agora, você deve poder habilitar seu serviço (configurando-o para ser executado na inicialização):

 sudo systemctl habilitar homebridge

E comece:

 sudo systemctl start homebridge

Se você precisar depurar erros que surgem da configuração do serviço, poderá visualizar os logs do serviço digitando:

 journalctl -fn 50 -u homebridge