HomeKit

Apple HomeKit com Homebridge e Raspberry Pi – Parte 1 12

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. Digite primeiro o seguinte comando:

E em seguida:

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? Deixe seu comentário logo abaixo. Em caso de dúvidas, caso queira trocar uma ideia, ou até mesmo dividir seu projeto, acesse nosso Fórum!

Posts Relacionados

Deixe uma resposta

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

12 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!

  3. Muito bom o tutorial , estou com um projeto de automaçao residencial, seu tutorial foi perfeito, sem enrolaçoes e objtivo!

    Ansioso pela parte 2

    1. Que bom poder ajudar Jeferson, já estou cuidando da parte 2, deve vir muita coisa bacana por aí.

      Grande abraço!

  4. Muito bom o tutorial. Eu já ia fazer um pra postar pro pessoal do HT Fórum, mas achei esse teu. Tá bem simples e direto.

    Eu fiz a instalação (utilizando tutoriais gringos) no meu Macbook e funcionou de boa. Testei com meu controlador IR/RF Broadlink RM Pro e funcionou de boa pra controlar TV, HT, inclusive criei cenas no Homekit.

    Estou esperando chegarem meus interruptores da Livolo que funcionam por RF, daí automatizo minha sala toda.

    Esse fim de ano vou comprar um RPi 3 pra deixá-lo como Homebridge ligado direto.

    Uma sugestão para a Parte 2: dicas de como editar o config.json. Estou utilizando o programa Atom (Mac) e testando os comandos no site https://jsonlint.com/

    1. Que bom que gostou Marlos, a ideia foi exatamente deixar o tutorial bem acessível, sem enrolação.
      E tenho que te agradecer, pois não conhecia esse produto da Broadlink, fiquei bastante interessado, ainda mais que integra no Homebridge.
      Além disso, muito boa a ferramenta para validar o JSON, bastante simples.

      Muito obrigado pelo feedback!
      Grande abraço

      1. Fiz esse vídeo com o homebridge rodando no Mac e utilizando a Siri por comando de voz pra legar/desligar a TV. Utilizando o Broadlink como controlador.

        https://youtu.be/2dVG4XBvzwA

        1. Muito bom, e bem simples! Vou providenciar um mini pra mim 🙂

  5. Bom tutorial Alliiston!
    Estou tentando fazer com que o Homebridge inicie sozinho no Boot.
    Já ví alguns tutoriais… até consegui fazer… mas agora tive que formatar tudo e nnão estou conseguindo reimplementar por nada!
    Pode dar uma força?
    Obrigado!

    1. Fala Tales, tudo joia?

      Cara, se tiver tentando rodar no RaspberryPi, você vai ter que dar uma olhada no seguinte tutorial: https://github.com/nfarina/homebridge/wiki/Running-Homebridge-on-a-Raspberry-Pi (mais especificamente, na seção Running Homebridge on Bootup (init.d))

      Já no macOS, o link é esse aqui https://github.com/nfarina/homebridge/wiki/Install-Homebridge-on-macOS

      Os procedimentos são um pouco trabalhosos, mas os tutoriais estão bem entendíveis. Caso precise do Windows, tem o link nessas páginas também.

      Grande abraço, e qualquer coisa posta aí pra gente resolver!