L'histoire de la façon dont j'ai automatisé l'appartement en utilisant Node-RED. Partie I

Au cours de la dernière année, j'ai assemblé et mis en place l'automatisation d'un petit appartement près d'une route très fréquentée. Dans cet article, je parlerai des solutions utilisées dans le système climatique, l'éclairage, le multimédia et les logiciels.



Ce que je voulais faire


  1. Automatisez l'arrêt de l'eau en cas d'urgence.
  2. Coupez la ventilation en cas d'incendie.
  3. Signaler l'urgence.
  4. ( , , , ).
  5. (, ).
  6. .
  7. ( , , «» ).


Il existe plusieurs systèmes de base pour gérer la domotique. Il existe à la fois des solutions payantes et des solutions gratuites - tout dépend de la plateforme. Il peut s'agir de FPGA (circuit intégré à logique programmable), de contrôleurs sous la forme du routeur, ainsi que de simples logiciels.

Au départ, je considérais le contrôleur FIBARO Home Center 2 fini comme le hub principal. Bien que l'interface y soit belle et qu'il existe de nombreux paramètres, mais le matériel s'est avéré faible. Le firmware, à en juger par les critiques, était parfois buggé. D'autres types de protocoles sont assez difficiles à connecter.

Parmi les options gratuites, j'ai examiné OpenHUB et Home Assistant.. OpenHUB semblait trop chargé et difficile à étendre: par exemple, il est difficile d'ajouter un nouveau module Z-Wave s'il n'est pas dans les configurations OpenHUB. Home Assistant est facilement extensible, mais au moment de l'intégration, l'automatisation ne pouvait être écrite qu'en YAML, ce qui est difficile à déboguer et à maintenir. L'intégration avec Z-Wave dans le Home Assistant a soulevé des questions. Par conséquent, j'ai choisi un autre analogue gratuit, dont je parlerai plus tard. J'ai choisi

Node-RED comme solution dorsale, car elle fournit de nombreuses intégrations prêtes à l'emploi avec différents protocoles, est gratuite et vous permet d'écrire la logique d'automatisation directement en JavaScript dans le navigateur sans recompilation. Avec cela, il suffit de déboguer les scripts en utilisant debug et inject.

Fenêtre d'édition de script Node-RED
Fenêtre d'édition de script Node-RED

Node-RED utilise NodeJS sous le capot, donc le reste de la liaison a été écrit dessus. Node-RED est juste un éditeur de script et un intégrateur de divers protocoles. La partie avant du contrôle - comme, par exemple, dans l'assistant domestique - est manquante. Il existe plusieurs plugins qui ajoutent la possibilité de contrôler les appareils à partir du navigateur, mais ils ne sont pas très pratiques à configurer et nécessitent d'écrire du code frontal également dans le navigateur ( node-red-dashboard ).

Chaque flux de mon système est autonome et toutes les communications entre les différents flux s'effectuent via le bus MQTT . Je peux également déplacer le flux chargé vers des serveurs séparés pour un traitement distribué.

Protocoles de communication avec les terminaux


Mon appartement n'est pas très grand, et il n'y avait surtout nulle part où placer l'unité de commutation, j'ai donc décidé d'utiliser des modules sans fil.

Le système utilise des relais de contrôle cachés pour laisser les boutons physiques dans la même série avec des prises. Des boutons physiques sont nécessaires à la fois pour le contrôle direct et en cas de défaillance du contrôleur central. J'ai choisi entre les systèmes sans fil Z-Wave et ZigBee.

Au moment de l'intégration du système, la technologie Z-Wave possédait la collection la plus complète d'appareils requis. Dans différents pays, Z-Wave utilise une fréquence de fonctionnement différente, en Russie, vous pouvez officiellement utiliser la fréquence de 869 MHz. Depuis que j'ai acheté la plupart des capteurs en Russie, j'ai décidé d'utiliser la fréquence officielle pour l'ensemble du système.

En plus de Z-Wave, le système utilise le module BroadLink IR et Modbus TCP.

Pour intégrer Z-Wave dans Node-RED, j'ai sélectionné la bibliothèque OpenZWave C ++ et node-red-contrib-openzwave . Traitement des événements Z-Wave Pour l'intégration de Modbus, j'utilise node-red-contrib-modbus , pour le contrôle BroadLink, j'utilise node-red-contrib-broadlink-control .

Gestion des événements Z-Wave




Base de données


J'ai choisi MongoDB comme base de données principale: les lectures actuelles des capteurs et des appareils finaux y sont écrites, il stocke également les codes IR des climatiseurs et du multimédia.

InfluxDB est utilisé comme base pour stocker des séries chronologiques. En fonction de ces données, vous pouvez voir les graphiques d'humidité, de température, créer des regroupements. Relevés de température extérieure pendant un mois




L'extrémité avant


J'ai décidé d'écrire moi-même la partie avant afin d'obtenir une flexibilité maximale du système. Lorsque vous travaillez avec Dashboard, deux systèmes auxiliaires sont utilisés:

  • Serveur MQTT basé sur aedes ;
  • serveur d'autorisation.

Le serveur d'autorisation émet un jeton JWT par identifiant et mot de passe, ou en appartenant à un réseau local, après quoi le serveur MQTT vérifie ce jeton à chaque fois qu'il envoie ou reçoit un message pour le système frontal.

Le frontal est écrit en ReactJS et MQTT sur WebSockets ( MQTT.JS ) est utilisé comme protocole de communication de serveur . Lorsque l'état MobX est utilisé. TypeScript est également utilisé et compile tout le webpack.

L'application se compose de deux pages:

Dashboard
Tableau de bord

Z-Wave-
Administration du panneau des appareils Z-Wave

Sur le panneau d'administration, vous pouvez ajouter et supprimer des appareils, configurer leurs paramètres et leurs associations.

FGD212
Réglage du gradateur FGD212

Sur la page Tableau de bord, vous pouvez ajouter de nouvelles pages et combiner des widgets d'appareil à votre guise.

D'un point de vue logiciel, chaque appareil est un module distinct, qui est entré dans le système via l'interface (Typescript). Cela donne une extensibilité assez facile et une intégration facile de nouveaux appareils sur le tableau de bord.

Équipement


En tant que contrôleur, j'utilise Intel NUC NUC7PJYH sur lequel Ubuntu Server est déployé. Pour la communication avec le réseau Z-Wave, j'ai choisi la clé USB Z-Wave.Me .

En tant que télécommande principale pour une maison intelligente, une tablette Android est utilisée, que j'ai commandée sur Alibaba.com . Et la tablette est venue directement de l'usine: avec un support Vesa, une alimentation PoE et une prise d'alimentation (pas USB). La tablette est alimentée par une alimentation 12V située sur un rail DIN dans l'armoire de commande. Il n'y a pas de batterie dans la tablette, afin de ne pas proposer d'options avec une charge constante.

J'ai commandé une tablette selon mes spécifications.


Télécommande

Système climatique


Pour maintenir un climat confortable, le système utilise:

  • Chauffage au sol électrique dans trois zones.
  • Climatisation des logements.
  • Ventilation centrale.
  • Humidificateurs.
  • Chauffage central.

Ventilation


Étant donné que la maison est située à côté d'une autoroute très fréquentée et que je ne souhaite pas ouvrir les fenêtres, j'utilise le système de ventilation.

,
Poussière noire sur la fenêtre, accumulée en environ trois mois.

En étudiant différentes solutions au problème de la ventilation sans ouvrir la fenêtre, j'ai fait une courte liste de trois options:

  • Installation de respirateurs dans chaque pièce.
  • Installation de l'unité extérieure et câblage des conduits sur le mur extérieur.
  • Système de ventilation central.

Les respirateurs ont été rejetés immédiatement, car ils devraient être placés dans chaque pièce et, à mon avis, ils sont assez bruyants pour un échange d'air normal. L'une des conditions importantes pour moi était le faible niveau de bruit et la capacité de ventiler rapidement la pièce. Lors de l'utilisation d'un reniflard, un bloc avec des filtres et un ventilateur est accroché directement sur le mur à l'intérieur de la pièce, ce qui prend plus de place dans l'appartement.

De nombreux installateurs proposent de monter une unité de ventilation externe ou d'installer une alimentation sur le balcon. Mais je n'ai pas de balcon, et l'unité extérieure sur le mur aurait l'air plutôt encombrante. Étant donné que deux unités de climatiseurs sont déjà accrochées au mur, une telle conception n'aurait pas été approuvée. J'ai donc choisi un système de ventilation central.

Étant donné que l'espace de l'appartement est limité et que l'on ne souhaitait pas abaisser les plafonds dans tout l'appartement, l'afflux a été installé dans le couloir, où les plafonds ont été abaissés, et l'entrée a été effectuée depuis la chambre des enfants.


Entrée de ventilation

Un trou d'un diamètre de 160 mm a été percé dans la paroi extérieure à l'aide d'un foret au diamant et galvanisé avec une grille externe. Le tuyau d'entrée était isolé avec une isolation K-flex. Ensuite, le tuyau longe le mur de la cuisine et pénètre dans l'unité de ventilation principale.

Breezart 550 lux
Unité de ventilation Breezart 550 lux et unité pour filtre optionnel L'

unité de ventilation a été sélectionnée par Breezart . Lors du choix, j'ai pris en compte le coût d'installation, les dimensions et la possibilité de se connecter au système d'automatisation. L'unité a une capacité maximale de 550 m³ par heure:
Le système dispose d'un ventilateur silencieux à 10 vitesses et d'un aérotherme électrique. Une vanne électromécanique est installée à l'entrée, qui se ferme lorsque l'appareil est éteint afin que l'air froid ne circule pas dans l'appartement. Côté électronique, l'installation a fourni trois ports Modbus, des capteurs de température et des capteurs de pression pour déterminer si les filtres sont sales. Inclus avec l'installation est un filtre grossier G4.


Le filtre grossier après six mois d'utilisation

Le filtre grossier est bouché de 70% après un an d'utilisation, mais à en juger par le capteur de CO₂, la ventilation ne tire plus à basse vitesse. Jusqu'au 20 décembre - le filtre est bouché, après le 20 décembre - un nouveau filtre, la vitesse est la même

20  —  ,  20  —  ,


Après l'installation de ventilation, il y a un filtre fin F7. En utilisant des filtres plus fins, tels que HEPA, pour ma situation, je l'ai jugé inapproprié: ils se boucheront rapidement et l'installation ne pourra pas les pousser. De plus, les fabricants ne recommandent pas de dépasser la chute de pression à travers le filtre, car cela augmenterait la charge sur le ventilateur et la saleté des filtres pourrait commencer à souffler dans les pièces.


Après le filtre fin, deux régulateurs de débit d'air mécaniques sont installés, suivis de plusieurs conduits d'air flexibles SONODEC vers les pièces. Ce type de conduit a été choisi pour ne pas mettre un silencieux encombrant et en même temps noyer le bruit de l'installation. Après la fermeture du plafond, le système de ventilation n'est audible qu'à partir de la vitesse 8 (440 m³ par heure) et uniquement depuis le couloir. À la sortie de ventilation, il y a des grilles réglables dans deux directions.


Système de ventilation au plafond


Sortie de ventilation vers l'une des pièces

Une télécommande du kit est connectée à l'un des ports Modbus et le serveur Modbus TCP HF2211 au second.

Modbus RTU — Modbus TCP converter HF2211
Modbus RTU - Convertisseur Modbus TCP HF2211

Ce serveur vous permet de vous connecter au réseau interne via Wi-Fi ou Ethernet, d'une part, et à l'appareil Modbus RTU d'autre part. Ensuite, vous pouvez augmenter le serveur avec les paramètres nécessaires et accéder déjà à l'unité de ventilation via le réseau. L'installation est interrogée toutes les 300 ms: les erreurs et les sommes de contrôle sont vérifiées et seulement après cela, il est autorisé à écrire des données dans les registres. La communication avec l'installation se fait via le plug-in node-red-contrib-modbus . Schéma de réception et d'envoi des paramètres d'une unité de ventilation via modbus Schéma de réception et d'envoi des paramètres d'une unité de ventilation via modbus Le site Web du fabricant contient une référence détaillée des registres modbus et une description générale

modbus


modbus


pour cette installation, mais vous devez vérifier la version du contrôleur et du micrologiciel. L'unité de ventilation est contrôlée automatiquement par le temps et par le capteur CO₂ MH-Z19b. Automatisation de la ventilation par flux Ventilation par automatisation du flux Le capteur de CO₂ est portable, assemblé sur la base du capteur MH-Z19b, de deux batteries 18650, ESP32 et IRF520 mosfet (pour déconnecter l'alimentation du capteur pendant le sommeil du contrôleur). Lectures de CO₂ pendant un mois, pic à 1800 PPM - les invités sont venus avec l'inclusion ultérieure de ventilation à des révolutions plus élevées.En fonction de la vitesse d'installation, une température confortable de l'air entrant est réglée, ce qui chauffe le réchauffeur d'air.

Flow


Flow




CO₂  ,   1800 PPM —




À des vitesses plus élevées, une température plus élevée est nécessaire - sinon un courant d'air froid sera ressenti. Afin de ne pas consommer beaucoup d'électricité en hiver, lorsqu'il fait plus froid en dehors de -7 ° C, l'installation est limitée à une troisième vitesse. La nuit, l'installation est limitée à une quatrième vitesse. Si personne n'est à la maison, le système passe automatiquement à la première vitesse. À la commande "Vacation", un arrêt complet se produit.

Il y a un mode de préchauffage après les vacances, aéré à pleine vitesse et une transition vers la première vitesse sur une minuterie. Si le système est équipé de capteurs CO₂, un contrôle supplémentaire de la vitesse est possible conformément aux restrictions globales.

Conditionnement


Le système dispose de plusieurs climatiseurs avec modes de refroidissement et de chauffage. Il y avait une idée de mettre la climatisation centrale, mais tous les systèmes sont trop grands et ne donnent pas la possibilité de réguler la température dans chaque pièce. Malheureusement, mes climatiseurs sont contrôlés uniquement par IR. J'ai donc acheté le panneau de commande Broadlink RM Mini3.

Broadlink RM Mini3
Broadlink RM Mini3

Si vous utilisez une application native, cette télécommande se connectera aux serveurs chinois, de sorte que toutes les commandes de configuration et de gestion sont transmises directement à partir de Node-RED à l'aide du module de contrôle node-red-contrib-broadlink-control .

Comme je n'ai trouvé aucun code IR propre pour les climatiseurs et que la télécommande transmet l'ensemble de l'état (tours, mode, température) - tous les états possibles pour le chauffage et le refroidissement ont été copiés de la télécommande de la climatisation à l'aide de Broadlink dans la base de données. Il n'y avait aucune commande propre pour activer ou désactiver non plus.

Mais j'ai trouvé comment utiliser les minuteries d'activation et de désactivation du climatiseur. Je les ai définies pendant 10 secondes et les ai copiées dans la base de données. Maintenant, lorsqu'elle est activée, la commande d'activation par minuterie est transmise en premier, puis la commande pour définir le mode avec la température. Contrôle de la climatisation




Le script vérifie la météo extérieure et, si les valeurs sont acceptables (plus de -7 ° C), il allume le climatiseur pour le chauffage ou le refroidissement, en fonction de l'heure de la journée et de la température ambiante. Le capteur de température lit une fois par heure.

Si tout le monde quitte la maison, les climatiseurs s'éteignent. Si personne n'est là et que la température est trop élevée ou trop basse, mais que les batteries de chauffage ne sont pas encore allumées, un refroidissement ou un chauffage de 15 minutes a lieu toutes les heures pour maintenir le climat intérieur. Scénario de gestion du climatiseur

Scénario de gestion du climatiseur


Chauffage au sol


Le système dispose de trois circuits pour le chauffage au sol électrique. Ils sont contrôlés par trois thermostats HeatIt Z-Wave .

Thermostat HeatIt
Thermostat HeatIt Le

thermostat vous permet de configurer différents paramètres de résistance pour différents types d'éléments chauffants, dispose d'une protection enfant, de deux modes de chauffage enregistrés et d'autres réglages mineurs.

Pendant la saison froide, la température du sol est réglée à 1 ° C de plus que l'été. Lorsqu'il n'y a personne à la maison, et également la nuit, les sols sont éteints pour économiser l'énergie et allumés le matin ou dès que quelqu'un rentre à la maison. Dans la salle de bain, le sol augmente la température, si la lumière est allumée, la porte est fermée, il y a eu du mouvement jusqu'à ce que la porte soit fermée et l'humidité a fortement augmenté. Après une heure, le plancher revient à l'état précédent ou s'éteint (si la nuit tombe).

Scénario de contrôle sous plancher
Plancher chauffant script de gestion de script de gestion de plancher chauffant

Scénario de contrôle sous plancher


Chauffage central


Comme Moscou n'éteint pas ou ne règle pas toujours le chauffage à l'heure en fonction de la température à l'extérieur de la fenêtre, il a été décidé de mettre un thermostat Danfoss Living Connect sur chaque batterie .

Thermostat Danfoss Living Connect
Thermostat Danfoss Living Connect

Ce thermostat est alimenté par deux piles digitales utilisant le protocole Z-Wave. Un an s'est écoulé depuis l'installation, mais les piles ne sont pas encore épuisées. La température de consigne maximale est de 28 ° C. Étant donné que le capteur est à côté de la batterie et que la télécommande n'est pas connectée, il se trouve parfois.

En été, le régulateur de température est toujours en position «ouverte» et effectue une fermeture complète une fois toutes les deux semaines, afin que le stock ne s'acide pas. Lorsque vous vous connectez pour la première fois au cours de la semaine, le capteur est calibré (ce qui n'a pas vraiment plu à ma femme, car les piles étaient complètement éteintes périodiquement), mais après cela, tout a fonctionné comme il se doit. Avant le début de la saison de chauffage, la température extérieure moyenne pendant deux semaines est vérifiée et si elle est inférieure à 10 ° C, les thermostats passent en mode chauffage. Si la température de la pièce est supérieure à celle confortable, les thermostats réduisent la température ou éteignent complètement la batterie.

Humidificateurs


Pour humidifier l'air de l'appartement, des humidificateurs centraux ont été envisagés. Il existe deux types principaux: vapeur et traditionnel. Un humidificateur à vapeur nécessite beaucoup d'électricité pour chauffer constamment l'eau. Les deux types d'humidificateurs drainent beaucoup d'eau dans le drain afin qu'il ne fleurisse pas. Il est nécessaire d'effectuer des calculs pour que les conduits ne fleurissent pas et ne coulent pas. Il convient également de considérer que les humidificateurs centraux sont chers et prennent beaucoup de place.

J'ai décidé d'utiliser des humidificateurs à ultrasons dans chaque pièce. Ils augmentent rapidement l'humidité, mais ils nécessitent de l'eau purifiée, de préférence après l'osmose inverse. L'humidité peut être réglée sur les humidificateurs eux-mêmes, ou peut être contrôlée par infrarouge.


Un exemple du fonctionnement de l'interface

Dans la deuxième partie de l' article, je parlerai de l'éclairage, d'un système multimédia et des capteurs de sécurité, et résumerai également l'utilisation à long terme du système.

All Articles