A história de como automatizei o apartamento usando o Node-RED. Parte I

No ano passado, montei e configurei a automação para um pequeno apartamento perto de uma estrada movimentada. Neste artigo, falarei sobre as soluções usadas no sistema climático, iluminação, multimídia e software.



O que eu queria fazer


  1. Automatize o desligamento da água em caso de emergência.
  2. Desligue a ventilação em caso de incêndio.
  3. Relatar emergência.
  4. ( , , , ).
  5. (, ).
  6. .
  7. ( , , «» ).


Existem vários sistemas básicos para gerenciar a automação residencial. Existem soluções pagas e gratuitas - tudo depende da plataforma. Pode ser FPGA (circuito integrado lógico programável), controladores no formato do roteador e apenas software.

Inicialmente, considerei o controlador FIBARO Home Center 2 finalizado como o hub principal. Embora a interface seja bonita e haja muitas configurações, o hardware acabou sendo fraco. O firmware, a julgar pelos comentários, às vezes era de buggy. Outros tipos de protocolos são bastante difíceis de conectar.

Das opções gratuitas, revi o OpenHUB e o Home Assistant.. O OpenHUB parecia muito carregado e difícil de expandir: por exemplo, é difícil adicionar um novo módulo Z-Wave se ele não estiver nas configurações do OpenHUB. O Home Assistant é facilmente extensível, mas no momento da integração, a automação só podia ser escrita em YAML, o que é difícil de depurar e manter. A integração com o Z-Wave no Home Assistant levantou questões. Por isso, escolhi outro análogo gratuito, que discutirei mais adiante. Eu escolhi o

Node-RED como solução de back-end, pois fornece muitas integrações prontas com diferentes protocolos, é gratuito e permite que você escreva a lógica de automação diretamente em JavaScript no navegador sem recompilação. Com ele, basta depurar scripts usando depuração e injeção.

Janela Edição de Script Node-RED
Janela Edição de Script Node-RED

O Node-RED usa o NodeJS sob o capô, então o restante da ligação também foi gravado nele. O Node-RED é apenas um editor de scripts e integrador de vários protocolos. A parte frontal do controle - como, por exemplo, no Assistente de residência - está ausente. Existem vários plug-ins que adicionam a capacidade de controlar dispositivos do navegador, mas eles não são muito convenientes para configurar e exigem a gravação de código front-end também no navegador ( nó-vermelho-painel ).

Cada fluxo no meu sistema é autônomo e toda a comunicação entre diferentes fluxos ocorre através do barramento MQTT . Também posso mover o fluxo carregado para servidores separados para processamento distribuído.

Protocolos de comunicação com dispositivos finais


Meu apartamento não é muito grande e não havia lugar para colocar a unidade de comutação, então decidi usar módulos sem fio.

O sistema utiliza relés de controle ocultos para deixar os botões físicos da mesma série com saídas. Botões físicos são necessários para controle direto e em caso de falha do controlador central. Eu escolhi entre os sistemas sem fio Z-Wave e ZigBee.

No momento da integração do sistema, a tecnologia Z-Wave possuía a coleção mais completa de dispositivos necessários. Em diferentes países, o Z-Wave usa uma frequência operacional diferente; na Rússia, você pode usar oficialmente a frequência de 869 MHz. Como comprei a maioria dos sensores na Rússia, decidi usar a frequência oficial para todo o sistema.

Além do Z-Wave, o sistema usa o módulo BroadLink IR e o Modbus TCP.

Para integrar o Z-Wave ao Node-RED, selecionei a biblioteca OpenZWave C ++ e o node-red-contrib-openzwave . Processamento de eventos Z-Wave Para a integração do Modbus, uso o node-red-contrib-modbus , para o controle BroadLink, uso o node-red-contrib-broadlink-control .

Manipulação de Eventos Z-Wave




Base de dados


Eu escolhi o MongoDB como o principal banco de dados: as leituras atuais dos sensores e dispositivos finais são escritas lá, ele também armazena códigos de IR para aparelhos de ar condicionado e multimídia.

O InfluxDB é usado como base para armazenar séries temporais. De acordo com esses dados, você pode ver os gráficos de umidade, temperatura, criar agrupamentos. Leituras de temperatura externa por um mês




A parte dianteira


Decidi escrever a parte da frente para obter a máxima flexibilidade do sistema. Ao trabalhar com o Dashboard, dois sistemas auxiliares são usados:

  • Servidor MQTT baseado no aedes ;
  • servidor de autorização.

O servidor de autorização emite um token JWT por login e senha ou por pertencer a uma rede local, após o qual o servidor MQTT verifica esse token toda vez que envia ou recebe uma mensagem para o sistema front-end.

O front end é escrito em ReactJS e o MQTT over WebSockets ( MQTT.JS ) é usado como um protocolo de comunicação do servidor . Como estado, o MobX é usado. O TypeScript também é usado e tudo compila o webpack.

O aplicativo consiste em duas páginas:

Dashboard
Painel Painel

Z-Wave-
de

administração de dispositivos Z-Wave No painel de administração, você pode adicionar e remover dispositivos, configurar seus parâmetros e associações.

FGD212
FGD212 Dimmer Setting

Na página Painel, você pode adicionar novas páginas e combinar widgets de dispositivo como desejar.

Do ponto de vista do software, cada dispositivo é um módulo separado, que é inserido no sistema por meio da interface (TypeScript). Isso oferece extensibilidade e integração fáceis de novos dispositivos no painel.

Equipamento


Como controlador, uso o Intel NUC NUC7PJYH no qual o Ubuntu Server está implantado. Para comunicação com a rede Z-Wave, escolhi o pendrive Z-Wave.Me .

Como o controle remoto principal de uma casa inteligente, é usado um tablet Android, que eu pedi no Alibaba.com . E o tablet veio direto da fábrica: com um suporte Vesa, alimentação PoE e um plugue (não USB). O tablet é alimentado por uma fonte de alimentação de 12V localizada em um trilho DIN no gabinete de controle. Não há bateria no tablet, para não apresentar opções com carregamento constante.

Encomendei um tablet de acordo com minhas especificações.


Controle remoto

Sistema climático


Para manter um clima confortável, o sistema usa:

  • Aquecimento de piso elétrico em três zonas.
  • Ar condicionado nos alojamentos.
  • Ventilação central.
  • Umidificadores.
  • Aquecimento central.

Ventilação


Como a casa está localizada próxima a uma estrada movimentada e não quero abrir as janelas, uso o sistema de ventilação.

,
Pó preto na janela, acumulado em cerca de três

meses.Estudando soluções diferentes para o problema de ventilação sem abrir a janela, fiz uma pequena lista de três opções:

  • Instalação de respiradores em cada quarto.
  • Instalação da unidade externa e fiação dos dutos na parede externa.
  • Sistema de ventilação central.

Os respiradores foram rejeitados imediatamente, pois teriam que ser colocados em todos os cômodos e, na minha opinião, são bastante barulhentos para a troca de ar normal. Uma das condições importantes para mim foi o baixo nível de ruído e a capacidade de ventilar rapidamente a sala. Ao usar um respirador, um bloco com filtros e um ventilador são pendurados diretamente na parede dentro da sala, o que ocupa espaço adicional no apartamento.

Muitos instaladores oferecem montar uma unidade de ventilação externa ou instalar um suprimento na varanda. Mas eu não tenho varanda e a unidade externa na parede ficaria bastante volumosa. Dado que duas unidades de aparelhos de ar condicionado já estão penduradas na parede, esse projeto não seria aprovado. Por isso, escolhi um sistema de ventilação central.

Como o espaço do apartamento é limitado e não havia o desejo de baixar os tetos em todo o apartamento, a entrada foi instalada no corredor, onde os tetos foram reduzidos e a entrada foi feita no quarto das crianças.


Entrada de ventilação

Um orifício com um diâmetro de 160 mm foi perfurado na parede externa usando uma broca de diamante e galvanizado com uma grade externa. O tubo de entrada foi isolado com isolamento K-flex. Em seguida, o tubo passa pela parede da cozinha e entra na unidade de ventilação principal.

Breezart 550 lux
Unidade de ventilação Breezart 550 lux e unidade para filtro opcional A

unidade de ventilação foi selecionada pela Breezart . Ao escolher, considerei o custo da instalação, as dimensões e a capacidade de conectar-se ao sistema de automação. A unidade possui uma capacidade máxima de 550 m³ por hora:
O sistema possui um ventilador silencioso com 10 velocidades e um aerotermo elétrico. Uma válvula eletromecânica é instalada na entrada, que fecha quando a unidade é desligada, para que o ar frio não passe pelo apartamento. No lado eletrônico, a instalação forneceu três portas Modbus, sensores de temperatura e sensores de pressão para determinar se os filtros estão sujos. Incluído com a instalação está um filtro G4 grosso.


O filtro grosso após seis meses de uso

O filtro grosso obstruiu em 70% após um ano de uso, mas, a julgar pelo sensor de CO₂, a ventilação não é mais puxada em baixas velocidades. Até 20 de dezembro - o filtro está entupido, após 20 de dezembro - um novo filtro, a velocidade é a mesma

20  —  ,  20  —  ,


Após a instalação da ventilação, existe um filtro fino F7. Usando filtros mais refinados, como o HEPA, para minha situação, considerei inapropriado: eles entupem rapidamente e a instalação não consegue pressioná-los. Além disso, os fabricantes não recomendam exceder a queda de pressão no filtro, pois isso aumentará a carga no ventilador e a sujeira dos filtros poderá começar a soprar nas salas.


Após o filtro fino, dois reguladores mecânicos de fluxo de ar são instalados, seguidos por vários dutos de ar flexíveis da SONODEC para as salas. Esse tipo de duto foi escolhido para não colocar um silenciador volumoso e, ao mesmo tempo, abafar o ruído da instalação. Após o fechamento do teto, o sistema de ventilação é audível apenas a partir da velocidade 8 (440 m³ por hora) e apenas a partir do corredor. Na saída de ventilação existem grades ajustáveis ​​em duas direções.


Sistema de ventilação montado no teto


Saída de ventilação para uma das salas

Um controle remoto do kit está conectado a uma das portas Modbus e um servidor Modbus TCP HF2211 à segunda.

Modbus RTU — Modbus TCP converter HF2211
Modbus RTU - Conversor Modbus TCP HF2211

Este servidor permite conectar-se à rede interna via Wi-Fi ou Ethernet, por um lado, e ao dispositivo Modbus RTU, por outro. Em seguida, você pode elevar o servidor com as configurações necessárias e já acessar a unidade de ventilação via rede. A instalação é pesquisada a cada 300 ms: erros e somas de verificação são verificados e somente depois disso é permitido gravar alguns dados nos registros. A comunicação com a instalação ocorre através do plugin node-red-contrib-modbus . Esquema de recebimento e envio de parâmetros de uma unidade de ventilação via modbus Esquema de recebimento e envio de parâmetros de uma unidade de ventilação através de modbus O site do fabricante possui uma referência detalhada dos registros modbus e uma descrição geral

modbus


modbus


para esta instalação, mas você precisa verificar a versão do controlador e firmware. A unidade de ventilação é controlada automaticamente pelo tempo e pelo sensor CO₂ MH-Z19b. Automação da ventilação de fluxo Ventilação da automação de fluxo O sensor de CO₂ é portátil, montado com base no sensor MH-Z19b, duas baterias 18650, mosfet ESP32 e IRF520 (para desconectar a energia do sensor durante o sono do controlador). Leituras de CO₂ por um mês, pico de 1800 PPM - os convidados vieram com a subsequente inclusão de ventilação em rotações mais altas.Dependendo da velocidade da instalação, é ajustada uma temperatura confortável do ar que aquece o aquecedor de ar.

Flow


Flow




CO₂  ,   1800 PPM —




Em velocidades mais altas, é necessária uma temperatura mais alta - caso contrário, será sentido um fluxo de ar frio. Para não consumir muita eletricidade no inverno, quando está mais frio fora de -7 ° C, a instalação é limitada a uma terceira velocidade. À noite, a instalação é limitada a uma quarta velocidade. Se ninguém estiver em casa, o sistema muda automaticamente para a primeira velocidade. No comando "Férias", ocorre um desligamento completo.

Existe um modo de pré-aquecimento após as férias, arejando a toda velocidade e uma transição para a primeira velocidade em um temporizador. Se o sistema tiver sensores de CO₂, é possível um controle de velocidade adicional de acordo com as restrições globais.

Condicionamento


O sistema possui vários aparelhos de ar condicionado com modos de refrigeração e aquecimento. Havia uma idéia de colocar o ar-condicionado central, mas todos os sistemas são muito grandes e não permitem que a temperatura em cada quarto seja regulada. Infelizmente, meus aparelhos de ar condicionado são controlados apenas por infravermelho. Comprei o painel de controle Broadlink RM Mini3.

Broadlink RM Mini3
Broadlink RM Mini3

Se você usar um aplicativo nativo, este controle remoto se conectará aos servidores chineses, para que todos os comandos de configuração e gerenciamento sejam transmitidos diretamente do Node-RED usando o módulo node-red-contrib-broadlink-control .

Como não encontrei nenhum código IR limpo para os aparelhos de ar condicionado, e o controle remoto transmite todo o estado (rotações, modo, temperatura) - todos os estados possíveis de aquecimento e resfriamento foram copiados do controle remoto do ar condicionado usando o Broadlink para o banco de dados. Também não havia comandos limpos para ativar ou desativar.

Mas descobri como usar o ar condicionado dentro e fora dos cronômetros. Defini-os por 10 segundos e os copiei no banco de dados. Agora, quando ativado, o comando para ativar o temporizador é transmitido primeiro e, em seguida, o comando para definir o modo junto com a temperatura. Controle de ar condicionado




O script verifica o tempo lá fora e, se os valores forem aceitáveis ​​(acima de -7 ° C), liga o ar condicionado para aquecimento ou resfriamento, dependendo da hora do dia e da temperatura ambiente. O sensor de temperatura lê uma vez por hora.

Se todos saírem de casa, os aparelhos de ar condicionado serão desligados. Se ninguém estiver lá e a temperatura estiver muito alta ou baixa, mas as baterias de aquecimento ainda não estiverem ligadas, um arrefecimento ou aquecimento de 15 minutos ocorre a cada hora para manter o clima interno. Cenário de gerenciamento de ar condicionado

Cenário de gerenciamento de ar condicionado


Aquecimento de piso


O sistema possui três circuitos para aquecimento de piso elétrico. Eles são controlados por três termostatos HeatIt Z-Wave .

HeatIt do termostato
HeatIt do

termostato O termostato permite configurar diferentes parâmetros de resistência para diferentes tipos de elementos de aquecimento, possui proteção para crianças, dois modos de aquecimento salvos e outras configurações menores.

Na estação fria, a temperatura do piso é fixada em 1 ° C a mais que no verão. Quando não há ninguém em casa, e também à noite, os pisos são desligados para economizar energia e ligados de manhã ou assim que alguém chega em casa. No banheiro, o piso aumenta a temperatura; se a luz estiver acesa, a porta estiver fechada, houve movimento até a porta ser fechada e a umidade aumentar acentuadamente. Após uma hora, o piso entra no estado anterior ou desliga (se a noite cair).

Cenário de controle de piso
Piso aquecido script de gerenciamento de chão roteiro aquecida gestão

Cenário de controle de piso


Aquecimento central


Como Moscou nem sempre desliga ou regula o aquecimento a tempo, dependendo da temperatura do lado de fora da janela, foi decidido colocar um termostato Danfoss Living Connect em cada bateria .

Termostato Danfoss Living Connect
Termostato Danfoss Living Connect

Este termostato é alimentado por baterias de dois dedos usando o protocolo Z-Wave. Um ano se passou desde a instalação, mas as baterias ainda não acabaram. A temperatura máxima definida é de 28 ° C. Como o sensor está próximo à bateria e o controle remoto não está conectado, às vezes fica.

No verão, o regulador de temperatura está sempre na posição "aberto" e faz um fechamento completo a cada duas semanas, para que o estoque não azeda. Quando você se conecta pela primeira vez durante a semana, o sensor é calibrado (o que realmente não agradou minha esposa, pois as baterias foram completamente desligadas periodicamente), mas depois tudo funcionou como deveria. Antes do início da estação de aquecimento, a temperatura média externa é verificada por duas semanas e, se estiver abaixo de 10 ° C, os termostatos entram no modo de aquecimento. Se a temperatura na sala for superior à temperatura confortável, os termostatos reduzem a temperatura ou desligam completamente a bateria.

Umidificadores


Para umidificar o ar no apartamento, foram considerados umidificadores centrais. Existem dois tipos principais: vapor e tradicional. Um umidificador a vapor requer muita eletricidade para aquecer constantemente a água. Ambos os tipos de umidificador drenam muita água no ralo, para que não floresça. É necessário realizar cálculos para que os dutos não floresçam e fluam. Também vale a pena considerar que os umidificadores centrais são caros e ocupam muito espaço.

Decidi usar umidificadores ultrassônicos em cada quarto. Eles rapidamente aumentam a umidade, mas requerem água purificada, de preferência após osmose reversa. A umidade pode ser definida nos próprios umidificadores ou pode ser controlada usando IR.


Um exemplo de como a interface funciona

Na segunda parte do artigo, falarei sobre iluminação, um sistema multimídia e sensores de segurança, além de resumir o uso a longo prazo do sistema.

All Articles