Die Geschichte, wie ich die Wohnung mit Node-RED automatisiert habe. Teil I.

Im letzten Jahr habe ich eine kleine Wohnung in der Nähe einer stark befahrenen Straße zusammengebaut und automatisiert. In diesem Artikel werde ich über die Lösungen sprechen, die in den Bereichen Klimasystem, Beleuchtung, Multimedia und Software verwendet werden.



Was ich machen wollte


  1. Automatische Wasserabschaltung im Notfall.
  2. Schalten Sie die Belüftung im Brandfall aus.
  3. Notfall melden.
  4. ( , , , ).
  5. (, ).
  6. .
  7. ( , , «» ).


Es gibt mehrere grundlegende Systeme zur Verwaltung der Hausautomation. Es gibt sowohl kostenpflichtige als auch kostenlose Lösungen - alles hängt von der Plattform ab. Dies können FPGA (Programmable Logic Integrated Circuit), Controller im Formfaktor des Routers sowie nur Software sein.

Anfangs betrachtete ich den fertigen FIBARO Home Center 2- Controller als Haupt-Hub. Die Benutzeroberfläche dort ist zwar schön und es gibt viele Einstellungen, aber die Hardware hat sich als schwach herausgestellt. Die Firmware war nach den Bewertungen manchmal fehlerhaft. Andere Arten von Protokollen sind ziemlich schwer zu verbinden.

Von den kostenlosen Optionen habe ich OpenHUB und Home Assistant überprüft .. OpenHUB schien zu geladen und schwer zu erweitern zu sein: Es ist beispielsweise schwierig, ein neues Z-Wave-Modul hinzuzufügen, wenn es nicht in OpenHUB-Konfigurationen enthalten ist. Home Assistant ist leicht erweiterbar, aber zum Zeitpunkt der Integration konnte die Automatisierung nur in YAML geschrieben werden, was schwierig zu debuggen und zu warten ist. Die Integration mit Z-Wave in den Home Assistant hat Fragen aufgeworfen. Deshalb habe ich ein anderes freies Analogon gewählt, auf das ich später noch eingehen werde. Ich habe

Node-RED als Backend-Lösung gewählt, da es viele vorgefertigte Integrationen mit verschiedenen Protokollen bietet, kostenlos ist und es Ihnen ermöglicht, Automatisierungslogik ohne Neukompilierung direkt in JavaScript im Browser zu schreiben. Debuggen Sie dazu einfach Skripte mit Debug und Inject.

Node-RED-Skriptbearbeitungsfenster
Node-RED-Skriptbearbeitungsfenster

Node-RED verwendet NodeJS unter der Haube, daher wurde auch der Rest der Bindung darauf geschrieben. Node-RED ist nur ein Skripteditor und Integrator verschiedener Protokolle. Der vordere Teil des Steuerelements - wie zum Beispiel im Home Assistant - fehlt. Es gibt mehrere Plugins, mit denen Geräte über den Browser gesteuert werden können. Sie sind jedoch nicht sehr bequem zu konfigurieren und erfordern das Schreiben von Front-End-Code auch im Browser ( Node-Red-Dashboard ).

Jeder Flow in meinem System ist autonom und die gesamte Kommunikation zwischen verschiedenen Flows erfolgt über den MQTT-Bus . Ich kann den geladenen Flow auch für die verteilte Verarbeitung auf separate Server verschieben.

Kommunikationsprotokolle mit Endgeräten


Meine Wohnung ist nicht sehr groß, und es gab vor allem keinen Ort, an dem die Vermittlungseinheit aufgestellt werden konnte. Deshalb habe ich mich für drahtlose Module entschieden.

Das System verwendet versteckte Steuerrelais, um die physischen Tasten in derselben Serie mit Steckdosen zu belassen. Physische Tasten werden sowohl für die direkte Steuerung als auch für den Fall eines Ausfalls der zentralen Steuerung benötigt. Ich habe mich für drahtlose Z-Wave- und ZigBee-Systeme entschieden.

Zum Zeitpunkt der Systemintegration verfügte die Z-Wave-Technologie über die umfassendste Sammlung der erforderlichen Geräte. In verschiedenen Ländern verwendet Z-Wave eine andere Betriebsfrequenz, in Russland können Sie offiziell die Frequenz von 869 MHz verwenden. Da ich die meisten Sensoren in Russland gekauft habe, habe ich beschlossen, die offizielle Frequenz für das gesamte System zu verwenden.

Zusätzlich zu Z-Wave verwendet das System das BroadLink IR-Modul und Modbus TCP.

Um Z-Wave in Node-RED zu integrieren, habe ich die OpenZWave C ++ - Bibliothek und Node-Red-Contrib-Openzwave ausgewählt . Ereignisverarbeitung Z-Wave zur Integration von Modbus verwendet Node-Red-Contrib-Modbus , Management BroadLink - Node-Red- Contrib-Broadlink -Steuerung .

Behandlung von Z-Wave-Ereignissen




Datenbank


Ich habe MongoDB als Hauptdatenbank gewählt: Dort werden aktuelle Messwerte von Sensoren und Endgeräten geschrieben, und es werden auch IR-Codes für Klimaanlagen und Multimedia gespeichert.

InfluxDB wird als Basis zum Speichern von Zeitreihen verwendet. Anhand dieser Daten können Sie die Diagramme von Luftfeuchtigkeit, Temperatur und Gruppierungen anzeigen. Außentemperaturwerte für einen Monat




Vorderes Ende


Ich habe mich entschlossen, den vorderen Teil selbst zu schreiben, um maximale Systemflexibilität zu erreichen. Bei der Arbeit mit Dashboard werden zwei Hilfssysteme verwendet:

  • MQTT-Server basierend auf aedes ;
  • Autorisierungsserver.

Der Autorisierungsserver stellt ein JWT-Token durch Anmeldung und Kennwort oder durch Zugehörigkeit zu einem lokalen Netzwerk aus. Danach überprüft der MQTT-Server dieses Token jedes Mal, wenn er eine Nachricht für das Front-End-System sendet oder empfängt.

Das Frontend ist in ReactJS geschrieben, und MQTT über WebSockets ( MQTT.JS ) wird als Serverkommunikationsprotokoll verwendet . Als Zustand wird MobX verwendet. TypeScript wird ebenfalls verwendet und kompiliert das Webpack.

Die Anwendung besteht aus zwei Seiten:

Dashboard
Dashboard-

Z-Wave-
Verwaltungsbereich von Z-Wave-Geräten

Im Verwaltungsbereich können Sie Geräte hinzufügen und entfernen sowie deren Parameter und Zuordnungen konfigurieren.

FGD212
FGD212 Dimmereinstellung

Auf der Dashboard-Seite können Sie neue Seiten hinzufügen und Geräte-Widgets nach Ihren Wünschen kombinieren.

Aus Sicht der Software ist jedes Gerät ein separates Modul, das über die Schnittstelle (Typescript) in das System eingegeben wird. Dies bietet eine relativ einfache Erweiterbarkeit und einfache Integration neuer Geräte in das Dashboard.

Ausrüstung


Als Controller verwende ich den Intel NUC NUC7PJYH, auf dem Ubuntu Server bereitgestellt wird. Für die Kommunikation mit dem Z-Wave-Netzwerk habe ich den USB-Stick Z-Wave.Me gewählt .

Als Hauptfernbedienung für ein Smart Home wird ein Android-Tablet verwendet, das ich auf Alibaba.com bestellt habe . Und das Tablet wurde direkt ab Werk geliefert: mit Vesa-Halterung, PoE-Stromversorgung und Netzstecker (nicht USB). Das Tablet wird von einem 12-V-Netzteil gespeist, das sich auf einer DIN-Schiene im Schaltschrank befindet. Das Tablet enthält keinen Akku, um keine Optionen für eine konstante Aufladung zu finden.

Ich habe ein Tablet nach meinen Vorgaben bestellt.


Schalttafel

Klimasystem


Um ein angenehmes Klima aufrechtzuerhalten, verwendet das System:

  • Elektrische Fußbodenheizung in drei Zonen.
  • Klimaanlage von Wohnräumen.
  • Zentrale Belüftung.
  • Luftbefeuchter.
  • Zentralheizung.

Belüftung


Da sich das Haus neben einer stark befahrenen Autobahn befindet und ich die Fenster überhaupt nicht öffnen möchte, verwende ich das Lüftungssystem.

,
Schwarzer Staub auf dem Fenster, der sich in etwa drei Monaten angesammelt hat. Als

ich verschiedene Lösungen für das Problem der Belüftung untersuchte, ohne das Fenster zu öffnen, machte ich eine kurze Liste mit drei Optionen:

  • Installation von Atemgeräten in jedem Raum.
  • Installation des Außengeräts und Verkabelung der Kanäle an der Außenwand.
  • Zentrales Belüftungssystem.

Die Atemgeräte wurden sofort abgelehnt, da sie in jedem Raum untergebracht werden müssten und meiner Meinung nach für den normalen Luftaustausch ziemlich laut sind. Eine der wichtigsten Bedingungen für mich war der niedrige Geräuschpegel und die Fähigkeit, den Raum schnell zu lüften. Bei Verwendung einer Verschnaufpause wird ein Block mit Filtern und einem Ventilator direkt an die Wand im Raum gehängt, was zusätzlichen Platz in der Wohnung beansprucht.

Viele Installateure bieten an, eine externe Lüftungseinheit zu montieren oder eine Versorgung des Balkons zu installieren. Aber ich habe keinen Balkon und die externe Einheit an der Wand würde ziemlich sperrig aussehen. Angesichts der Tatsache, dass bereits zwei Geräte von Klimaanlagen an der Wand hängen, hätte ein solches Design die Genehmigung nicht bestanden. Deshalb habe ich mich für ein zentrales Lüftungssystem entschieden.

Da der Platz in der Wohnung begrenzt ist und die Decken in der gesamten Wohnung nicht abgesenkt werden sollten, wurde der Zufluss in den Korridor eingebaut, in dem die Decken abgesenkt wurden, und die Eingabe erfolgte aus dem Kinderzimmer.


Belüftungseingang

Mit einem Diamantbohrer wurde ein Loch mit einem Durchmesser von 160 mm in die Außenwand gebohrt und mit einem Außengrill verzinkt. Das Einlassrohr wurde mit K-Flex-Isolierung isoliert. Dann verläuft das Rohr entlang der Wand der Küche und tritt in die Hauptlüftungseinheit ein.

Breezart 550 lux
Breezart 550 Lux Lüftungsgerät und Einheit für optionalen Filter Das

Lüftungsgerät wurde von Breezart ausgewählt . Bei der Auswahl habe ich die Installationskosten, Abmessungen und die Möglichkeit zur Verbindung mit dem Automatisierungssystem berücksichtigt. Das Gerät hat eine maximale Kapazität von 550 m³ pro Stunde:
Das System verfügt über einen leisen Lüfter mit 10 Geschwindigkeiten und einen elektrischen Lufterhitzer. Am Eingang ist ein elektromechanisches Ventil installiert, das beim Ausschalten des Geräts schließt, damit keine kalte Luft durch die Wohnung strömt. Auf der Elektronikseite wurden drei Modbus-Anschlüsse, Temperatursensoren und Drucksensoren installiert, um festzustellen, ob die Filter verschmutzt sind. Zum Lieferumfang gehört ein Grobfilter G4.


Der Grobfilter nach sechsmonatigem Gebrauch

Der Grobfilter verstopfte nach einem Jahr Gebrauch um 70%, aber nach dem CO₂-Sensor wurde die Belüftung bei niedrigen Geschwindigkeiten nicht mehr gezogen. Bis zum 20. Dezember - der Filter ist verstopft, nach dem 20. Dezember - einem neuen Filter ist die Geschwindigkeit gleich

20  —  ,  20  —  ,


Nach der Lüftungsinstallation befindet sich ein Feinfilter F7. Die Verwendung feinerer Filter wie HEPA für meine Situation hielt ich für unangemessen: Sie verstopfen schnell und die Installation kann sie nicht drücken. Außerdem empfehlen die Hersteller nicht, den Druckabfall über dem Filter zu überschreiten, da dies die Belastung des Lüfters erhöht und Schmutz von den Filtern in die Räume gelangen kann.


Nach dem Feinfilter werden zwei mechanische Luftstromregler installiert, gefolgt von mehreren flexiblen SONODEC-Luftkanälen zu den Räumen. Diese Art von Kanal wurde gewählt, um keinen sperrigen Schalldämpfer zu setzen und gleichzeitig das Geräusch der Installation zu übertönen. Nach dem Schließen der Decke ist das Lüftungssystem erst ab Geschwindigkeit 8 (440 m³ pro Stunde) und nur vom Korridor aus hörbar. Am Lüftungsausgang sind Gitter in zwei Richtungen verstellbar.


Deckenlüftungssystem Lüftungsausgang


in einen der Räume

Eine Fernbedienung aus dem Kit ist an einen der Modbus-Ports und ein Modbus TCP HF2211-Server an den zweiten angeschlossen.

Modbus RTU — Modbus TCP converter HF2211
Modbus RTU - Modbus TCP Konverter HF2211

Mit diesem Server können Sie einerseits eine Verbindung zum internen Netzwerk über Wi-Fi oder Ethernet und andererseits zum Modbus RTU-Gerät herstellen. Anschließend können Sie den Server mit den erforderlichen Einstellungen anheben und bereits über das Netzwerk auf die Lüftungseinheit zugreifen. Die Installation wird alle 300 ms abgefragt: Fehler und Prüfsummen werden geprüft und erst danach dürfen einige Daten in die Register geschrieben werden. Die Kommunikation mit der Installation erfolgt über das Node-Red-Contrib-Modbus-Plugin . Schema zum Empfangen und Senden von Parametern von einem Lüftungsgerät über Modbus Schema zum Empfangen und Senden von Parametern von einem Lüftungsgerät über Modbus Die Website des Herstellers enthält eine detaillierte Referenz der Modbus-Register und eine allgemeine Beschreibung

modbus


modbus


Für diese Installation müssen Sie jedoch die Version des Controllers und der Firmware überprüfen. Die Lüftungseinheit wird automatisch durch die Zeit und durch den CO₂ MH-Z19b-Sensor gesteuert. Automatisierung der Durchflusslüftung Belüftung der Durchflussautomatisierung Der CO₂-Sensor ist tragbar und basiert auf dem MH-Z19b-Sensor, zwei 18650-Batterien, ESP32 und IRF520-Mosfet (um die Stromversorgung des Sensors während des Ruhezustands des Controllers zu trennen). CO₂-Werte für einen Monat, Spitzenwert bis 1800 ppm - Gäste kamen mit der anschließenden Einbeziehung der Belüftung bei höheren Umdrehungen . Abhängig von der Installationsgeschwindigkeit wird eine angenehme Temperatur der einströmenden Luft eingestellt, die den Lufterhitzer erwärmt.

Flow


Flow




CO₂  ,   1800 PPM —




Bei höheren Geschwindigkeiten ist eine höhere Temperatur erforderlich - andernfalls ist ein kalter Luftstrom zu spüren. Um im Winter nicht viel Strom zu verbrauchen, wenn es außerhalb von –7 ° C kälter ist, ist die Installation auf eine dritte Geschwindigkeit begrenzt. Nachts ist die Installation auf eine vierte Geschwindigkeit begrenzt. Wenn niemand zu Hause ist, schaltet das System automatisch auf die erste Geschwindigkeit um. Beim Befehl "Urlaub" erfolgt ein vollständiges Herunterfahren.

Nach dem Urlaub gibt es einen Vorheizmodus, der mit voller Geschwindigkeit ausgestrahlt wird, und einen Übergang zur ersten Geschwindigkeit eines Timers. Wenn das System über CO₂-Sensoren verfügt, ist eine zusätzliche Geschwindigkeitsregelung gemäß den globalen Einschränkungen möglich.

Konditionierung


Das System verfügt über mehrere Klimaanlagen mit Kühl- und Heizmodus. Es gab die Idee, eine zentrale Klimaanlage einzurichten, aber alle Systeme sind zu groß und bieten nicht die Möglichkeit, die Temperatur in jedem Raum zu regulieren. Leider werden meine Klimaanlagen nur von IR gesteuert. Also kaufte ich das Broadlink RM Mini3-Bedienfeld.

Broadlink RM Mini3
Broadlink RM Mini3

Wenn Sie eine native Anwendung verwenden, stellt diese Fernbedienung eine Verbindung zu chinesischen Servern her, sodass alle Konfigurations- und Verwaltungsbefehle direkt von Node-RED mithilfe des Node-Red-Contrib-Broadlink-Steuermoduls übertragen werden .

Da ich keine sauberen IR-Codes für die Klimaanlagen gefunden habe und die Fernbedienung den gesamten Zustand (Drehzahl, Modus, Temperatur) überträgt, wurden alle möglichen Zustände zum Heizen und Kühlen mit Broadlink von der Klimaanlagenfernbedienung in die Datenbank kopiert. Es gab auch keine sauberen Befehle zum Aktivieren oder Deaktivieren.

Aber ich fand heraus, wie man die Klimaanlage ein- und ausschaltet. Ich habe sie für 10 Sekunden eingestellt und in die Datenbank kopiert. Beim Einschalten wird nun zuerst der Befehl zum Einschalten per Timer und dann der Befehl zum Einstellen des Modus zusammen mit der Temperatur übertragen. Klimaanlagensteuerung




Das Skript überprüft das Wetter draußen und schaltet die Klimaanlage je nach Tageszeit und Raumtemperatur zum Heizen oder Kühlen ein, wenn die Werte akzeptabel sind (mehr als –7 ° C). Der Temperatursensor liest einmal pro Stunde.

Wenn alle das Haus verlassen, schalten sich die Klimaanlagen aus. Wenn niemand da ist und die Temperatur zu hoch oder zu niedrig ist, die Heizbatterien jedoch noch nicht eingeschaltet sind, erfolgt stündlich eine 15-minütige Kühlung oder Heizung, um das Raumklima aufrechtzuerhalten. Szenario für das Management von Klimaanlagen

Szenario für das Management von Klimaanlagen


Fußbodenheizung


Das System verfügt über drei Stromkreise für die elektrische Fußbodenheizung. Sie werden von drei HeatIt Z-Wave-Thermostaten gesteuert .

Thermostat HeatIt
Thermostatheizung Mit dem

Thermostat können Sie verschiedene Widerstandsparameter für verschiedene Arten von Heizelementen konfigurieren. Er verfügt über einen Kinderschutz, zwei gespeicherte Heizmodi und andere kleinere Einstellungen.

In der kalten Jahreszeit ist die Bodentemperatur höher als im Sommer auf 1 ° C eingestellt. Wenn niemand zu Hause ist und auch nachts, werden die Böden ausgeschaltet, um Energie zu sparen, und entweder morgens oder sobald jemand nach Hause kommt eingeschaltet. Im Badezimmer erhöht der Boden die Temperatur, wenn das Licht an ist, die Tür geschlossen ist, es gab Bewegung, bis die Tür geschlossen wurde und die Luftfeuchtigkeit stark anstieg. Nach einer Stunde geht der Boden in den vorherigen Zustand über oder schaltet sich aus (wenn die Nacht hereinbricht).

Unterflursteuerungsszenario
Fußbodenheizung - Management - Skript Fußbodenheizung - Management - Skript

Unterflursteuerungsszenario


Zentralheizung


Da Moskau die Heizzeit je nach Außentemperatur nicht immer ausschaltet oder reguliert, wurde beschlossen, an jeder Batterie einen Danfoss Living Connect- Thermostat anzubringen .

Thermostat Danfoss Living Connect
Thermostat Danfoss Living Connect

Dieser Thermostat wird mit zwei Fingerbatterien nach dem Z-Wave-Protokoll betrieben. Seit der Installation ist ein Jahr vergangen, aber die Batterien sind noch nicht leer. Die maximal eingestellte Temperatur beträgt 28 ° C. Da sich der Sensor neben der Batterie befindet und die Fernbedienung nicht angeschlossen ist, liegt er manchmal.

Im Sommer ist der Temperaturregler immer in der Position „offen“ und schließt alle zwei Wochen vollständig, damit der Vorrat nicht sauer wird. Wenn Sie während der Woche zum ersten Mal eine Verbindung herstellen, wird der Sensor kalibriert (was meiner Frau nicht wirklich gefiel, da die Batterien regelmäßig vollständig ausgeschaltet wurden), aber danach funktionierte alles wie gewünscht. Vor Beginn der Heizperiode wird die durchschnittliche Außentemperatur für zwei Wochen überprüft. Wenn sie unter 10 ° C liegt, wechseln die Thermostate in den Heizmodus. Wenn die Temperatur im Raum höher ist als die angenehme, senken Thermostate die Temperatur oder schalten die Batterie vollständig aus.

Luftbefeuchter


Um die Luft in der Wohnung zu befeuchten, wurden zentrale Luftbefeuchter in Betracht gezogen. Es gibt zwei Haupttypen: Dampf und traditionell. Ein Dampfbefeuchter benötigt viel Strom, um Wasser ständig zu erwärmen. Beide Arten von Luftbefeuchtern lassen viel Wasser in den Abfluss ab, damit es nicht blüht. Es müssen Berechnungen durchgeführt werden, damit die Kanäle nicht blühen und fließen. Es ist auch zu bedenken, dass zentrale Luftbefeuchter teuer sind und viel Platz beanspruchen.

Ich entschied mich für Ultraschallbefeuchter in jedem Raum. Sie erhöhen schnell die Luftfeuchtigkeit, benötigen jedoch gereinigtes Wasser, vorzugsweise nach Umkehrosmose. Die Luftfeuchtigkeit kann an den Luftbefeuchtern selbst eingestellt oder über IR gesteuert werden.


Ein Beispiel für die Funktionsweise der Schnittstelle

Im zweiten Teil des Artikels werde ich über Beleuchtung, ein Multimedia-System und Sicherheitssensoren sprechen und auch die langfristige Nutzung des Systems zusammenfassen.

All Articles