Como controlar tomadas de energia rf baratos a partir openhab

Video: Instalação de Interruptor Duplo com Tomada Passo a passo!

tomadas eléctricas inteligentes são a maneira mais simples para automatizar a sua casa, mas em torno de US $ 40 cada para uma tomada com base Wi-Fi ou ZWave, é improvável que você comprar mais do que alguns.

Você já deve ter algumas tomadas com base RF barato embora - o tipo que vem com seu próprio controle remoto personalizado, e têm alguns selectores de canais e de identificação na parte de trás. Infelizmente, não existam hubs de casa inteligente no mercado que o trabalho com aqueles. Não seria ótimo se você pudesse ligar aqueles em seu sistema de casa inteligente DIY de alguma forma? Bem, você pode - com bastante facilidade na verdade - com cerca de US $ 10 em partes.Battle of the Smart Home Hubs: O que está lá fora e que está vindo?Battle of the Smart Home Hubs: O que está lá fora e que está vindo?consulte Mais informação

Com um pouco mais de trabalho, você também pode integrar algum outro hardware remota baseada em RF sob medida, como esta tela de cinema orçamento.

O que você precisa:

  • ESP8266 nodemcu v12E bordo dev (modelo exato não importa, v1 ou v3 deve estar bem também). A razão pela qual estamos usando uma placa nodemcu é porque queremos o fácil conexão Wi-Fi mais tarde. O link é para um pacote de 2, que funciona em US $ 7 cada.
  • Pacote de transmissor de 433 Mhz e receptor (cerca de US $ 3).
  • RCSwitch e bibliotecas MQTT, e nosso código - todos disponíveis para baixar em Github.
  • Um servidor MQTT, local ou remoto.
  • Alguns soquetes controlado RF em execução em 433 mHz banda (ele deve dizer no controle remoto). Eu comprei o meu de Maplin como um pacote de 3 para cerca de £ 20 ($ 25.89).

Se esta é sua primeira vez a programação da placa nodemcu, você precisará baixar os plugins Arduino para isso: seguir junto com a primeira parte da nossa Arduino assassino guia introdutório para o chip nodemcu / esp8266. Você também vai precisar motoristas CH430. Você pode encontrar drivers assinados MacOS CH430 aqui, ou Windows aqui.Conheça o assassino Arduino: ESP8266Conheça o assassino Arduino: ESP8266E se eu lhe disse que um há um conselho dev Arduino compatível com built-in Wi-Fi para menos de US $ 10? Bem, não é.consulte Mais informação

Eu usei v1.6.5 do Arduino porque qualquer coisa introduz mais elevados mais problemas do que resolve. Downgrade se você não tiver já.

Antes de prosseguir, eu vou assumir um nível básico de conhecimento sobre programação Arduino, e que você tem a sua configuração nodemcu no gerenciador de bordo, e são capazes de carregar corretamente um código de demonstração. Você também deve ter adicionado as bibliotecas incluídas na nossa transferência para o Arduino / bibliotecas pasta.

Video: Ligando Interruptores e Tomadas na tensão de 110 & 220 volt.s

Se você tiver um já existente PubSubClient ou MQTT biblioteca, guardá-lo e removê-lo - o que eu já incluído no download é o único onde eu poderia receber de forma confiável mensagens no nodemcu, e eu tentei muito!

RF Sniffing (Opcional)

Este passo não é necessário se você só quer controlar DIP-switch ou discar tomadas de corrente Selector - aqueles são suportados fora da caixa, e será necessária modificação do código mínimo (este ainda é interessante para fazer em primeiro lugar, embora, assim você` vai entender o que está acontecendo nos bastidores).

Se você tiver outros controles remotos de RF que você gostaria de tentar adicionar, você precisa primeiro “farejar” os códigos de RF que estão sendo transmitidos. Para fazer isso, carregar o ReceiveDemo_Advanced esboçar a partir da Menu -gt; Exemplos -gt; RCSwitch pasta e alterar a seguinte linha entre 0

mySwitch.enableReceive(0)- // Receptor de interrupção em 0 = gt; que é pin # 2

a 2.

Video: Como montar Quadro de Distribuição de Energia Bifásico e ligar 110 e 220 Volts

mySwitch.enableReceive(2)- // Receptor em GPIO 2 / D4.

Ligar-se o módulo receptor como se segue. Olhando para a frente da placa do receptor (que é o mais longo dos dois, o transmissor é quadrado) - o lado com os componentes sobre:

  • Extrema direita é GND. Ligue para GND na placa nodemcu.
  • Extrema esquerda é VCC. Ligue para VIN na placa nodemcu.
  • Média dois pinos são o sinal. Conecte qualquer um de D4 na nodemcu (eles estão ligados entre si, de modo que não importa qual).

433 cablagem-1

Agora carregar o modificado ReceiveDemo_Advanced, e quando ele é feito, abrir o monitor serial e começar a pressionar botões em seus controles remotos. Copie o decimal (incluindo o comprimento bit), comprimento do pulso, e protocolo quando você pressiona um botão.

RF tela sniffing

Depois de fazer isso, eu encontrei a minha tela de projeção estava usando

  • TELA PARA CIMA: recebida 8694273 / 24bit- comprimento do pulso: 355 ou 356- Protocolo: 1
  • BAIXO DE TELA: Recebido 8694276 / 24bit-comprimento do pulso: 355 ou 356- Protocolo: 1

Continue por tantos botões como você precisa.

Testando o Transmissor

Em seguida, vamos tentar códigos envio de utilizar o transmissor. Ligar o módulo transmissor (o quadrado uma) como se segue. Tenha cuidado: a rotulagem nestes pinos é atroz.

O pino VCC é realmente no meio, não no lado esquerdo. Eu destruí um módulo no processo de descobrir isso. Aquela coisa que diz “ATAD” é na verdade “DATA”, escrito ao contrário. Mais uma vez, os dados vão para D4, VCC para VIN e GND para GND (remover o módulo receptor, você não precisa mais dela).

433 cablagem-2



Carregar o Exemplos -gt; RCSwitch -gt; TypeB_WithRotaryOrSlidingSwitches, e novamente, altere o pino de dados:

mySwitch.enableTransmit(10)-

para

mySwitch.enableTransmit(2)-

Note, uma variedade de exemplos estão em incluído na biblioteca, e que se trabalha para você vai depender do tipo exato de interruptor que você tem. Tipo A (dip) e B (mostradores ou sliders) são os mais comuns - consulte as imagens da página RCSwitch. Para o tipo B, ligar e desligar um soquete é tão simples como:

mySwitch.ligar(1, 4)-mySwitch.desligar(1, 4)-

onde 1 é o ID do canal (a ligação topo), e 4 é o ID do soquete (a ligação de fundo). Estes foram escritos em algarismos romanos em meus soquetes. Um máximo de 16 bases individuais podem, portanto, ser abordada, embora tomadas múltiplas pode usar o mesmo endereço, se você tem vários dispositivos para ligar ao mesmo tempo.

No entanto, a minha tela de projeção foi um pouco diferente - é utilizado um comprimento de pulso diferente. Então, para operar os, a seguir trabalhou. Note que você também pode definir um protocolo diferente se o controle remoto precisa dele, mas certifique-se definir o protocolo antes o comprimento do pulso. O comprimento do impulso é substituído quando mudando protocolo.

// Note que minha tela realmente requer dois toques de teclas (não um toque longo, mas duas prensas físicas), então estou atrasando um pouco, em seguida, enviar o mesmo sinal novamentevazio screenUp(){mySwitch.setPulseLength(358)-mySwitch.enviar(8694273,24)- // (código decimal, número de bits)demora(2000)-mySwitch.enviar(8694273,24)-}vazio screenDown(){mySwitch.setPulseLength(358)-mySwitch.enviar(8694276,24)-demora(2000)-mySwitch.enviar(8694276,24)-}

Teste todos os seus códigos estão trabalhando primeiro antes de passar para a próxima etapa.

Controlando através MQTT

Abra o desenho que você baixou do Github chamado mqtt_rcswitch.ino, e começar por modificar o SSID da rede ea senha para sua casa. Em seguida, alterar o nome do canal, se desejar, e definir o servidor MQTT. Se você não tiver um servidor MQTT execução em instalar seu OpenHAB, ler a parte 2 do guia do nosso novato OpenHAB. Note-se que o meu código é projetado para o tipo B (Rotary Switch) soquetes, embora você poderia facilmente modificá-lo para as chaves DIP também.Guia do OpenHAB Beginner Parte 2: ZWave, MQTT, regras e traçarGuia do OpenHAB Beginner Parte 2: ZWave, MQTT, regras e traçarOpenHAB, o software de automação residencial open source, excede em muito as capacidades de outros sistemas de automação residencial no mercado - mas não é fácil de se configurar. Na verdade, ele pode ser francamente frustrante.consulte Mais informação

A parte mais importante do código é o mensagem recebida() função, que responde a comandos recebidos MQTT. Nesta função, estamos verificando primeiro para a palavra-chave principal - Eu escolhi “switch” e “tela”. No caso do “switch”, que, em seguida, analisar o canal e plug ID- em seguida, verificar o corpo de carga útil para o comando.

vazio mensagem recebida(tema de Cordas, payload corda, Caracteres * bytes, não assinado int comprimento) {E se (tema.índice de("interruptor") gt; =0){// alternar controlo, analisar o canal e ligar ID int canal = getValue(tema,`/`,3).toInt()-int plugue = getValue(tema,`/`,4).toInt()-E se(carga paga == "em"){mySwitch.ligar(canal, plugue)-}outro{mySwitch.desligar(canal, plugue)-}}outro E se (tema.índice de("tela") gt; =0){// controle da telaE se(carga paga == "acima"){screenUp()-}outro E se(carga paga == "baixa"){screenDown()-}}/ * Adicionar outra else if aqui para ouvir mais comandos (ou apenas modificar a citada acima se você não quiser tela) * /}

Por padrão, em seguida, a seguinte MQTT comandos trabalho:

Video: Como Instalar interruptor e tomada em rede 127V e 220V

sala / controle / comutador / X / Y (em que X é o canal, e Y é ligá-ID- com corpo de mensagem ligada ou desligada)
sala / controlo / tela (com mensagem corpo para cima ou para baixo)

Use a linha de comando ou um cliente GUI MQTT para testar seus dispositivos antes de adicionar ao OpenHAB.

Somando-se OpenHAB

Como último passo, só precisamos criar alguns itens para essas opções em OpenHAB. Eu já definiu os seguintes itens para agora, mas você deve ser capaz de descobrir como adicionar mais:

/ * Dispositivos RF433mHz * / Switch CinemaScreen "Tela" (Cinema) {= MQTT"gt; [corretor: sala de estar / controle / tela: comando: ON: para baixo], gt; [corretor: sala de estar / controle / tela: comando: OFF: para cima]"} Mudar Switch41 "Switch41" (Cinema) {= MQTT"gt; [corretor: sala / controlo / alternar / 4/1: comando: EM: no], gt; [corretor: sala / controlo / alternar / 4/1: comando: OFF: fora]"} Mudar Switch42 "Switch42" (Cinema) {= MQTT"gt; [corretor: sala / controlo / alternar / 4/2: comando: EM: no], gt; [corretor: sala / controlo / alternar / 4/2: comando: OFF: fora]"}

Agora você deve ser capaz de controlar os seus dispositivos de RF de OpenHAB! Uma coisa que eu fiquei agradavelmente surpreendido com foi a gama - um único nó foi capaz de cobrir a maior parte da minha casa. Pode, claro, adicionar outro nó, ouvindo o mesmo canal, que simplesmente repete os mesmos comandos, se precisar de mais cobertura.

A única limitação que ter em mente é que as tomadas em si não pode relatar seu status, por isso, se você usa o controle remoto original, controlar o estado do socket não pode ser refletida com precisão dentro OpenHAB. Atenha-se usando apenas a interface OpenHAB e você deve ser fino.

Questões ou problemas? Pergunte ao longe nos comentários, e eu vou fazer o meu melhor para ajudar. Se você gostaria de melhorar no meu código, fique à vontade para enviar uma solicitação de recebimento.


Artigos relacionados