Tretas e Cenas

Tretas e Cenas


Onde escrevo as minhas tretas. Tão depressa estou a escrever sobre algo poético como a seguir escrevo só para não me esquecer.

Julho 2018
S T Q Q S S D
« Fev   Ago »
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Categorias


Ligar TP-Link HS110 ao OpenHab

O objectivo de hoje é ficares com a tua tomada HS110 ligada no OpenHab e que consigas aplicar algumas regras sobre ela. Vou usar como exemplo uma tomada que vai estar ligada a uma Televisão. Depois vou aplicar algumas regras sobre essa tomada, como por exemplo desligar a televisão se estiver em modo de poupança de energia.

Pedro FonsecaPedro Fonseca

Olá,

O meu nome é Pedro Fonseca e hoje vais aprender a ligar uma tomada TP-LINK HS110 ao OpenHab. Para isso vamos falar de sitemap, items e regras.

Digo sempre isto no inicio de cada artigo, mas se este é o primeiro artigo da serie OpenHab que lês, aconselho a que comeces pelo primeiro artigo e não por este. Isto porque irei usar termos que podes não saber o que são e isso irá tornar o teu processo de aprendizagem um pouco mais complexo.

Quero também dizer que este artigo não é patrocinado pela a TP-Link, apenas refiro os seus produtos aqui porque os tenho em casa. São apenas um ferramenta que estou a usar para que tu possas aprender. Não estou de forma alguma a sugerir que compres produtos TP-Link.

O objectivo de hoje é ficares com a tua tomada HS110 ligada no OpenHab e que consigas aplicar algumas regras sobre ela. Vou usar como exemplo uma tomada que vai estar ligada a uma Televisão. Depois vou aplicar algumas regras sobre essa tomada, como por exemplo desligar a televisão se estiver em modo de poupança de energia.

Se bem te recordas, para acederes ao teu OpenHabian, tens que aceder, através de um navegador da internet, ao endereço http://openhabianpi:8080, eu vou usar o IP. Se viste os artigos anteriores, sabes o porquê.

Ao chegares à página inicial, preciso que escolhas o interface Paper Ui. De seguida vamos mudar algumas configurações para que o processo de adicionar as Coisas ao OpenHab seja mais simples.

Portanto, vai a Configuration, System e na opção Item Linking, escolhe Simple Mode. Isto vai permitir que o OpenHab crie as Ligações entra as Coisas e os Items. Se isto estiver inactivo terás que ser tu a fazer e digo-te já que é uma chatice enorme.

Isto de criar ligações entre Items e Coisas só funciona se existir instalado o Add-On apropriado, ou seja, só o consegues fazer se deres ao OpenHab a habilidade para falar com a Coisa. Portanto vamos instalar o Add-On que consegue entender os produtos da TP-Link. Só tens de clicar em Add-Ons, depois em Bindings e de seguida procura por TP-Link Smart Home Binding, ou basta escreveres TP e aparece logo. Clicam em Install.

Agora que temos instalado o respetivo Add-On basta clicares em Inbox e de seguida clicas em Search For Things. Ele vai perguntar que Binding é que queres usar, ou seja, que linguagem queres que ele use para encontrar as Coisas. Para este caso, vamos usar a que diz TP-Link, afinal foi a que acabaste de instalar, e assim que clicares no TP-Link ele começa a pesquisar.

Agora basta clicar no símbolo do certo e quando aparecer uma janela, muda para um nome para algo que te seja familiar e clica em Add as Thing, ou seja, adiciona como sendo uma Coisa.

No canto inferior direito aparece uma mensagem, clica-a. Ao fazeres isso vais ser redirecionado para a Coisa que acabaste de colocar no OpenHab.

Lembras-te de no primeiro artigo ter falado em Canais? Que eram a forma que as Coisas tinham de expor as suas informações? Pois bem, esta Coisa tem 3 canais ativos. O primeiro é o botão que liga e desliga, o segundo refere-se a quanta energia está a ser gasta no momento e o terceiro canal mostra a quantidade de energia já foi gasta no dia de hoje.

Estes canais têm o seu próprio nome, no meu caso o canal que permite comunicar com a Coisa e saber o estado é o tplinksmarthome:hs110:E7F85A:switch.

É isso mesmo, é enorme. Pronto, esta Coisa está configurada, agora vamos passar à parte que eu mais gosto, criar ficheiros e editar os mesmos. Para isso vamos começar por criar um Sitemap, um sitemap é um ficheiro que vai conter os Items que vão usar os Canais das Coisas. Eu vou criar um do zero, para que percebas como é fácil. Navega até ao mapeamento de rede que configurámos no segundo artigo e lá dentro vais aceder ás diretorias do OpenHab.

Acede à pasta Items. Aqui será a pasta que vai conter todos os ficheiros que contêm configurados os Items. Podes criar um ficheiro por cada Item, podes criar um ficheiro e conter vários items, tanto faz.

Eu vou criar um que vai conter as tomadas HS110, por isso vou chamar o ficheiro de hs110.items. Edita esse ficheiro com o Notepad++ e vamos lá começar a configurar os Items. Relembro que documentação do OpenHab é fantástica e tem lá tudo, isto porque eu só vou fazer de algumas coisas e quiseres saber mais  ou até corrigir alguma coisa, passa no site deles.

Primeiro vamos criar um grupo, vê os grupos como pastas, desta forma tudo o que estiver dentro de um determinado grupo pode ser acedido dando o nome do grupo, mas mais tarde vais perceber o porquê dos grupos serem importantes.

Cria um grupo, na primeira linha do ficheiro, desta forma:

Group gCasa

Por baixo, vamos criar outro grupo mas que vai conter as coisas da Sala:

Group gSala (gCasa)

A parte que diz (gCasa) serve para representar que o gSala está dentro do gCasa.

De seguida vou criar um item por cada canal que a Coisa tem. Para isso vou apenas explicar a primeira linha, as outras vais ver que é de simples compreensão.

Switch Tomada_Sala “Tomada Sala” (gSala) { channel=”tplinksmarthome:hs110:E7F85A:switch” }

A primeira secção da linha é o tipo do item que se está a criar, a primeira linha é um Switch. De seguida temos o nome do item que estamos a criar, tem de ser único em todo o OpenHab, por isso convém seguir alguma convenção e seguir essa convenção sempre quando se tratar de dar nomes ao items. Depois temos de escolher que nome vai está visível para o utilizador, tem que estar entre aspas. De seguida escolhes em que grupo, ou grupos, este item vais estar, neste caso está só no gSala. Por último configuramos a ligação.  O valor que vês dentro de aspas pode ser obtido simplesmente acedendo ao teu OpenHab, escolhes o interface Paper e escolhe a opção Control. Se clicares no icon que está no canto superior direito da janela que representa a HS110, serás enviado para a página de configuração da Coisa e aí podes copiar dos canais a informação que precisas, neste caso é a parte que diz algo parecido a isto:

tplinksmarthome:hs110:E7F85A:switch

Voltando ao ficheiro das Coisas e já com algumas linhas a mais, repara que nada muda a não ser a parte final, portanto, todas estas linhas servem para criar Items através dos Canais que representam informação nas Coisas, neste caso, a tomada HS110. Este será o aspecto do ficheiro final:

Group gCasa
Group gSala (gCasa)

Switch Tomada_Sala “Tomada Sala” (gSala) { channel=”tplinksmarthome:hs110:E7F85A:switch” }
Switch Tomada_Sala_led “LED” (gSala) { channel=”tplinksmarthome:hs110:E7F85A:led” }
Number Tomada_Sala_energia “Energia” (gSala) { channel=”tplinksmarthome:hs110:E7F85A:power” }
Number Tomada_Sala_consumo “Consumo” (gSala) { channel=”tplinksmarthome:hs110:E7F85A:energyUsage” }
Number Tomada_Sala_corrente “Corrente” (gSala) { channel=”tplinksmarthome:hs110:E7F85A:current” }
Number Tomada_Sala_voltagem “Voltagem” (gSala) { channel=”tplinksmarthome:hs110:E7F85A:voltage” }

Pronto, agora já tens os Items criados, mas não consegues fazer nada com isto. Para que os possas usar, tens de criar um sitemap, para isso navega até à directoria sitemaps do teu mapeamento de rede e cria um ficheiro chamado demo.sitemap. Edita esse ficheiro com o Notepad++ e vamos começar a criar o teu sitemap. Uma vez mais te digo que o que vou aqui falar pode e deve ser complementado com a documentação do site do OpenHab.

Portanto, escreve isto no teu ficheiro:

sitemap demo label=”DEMO” {

Frame label=”Sala” {

}

}

Isto que estás a ver assemelha-se a um formato que é conhecido por JSON, não é JSON, mas anda lá perto. Sinceramente nem se isto é alguma linguagem de programação, mas tem imensas parcenças com XML, JSON ou algo assim. Depois temos de colocar os Items para que possamos usar no Sitemap, neste caso vamos só colocar o item que liga e desliga a tomada, o teu sitemap deve ficar algo assim:

sitemap demo label=”DEMO” {

    Frame label=”Sala” {

Switch item=Tomada_Sala label=”TV” icon=”screen”

    }

}

Agora, vai lá ao interface Basic, escolhe o sitemap que diz Demo e podes pressionar o botão para ligar ou desligar a tomada. Aqui podes fazer download do ficheiro que contém um sitemap mais completo para que possas estudar o mesmo e consigas ver as possibilidades. Apenas terás que o copiar para junto do teu sitemap demo.

Agora vamos criar umas regras simples, para que percebas que é possível criar regras que podem afetar as Coisas. Para isso vais à directoria rules, e lá dentro crias o ficheiro tv_sala.rules.

De seguida colocas o seguinte texto:

rule “Desligar TV que está em Stand By”

when  

         Time cron “0 0/1 * 1/1 * ? *”

then

         if(Tomada_Sala_energia.state > 0 && Tomada_Sala_energia.state < 30){

                   Tomada_Sala.sendCommand(OFF)

                   logInfo(“Tomada_Sala_OFF”, “TV Sala foi desligada por estar em stand-by”)

         }

end

Calma, eu sei que é muito para assimilar, mas deixa-me explicar, primeiro dás o nome à regra. De seguida tens de dizer quando é que esta regra é executada, neste caso, coloquei um CRON para correr a cada 1 minuto, se não sabes criar CRONs nem sabes o que é isso, usa o site http://www.cronmaker.com/ e vais ver que até é bastante simples.

Depois disso tens a parte do que deve executar quando esta regra for executada a cada minuto, é feita a pergunta se a tomada está a consumir um valor superior a zero e inferior a 30w e. Este valor de 30 descobri com a tomada ligada, a TV em standby e vi quanto estava a gastar no momento, no meu caso é 30w e sim é muito, mas porque esta tomada também tem o sistema de som e as caixas de televisão por cabo.

Adiante, se isto for verdade o comando que se segue diz para o OpenHab passar a tomada para o estado OFF e de seguida estou apenas a fazer com que o sistema pegue nesta acção e a registe nos Logs do OpenHab. E é isto, agora se colocares a tua TV em standby e esperares cerca de um minuto, a TV vai desligar-se. Muito fixe não é?

Todos os ficheiro que eu criei estão disponíveis aqui, portanto se não quiseres perder tempo a escrever tudo isto basta descarregar.

No próximo artigo vamos falar da tomada SonOff S20 da Itead, vou-te explicar como podes colocar um firmware que lhe dá poderes especiais e ainda te vou ensinar como integras essa S20 no OpenHab. Para isso vamos precisar de um FTDI232 que tenha a opção de 3V e ainda vamos precisar de cabos macho fêmea para ligar esse FTDI à nossa tomada S20. Com este material vamos conseguir colocar um novo firmware na tomada S20 e assim dar-lhe novas habilidades.

Por hoje é tudo, espero que tenhas gostado e mais uma vez muito obrigado por acompanhares estes artigos. Vemo-nos no próximo.

 

Sou licenciado em Sistemas de informação na Universidade Lusófona, gosto de tecnologia, programação, desportos radicais, bicicletas e motas. Adoro o Sistema Android e começo a gostar de Linux. E ainda tenho a mania que sei cozinhar.

Comentários 0
Ainda não existem comentários