Apple HomeKit com Homebridge e Raspberry Pi – Parte 2 6

No post anterior vimos o que é o Homebridge e como instalá-lo, embora não tenha apresentado ainda nenhuma funcionalidade que vale a pena. Agora veremos o verdadeiro poder da plataforma, e como controlar um conjunto de relês através do iPhone/iPad.

Instalação do plugin para GPIO

Por si só o Homebridge não fará nada de útil. Ele precisa de plug-ins e de um arquivo de configuração para rodar satisfatoriamente. No tutorial vou usar o plugin Homebridge-gpio-wpi2 (https://github.com/rsg98/homebridge-gpio-wpi2 ), responsável por controlar pinos da GPIO no RaspberryPi, mais especificamente com um módulo relê atuando como interruptor. A instalação conta primeiro com o download das dependências

E em seguida a instalação do próprio plugin (o processo leva alguns minutos)

Execução do Homebridge

O Homebridge pode subir várias instâncias em um mesmo sistema operacional. Por isso é preciso identificá-lo pelo Mac Address, que é obtido pelo comando

Tela terminal

A imagem acima é o resultado da busca pelo MacAddress da minha interface WLAN. Caso esteja utilizando rede cabeada, basta rodar o comando ifconfig eth0. Note acima o valor após a palavra ether. Copie esse valor (todos os seis pares) para podermos adicionar ao arquivo de configuração. É necessário que as letras estejam maiúsculas.

Esse arquivo agora se faz necessário para controle do plugin e do próprio servidor Homebridge. Ele é criado com o auxílio do nano:

O conteúdo do arquivo aparece abaixo, onde temos a seção bridge, responsável pelas configurações do próprio Homebridge, a seção description, que pode ser ignorada, e a seção platforms, onde colocamos nossas plataformas. Não se esqueça de adicionar seu MacAddress no lugar indicado.

Explicando a plataforma WiringPi: temos dois relês adicionados, um na GPIO2 (pino 3) e outro na GPIO3 (pino5), mas é possível escolher qualquer pino necessário para a conexão, desde que esteja previamente configurado.

Circuito Raspberry Pi Rele

Após concluir a edição do arquivo config.json, podemos fechá-lo com o comando ctrl + O (salvando o arquivo através do Enter) e sair do editor com ctrl + x. Feito isso, executar o comando homebridge agora fará mais sentido.

Para testar se as configurações estão OK, devemos iniciar novamente o servidor homebridge, através do seu comando homebridge. A tela deve estar similar à esta.

Atente-se ao código que aparece na tela, 031-45-134. Ele será utilizado na configuração do aplicativo casa. Deixe o homebridge rodando, que agora vamos pro iOS!

Integração com o aplicativo Casa

Como mostrado no post anterior, vamos utilizar o aplicativo Casa do iOS 11 para controlar o relê remotamente. Abrindo ele, teremos a seguinte tela:

Casa iOS

Clicando em Adicionar Acessório, vamos para a tela de mesmo nome, para enxergar o código que aparece no homebridge. É possível tentar escanear o código, mas na minha experiência, não funciona muito bem. Para isso, vamos à opção Não Tem um Código ou Não Pode Escanear?.

Código Homekit

A nova tela mostra a instância do Homebridge rodando. Caso não apareça, reinicie o servidor pelo terminal, para que ele seja exibido. Selecione a instância caso esteja ok.

Seleciona instância

É exibido um aviso de acessório não certificado. Nada para se preocupar, pois realmente não estamos trabalhando com acessórios certificados pela Apple. Adicione mesmo assim, e insira o código informado acima.

Código Homebridge

A primeira tela após a validação do código é a tela de configuração do servidor. Basta clicar em Seguinte para configurarmos os dois itens separados do relê.

Configuração GPIO

É possível também configurar o cômodo que você quer colocar o dispositivo. O aplicativo casa conta com a possibilidade de adicionar várias casas, cada uma delas com vários cômodos, e cada um deles por sua vez, vários dispositivos.

Após a configuração, o aplicativo volta para a tela inicial, agora com dois dispositivos. Note que o dispositivo Lâmpada está ligado, e é possível desligá-lo a qualquer momento

Aplicativo Casa configurado

Um grande chamariz da plataforma Homebridge, é a possibilidade de utilizar a Siri para controlar os dispositivos. Quando pedimos à ela para desligar a Lâmpada, quase instantaneamente o relê é desligado.

Siri

Considerações finais

O homebridge é uma plataforma em constante desenvolvimento. É possível que, no momento da leitura desse tutorial, algumas configurações tenham sido alteradas. Este tutorial é apenas um norte pra quem quer se aventurar na automação residencial.

É possível também acessar os dispositivos remotamente. Caso você possua um iPad, ou Apple TV de quarta geração permanecendo em casa, permitindo que seu iPhone controle os dispositivos como se fosse localmente.

Existem várias outras funcionalidades que você pode agregar no servidor. Basta instalar o plugin desejado e configurá-lo de acordo com o tutorial do próprio plugin. Diversos plugins podem ser encontrados no Repositório do NPM.

O Apple Watch também vale pra controlar os dispositivos, como visto abaixo.

Apple Watch

Gostou deste 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 *

6 Comentários

  1. Sensacional …

    Mandou muito bem Alliston,

  2. Puxa… muito legal suas explicações… porém estou com uma duvida… estou seguindo seu tutorial… tenho um broadlink RM pro (onde já tenho todos os controles gravados)… como faço a integração dele no homebride?… me perdi nesta parte…

    1. Que bom que está aproveitando Alex! Esses dois posts são mais introdutórios, por isso não cobri um plugin que provavelmente você vai precisar.
      Sinceramente nunca trabalhei com o Broadlink, então posso falar algo que não se aplica, mas usarei de base o NodeMCU que tenho conectado aqui.

      No Node, eu criei um servidor web que me permite ter URLs para ligar/desligar um switch (por exemplo: 192.168.1.10/switch/1 para ligar ou /0 para desligar). Já no RaspberryPi, eu instalei o plugin Homebridge HTTP (https://github.com/rudders/homebridge-http) que faz a ponte, assim permitindo que eu acesse o servidor web do NodeMCU pelo aplicativo casa.

      Acredito que o Broadlink possua essa funcionalidade de servidor web também, então o plugin HTTP deve te atender. Dá uma olhada e me avisa aqui se não der certo, que dai eu alinho contigo.

      Grande abraço!

      1. Entao Alliston… obrigado pela resposta… deixa ver se estou entendendo tudo direito…
        Fiz tudo exatamente conforme o tutorial… (inclusive a instalacao do plugin)
        pelo que entendi… apos tudo isto… tenho que fazer os ajustes no arquivo config.json… correto?
        Entao… não consigo localizar o arquivo config.json… e quando executo o homebridge… ele informa que nao localizou o arquivo config.json…
        Em relação ao Broadlink… acredito que tenha que instalar o plugin.. no repositorio que voce falou… porem quando dou o comando… ele aparesenta alguns erros…
        voce sabe aonde estou errando?
        agradeço muito sua ajuda….

        1. Oi Alex! Então tá fácil! Dá uma olhada na parte do tutorial chamada Execução do Homebridge. Lá mostra como criar o config.json através do comando sudo nano /home/pi/.homebridge/config.json

          Depois de configurado, você pode instalar o plugin HTTP e configurá-lo de acordo com o tutorial da página deles no Github. Qualquer coisa, coloca aqui os erros que eu tento ver pra você.

          Grande abraço!

  3. Olá, boa noite.

    Precisa verificar a ligação dos cabos na imagem, lá ele está ligando o 5v do Raspberry na IN02 do relé, e o Pino 05 (GPIO 03) no VCC do relé. Infelizmente eu descobri da pior maneira e o Pino do meu Raspberry provavelmente queimou, já que ele não manda mais comandos para o módulo relé.

    Minha ligação ficou desta forma, e funcionou, somente o pino queimado que não executa, mas no app ele reconhece normalmente.

    5V Raspberry (Pino02) no VCC do módulo relé
    Ground Raspberry (Pino06) no GND do módulo relé
    GPIO02 do Raspberry (Pino03) no IN1 do módulo relé
    GPIO03 do Raspberry (Pino05) no IN2 do módulo relé

    Obrigado

    Leandro dos Santos Pereira