HomeKit

Apple HomeKit com Homebridge e Raspberry Pi – Parte 1 4

No ecossistema Apple nos foi introduzido, juntamente com o iOS 8, o HomeKit, framework voltado para automação residencial totalmente integrado ao próprio Sistema Operacional. Mas nem tudo são flores, pois apenas dispositivos certificados podiam usufruir dessa integração. Ao menos até o surgimento do Homebridge.

O que é HomeKit

HomeKit nada mais é do que uma maneira de centralizar todos os dispositivos de automação em um só lugar no iOS. Atualmente cada dispositivo possui seu aplicativo para controle, seja ele uma lâmpada RGB, um termostato ou uma câmera. A ideia é que todos possam ser controlados de um único ponto, geralmente o aplicativo Casa.

O que é Homebridge

Homebridge é um servidor open-source para dispositivos HomeKit, escrito em NodeJS por Nick Farina. Ele permite controlar, através de plug-ins, dispositivos que não receberiam certificação para HomeKit. Na prática, isso significa que é possível controlar dispositivos dos mais diversos apenas com o aplicativo Casa, presente já desde o iOS 10. É possível ligar e desligar luzes (inclusive controlando a cor e intensidade do brilho delas), programar um horário para ligar e desligar dispositivos elétricos e até mesmo integrar sensores.

Abaixo é possível ver meu aplicativo Casa configurado onde tenho três “interruptores”, sendo um normal (Home Theater), um ventilador (Fan) e a lâmpada (Light), todos sendo dispositivos que estão no quarto (Bedroom). Vale notar também dois sensores de temperatura, um para temperatura ambiente e outro para a temperatura do processador do RaspberryPi (o qual roda o Homebridge), e também um sensor de umidade relativa do ar.

Aplicativo Apple HomeKit

Do lado do hardware, o Home Theater e o ventilador estão ligados à um Módulo Relê 5V 2 Canais, e a lâmpada é controlada através de um Micro Servo 9g SG90 TowerPro colado no interruptor, como pode ser visto no Gif abaixo. Todos esses módulos estão anexados num RaspberryPi rodando Raspbian Stretch.

Servo controlando interruptor

Instalação e Usabilidade

O Homebridge é muito versátil, sendo possível instalá-lo em Windows, Linux e Mac. Aqui tenho duas instâncias, uma rodando no RaspberryPi, que controla dispositivos físicos, e outra rodando no Macbook, que me permite controlar o iTunes à distância e inclusive desligar o próprio notebook.

Como dito anteriormente, o Homebridge foi escrito em NodeJS, o que significa que devemos instalar o runtime do Node no sistema em que desejemos executá-lo. Caso você não tenha um RaspberryPi e queira experimentar o servidor de automação, é possível baixar o Node e instalar em sua máquina.

Instalando o NodeJS em Mac e Windows

O NodeJS compilado pode ser baixado na página oficial de acordo com seu sistema. É uma instalação bem simples, do tipo Next, Next e Finish.

Instalando o NodeJS no RaspberryPi

Aqui a coisa fica um pouco mais trabalhosa, pois vai exigir um mínimo de conhecimento da ferramenta de terminal do Raspbian. Mas nada tão complexo assim, o tutorial vai focar bastante em todos os passos. Lembrando que, dessa maneira, até o Raspbian Stretch Lite suportará o NodeJS e também o Homebridge.

A instalação vai demonstrar como é possível rodar o NodeJS no RaspberryPi 3 e também no RaspberryPi Zero W, através de SSH (Secure Shell). Caso seja iniciante e queira configurar rede e SSH no RaspberryPi, já fizemos um tutorial para isso, acessível em Raspberry Pi Zero W: configuração rápida para Rede e SSH

Conectado em seu ambiente SSH no Raspbian Stretch, primeiro precisamos baixar o NodeJS de acordo com a arquitetura de processador desejada.

Arquitetura ARMv7 (RaspberryPi 3)

Primeiro precisamos adicionar a biblioteca do NodeJS na lista de repositórios do Raspbian:

Em seguida é feita a instalação de maneira bastante simples

Arquitetura ARMv6 (RaspberryPi Zero W)

Na arquitetura ARMv6 vamos baixar o arquivo tar.xz do NodeJS com o seguinte comando:

E descompactá-lo logo em seguida

Nisso é criado um diretório no caminho /opt/node

Para o qual vamos mover todo o conteúdo previamente descompactado

Em seguida dizemos ao Raspbian que temos um novo comando chamado “node”

E outro comando mais relevante para nossa instalação, chamado “NPM”(Node Package Manager)

Para verificar se a instalação correu bem, digitamos o comando node –v onde deve retornar a resposta “6.11.2” (a versão instalada do Node)

Instalação das dependências do Homebridge

Node instalado e configurado! Só mais um passo e já podemos ir direto ao Homebridge. Esse passo é a instalação das bibliotecas que o Homebridge faz uso, e é comum à todas as plataformas após a instalação do NodeJS:

O terminal vai perguntar se você realmente deseja instalar tais pacotes, pedindo que você aperte a tecla Y e logo em seguida o Enter.

Procedendo com a instalação do Homebridge

É o procedimento mais demorado, levando em torno de 10 minutos, o qual utiliza o NPM para baixar e configurar o servidor

Com sua conclusão, verificamos se está tudo correto iniciando o homebridge digitando seu comando de inicialização

Se correu tudo bem, você deve estar de frente para a tela abaixo. É possível finalizar o processo do Homebridge com o atalho ctrl + C.

Executando o HomeBridge

Homebridge: command not found

Em algumas instalações, o comando homebridge pode não ser identificado. Mas é algo que tem uma solução bem prática. Primeiro, devemos editar o arquivo .bashrc

É aberto o editor nano com uma tela similar à esta

Editando bashrc com nano

Nesse programa, precisamos adicionar uma linha ao fim do arquivo. Com as setas do teclado, ou até mesmo o scroll do mouse é possível chegar ao fim do arquivo e adicionar a seguinte linha

O arquivo resultante então deverá ficar assim

Arquivo bashrc

Trabalho concluído com o nano. Basta salvar (pressionando as teclas ctrl + O e Enter em seguida) e sair do editor de texto (ctrl + X).

Um último processo necessário é recarregar o arquivo .bashrc na memória:

E agora sim o comando homebridge é executado sem problemas!

Próximo passo: inclusão de plugins para controle de relês

Do jeito que está, o Homebridge não faz muita coisa, por isso é preciso que adicionemos alguns plugins para uma melhor execução. Na parte 2 desse artigo vamos ver como é possível ligar e desligar componentes elétricos através do módulo relê, e como integrar tudo ao iOS.

O que achou do post? Sugestões e dúvidas são sempre bem vindas nos comentários! Nos vemos na continuação do post e não esqueça de visitar a nossa loja FILIPEFLOP!

Posts Relacionados

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

4 Comentários

  1. Sensacional, deu um banho nos tutoriais gringos complexos e cheios de etapas desnecessárias.
    Ancioso para próxima etapa.

    Obrigado Alliston

    1. Obrigado Leandro!
      Fico feliz que tenha achado bem didático.

      Um grande abraço!

  2. Também gostei, tem previsão para a parte 2 ?

    1. Obrigado pelo feedback Ricardo!

      Acredito que ainda este mês. Farei de tudo pra soltar o post o mais rápido possível!