Introdução ao OpenHAB Home Automation no Raspberry Pi

O OpenHAB é uma plataforma de automação residencial madura e de código aberto que é executada em uma variedade de hardware e é independente de protocolo, o que significa que pode se conectar a praticamente qualquer hardware de automação residencial no mercado atualmente.

O OpenHAB é uma plataforma de automação residencial madura e de código aberto que é executada em uma variedade de hardware e é independente de protocolo, o que significa que pode se conectar a praticamente qualquer hardware de automação residencial no mercado atualmente.
Propaganda

O OpenHAB é uma plataforma de automação residencial madura e de código aberto que é executada em uma variedade de hardware e é independente de protocolo, o que significa que pode se conectar a praticamente qualquer hardware de automação residencial no mercado atualmente. Se você ficou frustrado com o número de aplicativos específicos do fabricante que precisa executar apenas para controlar suas luzes, então eu tenho ótimas notícias para você: OpenHAB é a solução que você está procurando - é a casa inteligente mais flexível hub Qual Smart Hub para automação residencial é melhor para você? Qual Smart Hub para automação residencial é melhor para você? Por um tempo, as pessoas pensaram na ideia como nada mais do que um truque, mas lançamentos recentes de produtos mostraram que a automação residencial inteligente está começando a cumprir suas promessas. Leia mais que você encontrará.

Este guia está disponível para download como PDF gratuito. Faça o download dos Primeiros passos com o OpenHAB Home Automation no Raspberry Pi agora . Sinta-se à vontade para copiar e compartilhar isso com seus amigos e familiares.

Infelizmente, é o máximo que você pode obter do consumidor - mas como sempre, é aí que entra o MakeUseOf: mostraremos como começar a trabalhar com o dinheiro que o sistema smart home não precisa comprar (porque o OpenHAB é 100% gratuito - basta fornecer o hardware).

A primeira parte deste guia se concentra especificamente em como obter a configuração do OpenHAB com um Raspberry Pi 2, mas, mais adiante, os tutoriais e conselhos podem ser aplicados em qualquer lugar onde o OpenHAB esteja instalado.

Este guia abrange três tópicos introdutórios e um pouco mais avançado.

  • Colocar o OpenHAB em funcionamento no Pi e instalar a configuração da casa de demonstração para verificar os principais sistemas estão funcionando.
  • Como adicionar ligações e perfis para dispositivos. Eu vou estar trabalhando com a Philips Hue.
  • Ativando o acesso remoto e conectando-se ao IFTTT.
  • Adicionando um sensor de presença DIY usando Bluetooth e uma introdução à interface REST.
  • Configurando o aplicativo móvel OpenHAB.

O que você precisará

No mínimo, você precisará de um Raspberry Pi (v2, de preferência) e um adaptador Ethernet ou sem fio (Ethernet preferencial, este guia não incluirá instruções sobre como fazer seu adaptador Wi-Fi funcionar Configurando a rede sem fio em sua Raspberry Pi Configurando redes sem fio no seu Raspberry Pi Praticamente todo projeto do Raspberry Pi exigirá uma conexão de rede e uma flexibilidade considerável pode ser obtida ignorando-se a porta Ethernet em favor de um dongle USB sem fio. Tudo o resto é opcional. Observe que o OpenHAB também será executado no Raspberry Pi original, mas há um problema conhecido com o processamento mais lento e os dispositivos Z-Wave. Se você não precisa do Z-Wave, você pode seguramente ignorar este aviso e seguir em frente com um Raspberry Pi modelo B ou B +, porque tudo parece funcionar bem. Você sempre pode atualizar para o Pi mais recente se e quando adicionar Z-Wave.

Photo of Raspberry Pi 2 being used as OpenHAB controller
Essa pequena coisa pode ser o melhor hub doméstico inteligente que você já teve!

No momento da escrita, a última versão estável do OpenHAB é a versão 1.71; a versão 1.8 é esperada em breve, e tudo neste guia ainda deve ser relevante, embora certas ligações possam ter mais recursos. A versão 2 também está atualmente disponível como uma pré-visualização alfa muito inicial, mas adota uma arquitetura radicalmente diferente da série OpenHAB 1: este guia não é compatível com a versão 2.

Eu sugiro fortemente que você siga este guia de forma lenta e metódica - não tente entrar no final profundo e adicionar tudo de uma vez. Sim, é um guia longo - o OpenHAB é um sistema difícil que geralmente requer ajustes para as suas necessidades, e a melhor maneira de garantir o sucesso é trabalhar devagar e concluir uma parte de cada vez.

A boa notícia é que, uma vez que está funcionando, é uma experiência sólida e incrivelmente recompensadora.

Instalando o OpenHAB

Não há imagem pré-configurada para o OpenHAB, então a instalação é feita da maneira antiga através de uma linha de comando. Eu sugiro que você trabalhe sem cabeça no RPi - a sobrecarga de gerenciar uma GUI que você raramente usa não vale a pena.

Comece com a mais recente (completa) imagem Raspbian SD (não a versão “lite”, estas não incluem a Java Virtual Machine). Coloque o cabo de rede conectado, depois inicialize e navegue pelo SSH. Corre:

sudo raspi-config 

Expanda o sistema de arquivos; e no menu avançado, altere a divisão de memória para 16. Quando estiver pronto, reinicie e, como boa prática, execute uma atualização completa

 sudo apt-get update sudo apt-get upgrade 

A maneira mais fácil de instalar o tempo de execução do OpenHAB é via apt-get, mas primeiro precisamos adicionar uma chave segura e o novo repositório:

 wget -qO - 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab' |sudo apt-key add - echo "deb http://dl.bintray.com/openhab/apt-repo stable main" | sudo tee /etc/apt/sources.list.d/openhab.list sudo apt-get update sudo apt-get install openhab-runtime sudo update-rc.d openhab defaults 

Curiosamente, tudo foi instalado como pertencente a "root". Precisamos consertar isso com os seguintes comandos.

 sudo chown -hR openhab:openhab /etc/openhab sudo chown -hR openhab:openhab /usr/share/openhab 

Em seguida, instalaremos o Samba e compartilharemos as pastas de configuração e de usuário - isso facilitará a instalação de complementos e a alteração remota do sitemap.

 sudo apt-get install samba samba-common-bin sudo nano /etc/samba/smb.conf 

Altere o nome do grupo de trabalho, se necessário, mas, caso contrário, habilite o suporte ao WINS:

 wins support = yes 

(você precisará descomentar a linha e mudar não para sim)

em seguida, adicione o seguinte à seção de definições de compartilhamento (role até a parte inferior do arquivo longo):

 [OpenHAB Home] comment= OpenHAB Home path=/usr/share/openhab browseable=Yes writeable=Yes only guest=no create mask=0777 directory mask=0777 public=no [OpenHAB Config] comment= OpenHAB Site Config path=/etc/openhab browseable=Yes writeable=Yes only guest=no create mask=0777 directory mask=0777 public=no 

Eu também comentei a seção Impressoras. Eu fiz dois compartilhamentos, uma vez que os arquivos de configuração são realmente armazenados separadamente para os complementos.

Salvar e sair. Nós finalmente precisamos definir uma senha do Samba para o usuário openhab:

 sudo smbpasswd -a openhab 

Eu sugeriria “openhab” como a senha apenas para facilidade de uso, mas isso realmente não importa.

Graças ao leitor David L - parece que o método de reiniciar o Samba mudou no último Raspian. Aqui estão as instruções atualizadas:

 sudo update-rc.d smbd enable sudo update-rc.d nmbd enable sudo service smbd restart 

Depois de reiniciar o Samba (instalações mais antigas usam o serviço sudo samba restart ), teste você pode acessar a unidade compartilhada. Pode não ser descoberto automaticamente em um Mac; mas você pode usar o Finder -> Go -> Connect to Server e o endereço

 smb://[email protected] 

Autentique com nome de usuário openhab e sua senha escolhida e, em seguida, abra os dois compartilhamentos para dar uma olhada. Você deve ser capaz de abrir http: //raspberrypi.local: 8080 / no seu navegador, mas você receberá um erro porque ainda não criamos um mapa do site. Isso é normal.

error on first launch openhab

Agora seria um bom momento para aprender o comando para seguir o log do OpenHAB para que você possa ficar de olho nos erros.

 tail -f /var/log/openhab/openhab.log 

Continue correndo e abra em uma janela SSH separada o tempo todo enquanto continua com o guia.

Instalar a casa de demonstração

Antes de nos aprofundarmos nas complexidades dos arquivos de configuração, adicionando dispositivos e ligações etc; vamos verificar tudo está funcionando, adicionando o conteúdo de demonstração. Você encontrará o "Demo Setup" na seção de downloads do OpenHAB.org.

Depois de descompactar, há duas pastas: addons e configurações .

conteúdo de demonstração openhab

Usando os compartilhamentos de rede, copie as configurações no compartilhamento do OpenHAB Config e sobrescreva a pasta existente. Copie os addons para o outro compartilhamento Home do OpenHAB, sobrescrevendo as pastas existentes. Se você não for solicitado a sobrescrever alguma coisa, estará fazendo errado. Se você está de olho no arquivo de log de depuração, você deve ver uma vibração de atividade, uma vez que percebe as novas ligações e entra em ação. Abra o raspberrypi.local: 8080 / openhab.app? Sitemap = demo para ver a demonstração.

OpenHAB demo house web interface screenshot

É um pouco básico olhando para o momento, mas a natureza aberta do OpenHAB significa que podemos instalar um adorável novo tema mais tarde ou uma interface alternativa inteiramente. Por enquanto, só precisávamos saber que tudo está funcionando. Observe que o que estamos vendo é chamado de sitemap (nada a ver com um mapa do site). Um mapa do site descreve a interface do usuário - não os dispositivos reais em sua rede ou sensores - apenas a interface para visualizá-los. Cada parte é completamente personalizável. Para dar uma olhada em como este foi criado, abra o arquivo sitemaps / demo.sitemap no compartilhamento do OpenHAB Config.

arquivo de exemplo de demonstração do sitemap

É muito assustador, mas na maioria das vezes você copiará fragmentos de código de exemplos em outros lugares para criar sua própria interface personalizada. Aqui está a visão geral técnica de todos os possíveis elementos do sitemap, mas por enquanto será suficiente apenas começar a pensar sobre que tipo de interface você deseja construir e quais informações você deseja exibir.

Enquanto você estiver lá, abra itens / demo.items também. Mais uma vez, parece assustador, mas é aí que você cria itens para controlar e definir sensores para rastrear.

Então, como funciona o OpenHAB?

Agora que você já viu rapidamente o sitemap e a pasta de itens, vamos detalhar exatamente quais são esses arquivos e os outros componentes principais do OpenHAB que se combinam para criar sua casa inteligente completa. Você encontrará subdiretórios para cada um deles na pasta compartilhada OpenHAB Config.

Itens é um inventário de todos os dispositivos de controle, sensores ou elementos de informação que você deseja em seu sistema. Também não precisa ser um dispositivo físico - você pode definir uma fonte da Web como o clima ou os preços das ações. Cada item pode ser nomeado, atribuído a vários grupos (ou nenhum) e conectado a uma ligação específica. (Dica para iniciantes: a capitalização é importante quando se trata de ligações. Passei muito tempo tentando descobrir por que minhas lâmpadas "Hue" não estavam funcionando; porque elas deveriam ter sido "matiz").

Os Sitemaps preocupam-se apenas com a interface que você verá quando abrir o aplicativo móvel ou da Web do OpenHAB. Você pode controlar precisamente como deseja que os botões sejam exibidos e as informações apresentadas. Você pode definir grupos de nível superior para cada cômodo da sua casa; Ao clicar em cada um deles, você mostrará uma lista de todos os dispositivos daquela sala. Ou você pode preferir mostrar grupos para cada tipo de dispositivo: um botão para luzes, outro para tomadas elétricas. Pode haver alguns dispositivos que você usa com tanta frequência que você só quer um interruptor para eles na tela inicial.

Regras é onde o aspecto de automação residencial entra em jogo, onde você pode definir horários ou condições para que uma ação aconteça. Eventos simples como ligar as luzes do quarto às 10 da noite para uma cor vermelha quente; ou lógica mais complexa como ligar um aquecedor de ambiente se a temperatura for menor que 0 e alguém estiver presente naquela sala. Você também encontrará uma pasta de scripts, que oferece funcionalidade semelhante às regras, mas em um nível mais complexo de lógica programável.

A persistência é um tópico avançado que não abordaremos neste guia, mas a persistência define os dados dos quais você deseja manter um registro. Por padrão, o OpenHAB mostrará apenas o estado atual de algo; Se você quiser acompanhar esse valor com o tempo, precisará configurar uma definição de persistência para essa fonte de dados. Nele você especificará coisas como a frequência com que um ponto de dados deve ser medido, ou quando descartar pontos de dados antigos - você também precisará dizer que tipo de mecanismo de persistência usar, como o MySQL ou um simples registro em um arquivo. .

Transform contém mapeamentos para valores de dados para rótulos. Por exemplo, o arquivo humidex.scale define uma faixa de valores do índice de umidade e como eles devem ser mostrados em inglês: 29-38 é “algum desconforto”.

O sitemap e os arquivos de itens são essenciais para a execução do OpenHAB; o resto é opcional. Você pode ter vários sitemaps e itens, para que possa manter o conteúdo de demonstração e consultá-lo a qualquer momento, ou experimentar um novo layout para sua interface de controle residencial. Não se preocupe se tudo isso parecer um pouco avassalador agora, vamos dividi-lo em partes gerenciáveis ​​e eu prometo até o final deste guia que você terá confiança para criar sua própria configuração do OpenHAB.

Em seguida, vamos orientá-lo na adição de um kit doméstico inteligente comum, começando do zero em um novo sitemap. Cada um deles apresentará alguns conceitos básicos, como a instalação de ligações e definições de itens, portanto, recomendo enfaticamente que você leia essas instruções, mesmo que não possua esses dispositivos específicos .

Comece criando um novo arquivo home.items (em branco) e um novo arquivo home.sitemap nos diretórios relevantes. Abra home.sitemap e cole o código a seguir. Isso apenas funciona como um esqueleto básico ao qual vamos adicionar bits depois.

 sitemap home label="My Home" { } 

Você deve ver um aviso para informar que o OpenHAB identificou um novo sitemap e arquivo de itens.

openhab novo sitemap e itens

Ativar modo de depuração

Enquanto você ainda está tentando fazer o OpenHAB funcionar corretamente, pode ser útil ativar um registro de depuração mais detalhado que lista tudo, e não apenas as coisas importantes. Para ativar este modo, abra a pasta compartilhada OpenHAB Config e edite o logback.xml . Na linha 40, altere a seguinte linha para ler DEBUG em vez de INFO. Você precisará reiniciar depois de alterar isso.

Essa é uma mudança global, portanto, você obterá muito mais informações depois que alterar o arquivo de log.

Adicionando Philips Matiz

Vou começar com o Philips Hue Revisão e Oferta do Kit Philips Hue Starter Revisão e Oferta do Philips Hue Starter Kit O mercado é inundado por lâmpadas com Wi-Fi, todas com o seu próprio aplicativo móvel bobo com o qual você precisa se excitar para ativá-las . O Matiz é diferente? Descobrimos. Consulte Mais informação . Como a maioria das coisas que você deseja interagir no OpenHAB, as lâmpadas Hue exigem que você instale uma ligação - pense em ligações como um driver de dispositivo. No momento em que escrevo, há cerca de 160 ligações disponíveis para o OpenHAB 1, e é por isso que o OpenHAB é um sistema tão poderoso - ele pode interagir com qualquer coisa, combinando todos esses sistemas de controle diferentes em uma única interface unificada. Aqui está uma demonstração e uma rápida visão geral das etapas envolvidas.

As ligações devem primeiro ser baixadas, e a maneira mais fácil de fazer isso no Pi é usando apt-get, então force a propriedade para o usuário openhab.

 sudo apt-get install openhab-addon-binding-hue sudo chown -hR openhab:openhab /usr/share/openhab 

Em seguida, você precisa informar ao OpenHAB para carregar essa ligação e configurar as variáveis ​​necessárias. Navegue até a pasta de configurações e faça uma cópia do openhab-default.cfg, nomeando-o openhab.cfg . Abra, procure por HUE e substitua a seção inteira pelo seguinte código. A única coisa que você precisa mudar é o valor de IP da sua ponte - se você ainda não sabe, tente a ferramenta de descoberta online. O valor secreto realmente não importa, é apenas um tipo de nome de usuário que o OpenHAB usará para se identificar na ponte.

Dica rápida : para habilitar uma linha, basta remover o # desde o início. Por padrão, a linha que especifica o endereço IP da ponte está desabilitada (ou tecnicamente, “comentada”). Além disso, se você estiver tentando uma configuração alternativa, pode ser útil copiar apenas a linha existente e colocar # no início para marcá-la como um comentário, para que você possa reverter facilmente se as coisas derem errado.

 ################################ HUE Binding ######################################### 
 # IP of the Hue bridge hue:ip=192.168.1.216 hue:secret=makeuseofdotcom hue:refresh=10000 

configuração de ligação openhab

Salvar e sair. Como qualquer aplicativo Hue de terceiros, você precisará aprovar o OpenHAB no Hue Bridge pressionando o botão na frente - você só precisa fazer isso uma vez. Você verá uma mensagem sobre a espera para ser emparelhado se estiver acompanhando o arquivo de log, mas se esqueceu ou perdeu a contagem regressiva, basta redefinir o Pi - você obterá um temporizador de 100 segundos de quando a ligação de Hue é iniciado. Certifique-se de ter emparelhado com sucesso antes de continuar.

Em seguida, abra o arquivo home.items, ao qual adicionaremos algumas lâmpadas Hue. Aqui está uma definição de item de exemplo:

 Color Bedroom_Hue "Bedroom Hue" (Bedroom) {hue="1"} 
  • A palavra Color especifica que tipo de controle temos sobre esse item. As lâmpadas RGB Hue são “Color”, já que temos controle total das cores. Outras luzes podem ser apenas um Switch.
  • Em seguida é o codinome do item: Eu escolhi Bedroom_Hue, mas literalmente está tudo bem - apenas algo descritivo que parece natural para você, porque você precisará lembrar mais tarde quando criar o sitemap. O codinome não deve ter espaços.
  • Entre as marcas de cotação está o rótulo. A nossa é simples neste caso, mas para alguns itens como temperatura ou algo que relate um valor, você adicionará algum código especial que informa como exibir esse valor ou usar qual transformação. O rótulo é para a interface e pode ter espaços.
  • Entre os colchetes angulares é o nome do ícone. Você encontrará todos os ícones disponíveis no compartilhamento OpenHAB, no diretório webapps / images . Na verdade, existe uma gama completa de ícones de matiz que representam diferentes brilhos ou ligados / desligados. Basta especificar o nome do ícone base - o OpenHAB saberá procurar automaticamente os diferentes ícones on / off se este for um item comutado. Isso é opcional.
  • Nos parênteses, dizemos quais grupos fazer parte - neste caso, apenas o grupo Bedroom .
  • Finalmente e crucialmente, nós conectamos o item à ligação apropriada com quaisquer variáveis ​​necessárias. Neste caso, a ligação de matiz e o número da lâmpada é 1. Você pode encontrar o número abrindo o aplicativo oficial de Matiz e olhando para a guia de luzes. Cada bulbo tem um número único.

Eu adicionei um total de quatro lâmpadas, bem como uma declaração simples dos grupos que vamos expandir mais tarde. Aqui está minha casa completa.items neste momento:

 Group Bedroom Group Office Group Kai Group Living_Room Group Cinema Group Secret 
 Group Lights 
 /* Lights */ Color Bedroom_Hue "Bedroom Hue" (Bedroom, Lights) {hue="1"} Color Office_Hue "Office Hue" (Office, Lights) {hue="2"} Color Secret_Hue "Secret Hue" (Secret, Lights) {hue="3"} Color Kai_Hue "Kai's Hue" (Kai, Lights) {hue="4"} 

O / * Lights * / text é apenas um comentário, ele não tem outra função além de nos ajudar a escanear o arquivo mais tarde quando ele ficar maior. Agora temos os dispositivos adicionados, mas abrir http: //raspberrypi.local: 8080 /? Sitemap = home resulta em uma interface em branco - é claro, porque ainda não criamos elementos de interface no sitemap. Vamos começar realmente simples por agora. Abra home.sitemap .

O código usado para descrever a interface é diferente dos itens, mas por enquanto vamos criar um novo “frame” e adicionar alguns controles de grupo junto com alguns ícones.

 sitemap home label="My Home" { Frame { Group item=Lights label="All lighting" icon="hue" Group item=Bedroom label="Bedroom" icon="bedroom" Group item=Office label="Office" icon="desk" } } 

Os grupos são uma ferramenta útil para testes rápidos, mas na realidade você vai querer mais controle sobre como os itens são exibidos. Por enquanto, isso será suficiente. Salve e recarregue seu sitemap local no navegador. Você deve ver isso (ou qualquer grupo que você tenha adicionado).

openhab primeiro sitemap

Clique em All lighting para ver todas as luzes do Hue, já que definimos todas elas como pertencentes ao grupo de luzes overarching.

openhab lights group Hue demo

Observe que o item do Office Hue é exibido com um ícone diferente - isso porque a luz do meu escritório já está acesa e o OpenHAB sabe disso quando falou com a ponte Hue e foi inteligente o suficiente para ajustar o ícone na versão “on” do arquivo. Infelizmente, isso não reflete a cor, mas se você tiver um aplicativo para dispositivos móveis instalado, isso refletirá a cor atual.

Se você está vendo mais itens do que pensou que definiu ou recebeu erros sobre várias definições, saiba que, embora seja possível carregar apenas um sitemap por vez na página, todos os sitemaps extrairão itens de todos os arquivos .item . você deixou o arquivo de itens de demonstração lá, você pode ter alguns itens adicionais em seus grupos também. Eu sugeriria neste momento fazer o backup do conteúdo dos itens de demonstração e movê-lo para fora da pasta para evitar erros de duplicação.

Acesso remoto e IFTTT com My.OpenHAB

Agora, você precisa estar na mesma rede local para acessar seu sistema OpenHAB, mas e se você quiser controlar seus dispositivos e verificar os sensores quando estiver fora do alcance do seu Wi-Fi? Para isso, precisaremos configurar o acesso remoto - e faremos isso da maneira mais fácil, com o serviço da Web My.OpenHAB, que ignora a necessidade de mexer com o encaminhamento de porta e as configurações do roteador. Como bônus, o serviço My.OpenHAB também possui um canal IFTTT, oferecendo infinitas possibilidades de controle remoto e automação.

Primeiro: instale a ligação. Dica rápida: se você não souber o nome exato de um pacote de instalação específico, tente procurá-lo com o apt-cache.

pesquisa do apt-cache

 sudo apt-get install openhab-addon-io-myopenhab sudo chown -hR openhab:openhab /usr/share/openhab 

Antes de se registrar no site My.OpenHAB, você precisará criar uma chave secreta e encontrar seu UUID, que identifica sua instalação de maneira exclusiva. Verifique sob o compartilhamento Home do OpenHAB -> webapps -> static e você deve encontrar um arquivo UUID contendo seu identificador exclusivo. É neste momento que descobri que o meu Pi estava usando uma versão mais antiga do Java que não cria corretamente a chave secreta. Tipo

 java -version 

checar. Se não diz 1.7 ou superior, você tem a versão errada. Estranhamente, a versão mais recente do Raspbian vem com o Oracle Java 8 instalado, mas não como padrão.

 sudo update-alternatives --config java 

atualizar a versão do java

Escolha a opção que indica jdk-8-oracle e reinicie o OpenHAB. Bônus: O Oracle Java 8 é mais rápido que o OpenJDK padrão!

Agora você também deve encontrar um arquivo secreto na pasta webapps / static . Abra o segredo e o uuid e esteja pronto para copiar e colar.

uuid e secret

Agora vá criar uma conta My.OpenHAB, usando esses detalhes, e depois voltar - você também precisará confirmar seu e-mail antes que algo funcione. Há mais alguns passos para este. Primeiro, precisamos definir o mecanismo de persistência padrão como myopenhab (a persistência é algo para um guia posterior, mas, independentemente disso, precisamos configurar algo básico para “exportar” nossos dados para o serviço online e torná-los visíveis para o IFTTT) . Para fazer isso, abra openhab.cfg e encontre a variável que diz persistence: default = e altere para persistence: default = myopenhab . Salve .

Por fim, crie um novo arquivo na pasta de configurações / persistência chamada myopenhab.persist e cole a seguinte regra.

 Strategies { default = everyChange } Items { * : strategy = everyChange } 

Você não precisa entender isso por enquanto, mas saiba que ele diz “salvar cada estado do item quando ele for alterado”.

meus itens openhab

Para se conectar com o IFTTT, vá para o canal OpenHAB - você precisará autenticar e dar acesso à sua conta MyOpenHAB. Observe também que, até que seus itens tenham sido alterados pelo menos uma vez, eles não ficarão visíveis na lista de itens no IFTTT, portanto, se não estiver visível, ative e desative algo e recarregue. Parabéns, agora você tem acesso completo ao IFTTT para tudo em seu sistema OpenHAB!

canal openhab ifttt

Sensor de Presença Bluetooth usando REST

Há pouco tempo eu mostrei a você como fazer uma fechadura automática para portas de escritório usando o Bluetooth Fazer uma porta do escritório de travamento automático com sensor de proximidade do smartphone Fazer uma porta do escritório de travamento automático com sensor de proximidade do smartphone Configurar um Raspberry Pi com um O adaptador Bluetooth fica atento quando o smartphone está fora de alcance e aciona um relé para travar a porta. Leia Mais escaneamento para detectar a presença do usuário - eu queria trazer algo assim para o OpenHAB.

Em qualquer plataforma que não seja o Raspberry Pi, isso seria simples graças a uma ligação Bluetooth pronta; infelizmente, ele não funciona no Pi devido a um arquivo Java crucial que precisaria ser recompilado para a arquitetura ARM, incluído na ligação e, em seguida, reconstruir a ligação. Basta dizer que tentei isso, e foi terrivelmente complicado e não funcionou. No entanto, existe uma solução muito mais fácil que também serve como uma boa introdução à grande extensibilidade do OpenHAB: nós simplesmente adaptaremos nosso script Python anterior para que ele relate diretamente para a interface RESTful do OpenHAB.

Além disso: uma interface RESTful significa que você pode interagir com um sistema usando seu servidor da Web, simplesmente chamando URLs e passando ou recuperando dados. Você pode visitar este URL para ver um exemplo simples disso em seu próprio servidor: http: //raspberrypi.local: 8080 / rest / items - que gera uma lista codificada de todos os itens definidos. Isso é incrivelmente poderoso, pois expõe todo o potencial do OpenHAB e permite que você crie interfaces personalizadas; ou no reverso usado, para relatar o status de sensores sem ter uma ligação específica. Usaremos esse recurso para informar a presença de um dispositivo Bluetooth específico sem recorrer à vinculação Bluetooth.

Comece adicionando um novo item do Switch ao seu arquivo home.items . Eu chamei o meu “JamesInOffice”, e eu fiz disso um switch ao invés de um simples contato on / off para que eu possa controlar manualmente a minha presença no caso do meu telefone morrer.

 Switch JamesInOffice "James in Office" (Office) 

Observe que eu não defini um ícone nem associei uma ligação específica. É apenas um interruptor genérico.

Em seguida, insira um dongle Bluetooth USB compatível e instale algumas ferramentas básicas para interagir com ele.

 sudo apt-get install bluez python-bluez python-pip sudo pip install requests hcitool dev 

O último comando deve mostrar seu adaptador Bluetooth. Se nada estiver listado, tente outro adaptador, o seu não é compatível com o Linux. O próximo passo é encontrar o endereço de hardware Bluetooth do seu dispositivo.

 wget https://pybluez.googlecode.com/svn/trunk/examples/simple/inquiry.py python inquiry.py 

Verifique se o seu telefone está aberto na página de configurações do Bluetooth (o que o coloca em modo de emparelhamento / público) e, obviamente, se o Bluetooth está ativado. Você deve encontrar um endereço de hardware hexadecimal listado.

bluetooth identificado

A partir do diretório inicial do usuário Pi, crie um novo script Python e cole este código.
Há algumas coisas que você precisa editar, começando com o endereço do dispositivo:

 result = bluetooth.lookup_name('78:7F:70:38:51:1B', timeout=5) 

Assim como esta linha, que está em dois lugares (sim, isso provavelmente poderia ser melhor estruturado). Mude o JamesInOffice para o codinome do switch que você definiu.

 r = requests.put("http://localhost:8080/rest/items/JamesInOffice/state", data=payload) 

A etapa final é informar esse script para ser iniciado no momento da inicialização.

 sudo nano /etc/rc.local 

Role até o final e, logo antes da saída 0, adicione as seguintes linhas:

 python /home/pi/detect.py & 

O sinal & significa "faça isso em segundo plano". Vá em frente e execute o script, se ainda não o fez, e abra sua interface OpenHAB. Se você adicionou a um grupo, clique para acessar esse grupo. Demora cerca de 10 segundos para atualizar, mas você verá o ícone da lâmpada padrão ligado ou desligado, dependendo se o telefone foi detectado ou não. Verifique o arquivo de log se nada acontecer, pode ser que você tenha usado o nome do item errado.

Aplicativo Móvel OpenHAB

Embora você possa, é claro, usar a interface da web a partir de um dispositivo móvel, o OpenHAB tem aplicativos nativos para iOS e Android - e eles são muito mais bonitos do que a interface padrão do navegador. Na tela de configurações, insira o URL local como o IP interno que você está usando até agora, incluindo o número da porta. Para o URL remoto, insira https://my.openhab.org e seu nome de usuário (email) e senha que você digitou quando se inscreveu. Se você ainda não se inscreveu no MyOpenHAB, deixe a autenticação e o URL remoto em branco, mas você só estará acessando seu sistema a partir do seu Wi-Fi local.

openhab-mobile

Seguindo em frente e obtendo ajuda

A quantidade de personalização e recursos legais que você pode adicionar ao seu controlador OpenHAB é realmente épico. Além da vasta lista de dispositivos suportados com associações, você pode usar a interface RESTful, extensões HTTP e IFTTT para ler ou controlar literalmente qualquer tipo de dispositivo IoT e, em seguida, alguns (experimente algumas de nossas ideias criativas de iluminação) 7 Creative Uses LEDs coloridos para Iluminação Doméstica Residencial 7 Usos criativos para iluminação LED de LED para casas coloridas Ligar as luzes automaticamente é certamente legal, mas não aproveita todo o espectro de cores disponíveis com iluminação RGB. Para isso, precisamos ser criativos . Consulte Mais informação ). Sim, é um problema imenso instalar, mas nem um único sistema comercial pode se aproximar do poder de um sistema OpenHAB personalizado.

Dito isto, o passeio não foi nada fácil para mim, e é precisamente por isso que escrevi este guia, para facilitar o processo para você. Fique atento ao MakeUseOf para um guia avançado que cobre o Z-Wave e outros truques legais que você pode configurar.

Se você precisar de ajuda com uma parte específica deste guia, por favor, peça nos comentários. Se você quiser ajuda com outra ligação ou alguns tópicos avançados que ainda não abordamos, os fóruns oficiais da OpenHAB são um lugar acolhedor.

In this article