La historia de cómo automaticé el apartamento usando Node-RED. Parte 1

Durante el año pasado, ensamblé y configuré la automatización para un pequeño apartamento cerca de una carretera concurrida. En este artículo hablaré sobre las soluciones utilizadas en el sistema climático, iluminación, multimedia y software.



Lo que quería hacer


  1. Automatice el cierre del agua en caso de emergencia.
  2. Apague la ventilación en caso de incendio.
  3. Informe de emergencia.
  4. ( , , , ).
  5. (, ).
  6. .
  7. ( , , «» ).


Existen varios sistemas básicos para administrar la automatización del hogar. Hay soluciones pagas y gratuitas, todo depende de la plataforma. Puede ser FPGA (circuito integrado lógico programable), controladores en el factor de forma del enrutador, así como solo software.

Inicialmente, consideré el controlador FIBARO Home Center 2 terminado como el centro principal. Aunque la interfaz allí es hermosa y hay muchas configuraciones, pero el hardware resultó ser débil. El firmware, a juzgar por las revisiones, a veces tenía errores. Otros tipos de protocolos son bastante difíciles de conectar.

De las opciones gratuitas, revisé OpenHUB y Home Assistant.. OpenHUB parecía demasiado cargado y difícil de expandir: por ejemplo, es difícil agregar un nuevo módulo Z-Wave si no está en las configuraciones de OpenHUB. Home Assistant es fácilmente extensible, pero en el momento de la integración, la automatización solo se podía escribir en YAML, que es difícil de depurar y mantener. La integración con Z-Wave en Home Assistant ha planteado preguntas. Por lo tanto, elegí otro análogo gratuito, que discutiré más adelante. Elegí

Node-RED como la solución de back - end, ya que proporciona muchas integraciones listas para usar con diferentes protocolos, es gratis y le permite escribir lógica de automatización directamente en JavaScript en el navegador sin recompilar. Con él, solo depure los scripts usando depurar e inyectar.

Ventana de edición de script Node-RED
Ventana de edición de script Node-RED

Node-RED usa NodeJS debajo del capó, por lo que el resto del enlace también se escribió en él. Node-RED es solo un editor de script e integrador de varios protocolos. Falta la parte frontal del control, como, por ejemplo, en Home Assistant. Hay varios complementos que agregan la capacidad de controlar dispositivos desde el navegador, pero no son muy convenientes de configurar y requieren escribir código de front-end también en el navegador ( node-red-dashboard ).

Cada Flow en mi sistema es autónomo y toda comunicación entre diferentes Flows se realiza a través del bus MQTT . También puedo mover el Flow cargado a servidores separados para el procesamiento distribuido.

Protocolos de comunicación con dispositivos finales.


Mi apartamento no es muy grande y no había ningún lugar especialmente para colocar la unidad de conmutación, así que decidí usar módulos inalámbricos.

El sistema utiliza relés de control ocultos para dejar los botones físicos en la misma serie con salidas. Los botones físicos son necesarios tanto para el control directo como en caso de falla del controlador central. Elegí entre los sistemas inalámbricos Z-Wave y ZigBee.

En el momento de la integración del sistema, la tecnología Z-Wave tenía la colección más completa de dispositivos requeridos. En diferentes países, Z-Wave usa una frecuencia de operación diferente, en Rusia puede usar oficialmente la frecuencia de 869 MHz. Como compré la mayoría de los sensores en Rusia, decidí usar la frecuencia oficial para todo el sistema.

Además de Z-Wave, el sistema usa el módulo IR BroadLink y Modbus TCP.

Para integrar Z-Wave en Node-RED, seleccioné la biblioteca OpenZWave C ++ y node-red-contrib-openzwave . Event Processing Z-Wave para integrar Modbus utiliza node-red-contrib-modbus , gestión BroadLink - node-red-the contrib-broadlink-control .

Manejo de eventos Z-Wave




Base de datos


Elegí MongoDB como la base de datos principal: las lecturas actuales de los sensores y dispositivos finales están escritas allí, también almacena códigos IR para aires acondicionados y multimedia.

InfluxDB se utiliza como base para almacenar series temporales. De acuerdo con estos datos, puede ver los gráficos de humedad, temperatura, construir cualquier agrupación. Lecturas de temperatura exterior durante un mes.




Interfaz


Decidí escribir la parte frontal para lograr la máxima flexibilidad del sistema. Cuando se trabaja con Dashboard, se utilizan dos sistemas auxiliares:

  • Servidor MQTT basado en aedes ;
  • servidor de autorizaciones.

El servidor de autorización emite un token JWT por inicio de sesión y contraseña, o por pertenecer a una red local, después de lo cual el servidor MQTT verifica este token cada vez que envía o recibe un mensaje para el sistema front-end.

El front-end está escrito en ReactJS, y MQTT sobre WebSockets ( MQTT.JS ) se usa como un protocolo de comunicación del servidor . Como estado se usa MobX. También se usa TypeScript, y todo compila webpack.

La aplicación consta de dos páginas:

Dashboard
Panel de

Z-Wave-
administración del panel de dispositivos Z-Wave

En el panel de administración, puede agregar y quitar dispositivos, configurar sus parámetros y asociaciones.

FGD212
Ajuste del atenuador FGD212

En la página Panel, puede agregar nuevas páginas y combinar widgets de dispositivo como desee.

Desde el punto de vista del software, cada dispositivo es un módulo separado, que se ingresa en el sistema a través de la interfaz (Typecript). Esto proporciona una extensibilidad bastante fácil y una fácil integración de nuevos dispositivos en el Tablero.

Equipo


Como controlador, uso el Intel NUC NUC7PJYH en el que se implementa Ubuntu Server. Para la comunicación con la red Z-Wave, elegí el dispositivo USB Z-Wave.Me .

Como control remoto principal para un hogar inteligente, se usa una tableta Android, que pedí en Alibaba.com . Y la tableta vino directamente de fábrica: con un soporte Vesa, alimentación PoE y un enchufe de alimentación (no USB). La tableta está alimentada por una fuente de alimentación de 12V ubicada en un riel DIN en el gabinete de control. No hay batería en la tableta, para no tener opciones con carga constante.

Pedí una tableta de acuerdo con mis especificaciones.


Control remoto

Sistema climático


Para mantener un clima confortable, el sistema utiliza:

  • Suelo radiante eléctrico en tres zonas.
  • Aire acondicionado de viviendas.
  • Ventilación central.
  • Humidificadores
  • Calefacción central.

Ventilación


Como la casa se encuentra al lado de una carretera concurrida y no quiero abrir las ventanas, uso el sistema de ventilación.

,
Polvo negro en la ventana, acumulado en unos tres meses.

Estudiando diferentes soluciones al problema de la ventilación sin abrir la ventana, hice una breve lista de tres opciones:

  • Instalación de respiraderos en cada habitación.
  • Instalación de la unidad exterior y cableado de los conductos en la pared externa.
  • Sistema de ventilación central.

Los respiraderos fueron rechazados de inmediato, ya que tendrían que colocarse en todas las habitaciones y, en mi opinión, son bastante ruidosos para el intercambio de aire normal. Una de las condiciones importantes para mí fue el bajo nivel de ruido y la capacidad de ventilar rápidamente la habitación. Cuando se usa un respiradero, se cuelga un bloque con filtros y un ventilador directamente en la pared dentro de la habitación, lo que ocupa espacio adicional en el apartamento.

Muchos instaladores ofrecen montar una unidad de ventilación externa o instalar un suministro al balcón. Pero no tengo un balcón, y la unidad externa en la pared se vería bastante voluminosa. Dado que dos unidades de aires acondicionados ya están colgadas en la pared, dicho diseño no habría sido aprobado. Por lo tanto, elegí un sistema de ventilación central.

Dado que el espacio del apartamento es limitado y no se deseaba bajar los techos en todo el apartamento, la entrada se instaló en el pasillo, donde se bajaron los techos, y la entrada se realizó desde la habitación de los niños.


Entrada de ventilación

Se perforó un orificio con un diámetro de 160 mm en la pared exterior utilizando un taladro de diamante y se galvanizó con una parrilla externa. El tubo de entrada estaba aislado con aislamiento K-flex. Luego, la tubería va a lo largo de la pared de la cocina y entra en la unidad de ventilación principal.

Breezart 550 lux
Unidad de ventilación Breezart 550 lux y unidad para filtro opcional La

unidad de ventilación fue seleccionada por Breezart . Al elegir, tomé en cuenta el costo de instalación, las dimensiones y la capacidad de conectarse al sistema de automatización. La unidad tiene una capacidad máxima de 550 m³ por hora:
El sistema tiene un ventilador silencioso con 10 velocidades y un calentador de aire eléctrico. Se instala una válvula electromecánica en la entrada, que se cierra cuando se apaga la unidad para que el aire frío no camine por el apartamento. En el lado de la electrónica, la instalación proporcionó tres puertos Modbus, sensores de temperatura y sensores de presión para determinar si los filtros están sucios. Con la instalación se incluye un filtro grueso G4.


El filtro grueso después de seis meses de uso

El filtro grueso se obstruyó en un 70% después de un año de uso, pero a juzgar por el sensor de CO₂, la ventilación ya no funcionaba a bajas velocidades. Hasta el 20 de diciembre - el filtro está obstruido, después del 20 de diciembre - un filtro nuevo, la velocidad es la misma

20  —  ,  20  —  ,


Después de la instalación de ventilación, hay un filtro fino F7. Utilizando filtros más finos, como HEPA, para mi situación, lo consideré inapropiado: se obstruirán rápidamente y la instalación no podrá presionarlos. Además, los fabricantes no recomiendan exceder la caída de presión a través del filtro, ya que esto aumentará la carga en el ventilador y la suciedad de los filtros puede comenzar a soplar en las habitaciones.


Después del filtro fino, se instalan dos reguladores mecánicos de flujo de aire, seguidos por varios conductos de aire flexibles SONODEC a las habitaciones. Se eligió este tipo de conducto para no colocar un silenciador voluminoso y al mismo tiempo ahogar el ruido de la instalación. Después de cerrar el techo, el sistema de ventilación es audible solo a partir de la velocidad 8 (440 m³ por hora) y solo desde el pasillo. En la salida de ventilación hay rejillas ajustables en dos direcciones.


Sistema de ventilación montado en el techo


Salida de ventilación a una de las habitaciones

Un control remoto del kit está conectado a uno de los puertos Modbus y el servidor Modbus TCP HF2211 al segundo.

Modbus RTU — Modbus TCP converter HF2211
Modbus RTU - Convertidor Modbus TCP HF2211

Este servidor le permite conectarse a la red interna a través de Wi-Fi o Ethernet, por un lado, y al dispositivo Modbus RTU por el otro. Luego, puede elevar el servidor con la configuración necesaria y acceder a la unidad de ventilación a través de la red. La instalación se sondea cada 300 ms: los errores y las sumas de verificación se verifican y solo después de eso se le permite escribir algunos datos en los registros. La comunicación con la instalación se realiza a través del complemento node-red-contrib-modbus . Esquema de recepción y envío de parámetros desde una unidad de ventilación a través de modbus Esquema de recepción y envío de parámetros desde una unidad de ventilación a través de modbus El sitio web del fabricante tiene una referencia detallada de los registros de modbus y una descripción general

modbus


modbus


para esta instalación, pero debe verificar la versión del controlador y el firmware. La unidad de ventilación se controla automáticamente por tiempo y por el sensor CO₂ MH-Z19b. Automatización de ventilación de flujo Ventilación de automatización de flujo El sensor de CO₂ es portátil, montado sobre la base del sensor MH-Z19b, dos baterías 18650, mosfet ESP32 e IRF520 (para desconectar la alimentación del sensor durante el sueño del controlador). Lecturas de CO₂ durante un mes, pico a 1800 PPM - los invitados vinieron con la inclusión posterior de ventilación a revoluciones más altas . Dependiendo de la velocidad de instalación, se establece una temperatura cómoda del aire entrante, que calienta el calentador de aire.

Flow


Flow




CO₂  ,   1800 PPM —




A velocidades más altas, se requiere una temperatura más alta; de lo contrario, se sentirá una corriente de aire frío. Para no consumir mucha electricidad en invierno, cuando hace más frío fuera de -7 ° C, la instalación se limita a una tercera velocidad. Por la noche, la instalación se limita a una cuarta velocidad. Si no hay nadie en casa, el sistema cambia automáticamente a la primera velocidad. En el comando "Vacaciones", se produce un apagado completo.

Hay un modo de precalentamiento después de las vacaciones, que se transmite a toda velocidad y una transición a la primera velocidad en un temporizador. Si el sistema tiene sensores de CO₂, entonces es posible un control de velocidad adicional de acuerdo con las restricciones globales.

Acondicionamiento


El sistema tiene varios aires acondicionados con modos de enfriamiento y calefacción. Hubo una idea de poner aire acondicionado central, pero todos los sistemas son demasiado grandes y no permiten que se regule la temperatura en cada habitación. Desafortunadamente, mis aires acondicionados son controlados solo por IR. Así que compré el panel de control Broadlink RM Mini3.

Broadlink RM Mini3
Broadlink RM Mini3

Si utiliza una aplicación nativa, este control remoto se conectará a los servidores chinos, por lo que todos los comandos de configuración y administración se transmiten directamente desde Node-RED utilizando el módulo de control de enlace de nodo-red-contrib-broadlink .

Como no encontré ningún código IR limpio para los aires acondicionados, y el control remoto transmite todo el estado (revoluciones, modo, temperatura), todos los estados posibles para calefacción y refrigeración se copiaron del control remoto del aire acondicionado usando Broadlink a la base de datos. Tampoco hubo comandos limpios para habilitar o deshabilitar.

Pero descubrí cómo usar los temporizadores de encendido y apagado del aire acondicionado. Los configuré durante 10 segundos y los copié en la base de datos. Ahora, cuando se enciende, el comando para encender por temporizador se transmite primero, y luego el comando para configurar el modo junto con la temperatura. Control de aire acondicionado




El script verifica el clima exterior y, si los valores son aceptables (más de −7 ° C), enciende el aire acondicionado para calentar o enfriar, según la hora del día y la temperatura ambiente. El sensor de temperatura lee una vez por hora.

Si todos salen de la casa, los aires acondicionados se apagan. Si no hay nadie allí y la temperatura es demasiado alta o baja, pero las baterías de calentamiento aún no están encendidas, entonces se produce un enfriamiento o calentamiento de 15 minutos cada hora para mantener el clima interior. Escenario de gestión del aire acondicionado

Escenario de gestión del aire acondicionado


Calefacción por suelo


El sistema tiene tres circuitos para calefacción eléctrica de piso. Están controlados por tres termostatos HeatIt Z-Wave .

Termostato HeatIt
Termostato HeatIt El

termostato le permite configurar diferentes parámetros de resistencia para diferentes tipos de elementos de calentamiento, tiene protección para niños, dos modos de calentamiento guardados y otras configuraciones menores.

En la estación fría, la temperatura del piso se establece en 1 ° C más que en verano. Cuando no hay nadie en casa, y también en la noche, los pisos se apagan para ahorrar energía y se encienden por la mañana o tan pronto como alguien llega a casa. En el baño, el piso eleva la temperatura, si la luz está encendida, la puerta está cerrada, hubo movimiento hasta que la puerta se cerró y la humedad aumentó bruscamente. Después de una hora, el piso pasa al estado anterior o se apaga (si cae la noche).

Escenario de control debajo del piso
Calefacción por suelo radiante gestión script de gestión de suelo guión climatizada

Escenario de control debajo del piso


Calefacción central


Dado que Moscú no siempre apaga o regula el calentamiento a tiempo dependiendo de la temperatura fuera de la ventana, se decidió poner un termostato Danfoss Living Connect en cada batería .

Termostato Danfoss Living Connect
Termostato Danfoss Living Connect

Este termostato funciona con baterías de dos dedos que utilizan el protocolo Z-Wave. Ha pasado un año desde la instalación, pero las baterías aún no se han agotado. La temperatura máxima establecida es de 28 ° C. Como el sensor está al lado de la batería y el control remoto no está conectado, a veces se encuentra.

En el verano, el regulador de temperatura siempre está en la posición "abierta" y se cierra por completo una vez cada dos semanas, para que el stock no se agriete. Cuando se conecta por primera vez durante la semana, el sensor está calibrado (lo que realmente no complació a mi esposa, ya que las baterías se apagaban por completo periódicamente), pero después de eso todo funcionó como debería. Antes del comienzo de la temporada de calefacción, se verifica la temperatura exterior promedio durante dos semanas y, si está por debajo de 10 ° C, los termostatos entran en modo de calefacción. Si la temperatura en la habitación es más alta que la cómoda, los termostatos reducen la temperatura o apagan completamente la batería.

Humidificadores


Para humedecer el aire en el departamento, se consideraron los humidificadores centrales. Hay dos tipos principales: vapor y tradicional. Un humidificador de vapor requiere mucha electricidad para calentar constantemente el agua. Ambos tipos de humidificador drenan mucha agua en el desagüe para que no florezca. Es necesario realizar cálculos para que los conductos no florezcan y fluyan. También vale la pena considerar que los humidificadores centrales son caros y ocupan mucho espacio.

Decidí usar humidificadores ultrasónicos en cada habitación. Rápidamente aumentan la humedad, pero requieren agua purificada, preferiblemente después de la ósmosis inversa. La humedad se puede establecer en los propios humidificadores, o se puede controlar con IR.


Un ejemplo del funcionamiento de la interfaz

En la segunda parte del artículo hablaré sobre iluminación, un sistema multimedia y sensores de seguridad, y también resumiré el uso a largo plazo del sistema.

All Articles