Xiaomi Wireless-Geräte im ioBroker Smart Home

Grüße an alle Liebhaber der Heimautomation. Ich habe beschlossen, die Erfahrungen mit der Verwendung von drahtlosen Xiaomi-Geräten mit ZigBee-Schnittstelle zu teilen. Ehrlich gesagt bin ich gegen die Verwendung von drahtlosen Geräten in jeder Automatisierung, von seriösen Prozessleitsystemen für große Objekte bis hin zu kleinen Automatisierungen wie Feuermeldern oder Smart Homes, aber ... Xiaomi-Lösungen, die mit Billigkeit, Zugänglichkeit, ausgezeichnetem Design und vielen positiven Bewertungen von Benutzern bestochen wurden, entschied ich zu versuchen.

Dieser Beitrag sollte als schrittweise Anleitung zur Integration von ZigBee-Geräten in die Smart-Home-Infrastruktur verstanden werden. Die hier beschriebene Beschreibung ist keineswegs ein Axiom, und Sie können viele andere Möglichkeiten finden, um ZigBee-Geräte anzuschließen. Wenn Sie dennoch die detaillierte Beschreibung überspringen, können Sie anhand der Beispiele von ZigBee und ioBroker (etwas später) einen Eindruck von der Komplexität oder Einfachheit der Kombination von Geräten verschiedener Hersteller auf einer lokalen Plattform gewinnen. In diesem Artikel werde ich Ihnen erklären, wie Sie Geräte mit einem Smart Home verbinden, Informationen von ihnen auf einem Tablet oder einfach in einem Browser anzeigen und per Telegramm Nachrichten über die Änderung des Gerätestatus senden. Wenn ich für Sie von Interesse bin, bitte ich um eine Katze.

Laut dem Hersteller von Xiaomi sollten Benutzer eine native Anwendung mit einer Cloud-Verbindung und einem Wi-Fi-Gateway für ZigBee-Geräte verwenden. Ein Verfahren zum Aktivieren des Entwicklermodus in einer Anwendung zum Erhalten eines Kontrolltokens ist jedoch seit langem bekannt. Auf diese Weise können Sie innerhalb des lokalen Netzwerks mit dem Gateway kommunizieren, wodurch Sie den Mihome- Treiber ausführen können , der Teil von ioBroker ist.

ioBroker ist eine offene Plattform für IoT, einschließlich zum Aufbau von Smart-Home-Systemen. Was ioBroker ist, finden Sie im vorherigen Artikel .

Jetzt „dreht“ sich mein Smart Home auf einem Cubietruck ARM-Board mit einem „Bodykit“ in Form einer 80-GB-Festplatte, wiederaufladbaren 5000-mAh-Batterien, einem 1-Draht-USB-Master und einem USB-RS485-Konverter zum Abrufen von Geräten mithilfe des Modbus-Protokolls. Armbian OS wird mit der Übertragung der Root-Partition auf der Festplatte installiert, nur der Bootloader verbleibt auf der microSD-Speicherkarte.

Ich begann meine Bekanntschaft mit drahtlosen Xiaomi-Geräten durch den Kauf von Temperatur- und Feuchtigkeitssensoren. Zu dieser Zeit war die einzige Möglichkeit ihrer Integration der oben erwähnte Mihome- Treiber.

Mihome-Fahrer


Das Hinzufügen eines Treibers zum System ist sehr einfach. Klicken Sie in der Liste der verfügbaren Treiber auf die Schaltfläche „+“ und beobachten Sie den Installationsvorgang.



Ich werde die Installation und Erstkonfiguration der nativen Android-Anwendung Mi Home nicht beschreiben. Sie können sie auf der Github- Seite des Treibers oder im Internet sehen. Also, der Entwicklermodus wird aktiviert, das Token wird empfangen, wir konfigurieren den Mihome-Adapter, speichern und führen ihn aus, wenn er nicht gestartet wurde.



Das Xiaomi-Gateway und die in der Mi Home-Anwendung verbundenen Geräte sollten in der Objektstruktur angezeigt werden.



Als Nächstes können Sie die neu erstellten Objekte konfigurieren. Zum Beispiel Speichern der Geschichte von Temperatur- und Feuchtigkeitssensoren. Ich verwende einen SQL-Treiber für historische Daten, die in einer SQLite-Datenbank konfiguriert sind.



Die Speicherung des Variablenverlaufs wird im Systemobjektfenster konfiguriert: In der Objekthierarchie müssen Sie zur Variablen selbst gelangen und die Taste mit einem Schraubenschlüssel rechts drücken. Auf der Registerkarte "Einstellungen" habe ich den Verlaufsspeicher durch Sensoren aktiviert - nur Änderungen an der Variablen.

Andere Einstellungen:

  • Mindestintervall von 10 Sekunden - Wenn sich die Variable häufiger ändert, wird der Eintrag in der Datenbank ignoriert
  • Aufzeichnen von Werten alle 300 Sekunden (5 Minuten) - Wenn sich die Variable länger als 5 Minuten nicht ändert, wird der aktuelle Wert weiterhin in die Datenbank geschrieben
  • Werttyp - Nummer
  • Haltbarkeit - 1 Jahr



Das Hinzufügen neuer Geräte erfolgt über die native Anwendung. Das heißt, Sie müssen das neue Gerät gemäß den beigefügten Anweisungen mit dem Gateway koppeln. Danach wird es automatisch in der Liste der ioBroker-Objekte angezeigt.

ZigBee-Fahrer


Es war für mich unpraktisch, die native Xiaomi-Anwendung zu verwenden, zumal ich ein Gateway mit einem chinesischen Stecker kaufen musste, was in meinem Fall, abgesehen von der Kommunikation mit Geräten, für nichts nützlich war. Ja, es kann als Nachtlicht oder in einigen Szenarien als Lichtsensor verwendet werden. Im Internet finden Sie Anweisungen, wie Sie eine Wiedergabeliste einem Gateway „zuführen“ können, um eigene Radiosender abzuspielen, aber nichts davon ist mir aufgefallen. Außerdem war der Gedanke, dass meine Daten irgendwo verloren gingen, verarbeitet und irgendwo gespeichert wurden, unheimlich.

Einer der aktiven Benutzer der ioBroker-Plattform fand im Internet die ZigBee-Shepherd- Bibliothek auf node.js, in der die Verbindung von Xiaomi-Geräten erwähnt wurde. Ein Treiber für ioBroker wurde auf dieser Basis geschrieben. Der Autor dieses Treibers war nicht nur auf Xiaomi-Geräte beschränkt. Die Liste der unterstützten Geräte wird ständig aktualisiert und ist auf der Github- Seite des Projekts verfügbar .

Als Netzwerkkoordinator sollen kostengünstige, vorgefertigte Geräte auf Basis der CC25xx- Chips von TI verwendet werden. Sie können fertige ZigBee-Module mit USB-Anschluss und integrierter Antenne sowie teurere und seriösere Modelle kaufen: mit externer Antenne, Verstärker und Anschluss über UART.

Um mit dem Treiber zu arbeiten, müssen Sie nur die Firmware ändern. Somit stellt sich heraus, dass dieser Treiber kein teures Gateway benötigt, Wi-Fi-Netzwerke nicht benötigt werden. Der "Einstiegspunkt" ist der Koordinator - ein Gerät, das auf dem SS25xx-Chip mit spezieller Firmware basiert. Über den Koordinator erfolgt eine direkte Kommunikation zwischen ZigBee-Geräten und dem Smart Home-System sowie die Bindung neuer Geräte.

Als Koordinator verwende ich ein fertiges Motherboard auf Basis eines CC2530-Chips mit einer externen Antenne, das ich über UART mit dem Server verbunden habe.

Für die Gerätefirmware wurde ein spezieller SmartRF04EB-Debugger gekauft, dessen Micro-USB-Anschluss ich an den Computer angeschlossen habe, und das ZigBee-Modul, das über Kabel zum Debuggen gemäß dem Schema angeschlossen wurde:
SS2530SmartRF04EB-Karte
P22DC
P21DD
RstRESET
GNDGND
Vcc3,3V




Laden Sie auf der Github- Seite des Projekts die Firmware (die Datei heißt CC2530ZNP-Pro-Secure_LinkKeyJoin.hex für dieses Gerät) und das Firmware-Programm (Flash-Programmierer) herunter. Anschließend werden die erforderlichen Treiber zum System hinzugefügt.
Wenn Sie die Debugger-Karte an den USB-Anschluss des Computers anschließen, zeigt das Programm sofort das angeschlossene Gerät an. Sie müssen nur den Pfad zur Firmware-Datei angeben und auf die Schaltfläche "Aktionen ausführen" klicken



Die ZigBee-Modul-Ports P03 (Rx) und P02 (Tx) sind in UART4-Cubietruck-Boards (im Betriebssystem wie ttyS4) mit 3V3-Stromversorgung verbunden, GND übernahm den benachbarten Pin. Für einen stabilen Betrieb müssen Sie die Anschlüsse P20, P4, P5 des Koordinators noch auf den Boden ziehen. Wie ich oben geschrieben habe, verwende ich das Armbian-Betriebssystem. Der UART-Port wird sehr einfach aktiviert. Mit dem Befehl armbian-config im Abschnitt System - Hardware müssen Sie den gewünschten Port aktivieren und das System neu starten .



Der ZigBee-Treiber wird mit einem Klick über das Admin-Panel hinzugefügt.



In meinem Fall ist der Koordinator mit dem Port / dev / ttyS4 verbunden (wie ich oben geschrieben habe), wir geben es in den Einstellungen an.



Andere Einstellungen können standardmäßig beibehalten werden. Nach dem ersten Start des Treibers müssen Sie Geräte koppeln (hinzufügen). Die vollständige Anleitung zu Github , das Pairing über diesen Treiber, ist etwas komplizierter als über die native Anwendung, aber ich hatte keine Probleme.

Fügen Sie zum Beispiel die Xiaomi-Taste (Mijia-Serie) hinzu. Drücken Sie dazu die grüne Taste in den Treibereinstellungen und halten Sie gemäß den Anweisungen zuerst die Pairing-Taste auf der Rückseite mit einer Büroklammer gedrückt, bis die LED zu blinken beginnt. Klicken Sie dann etwa alle 2 Sekunden auf diese Taste. Siehe den Pairing-Fortschritt.



Meine Wohnung ist nicht groß, mit allen Geräten ist die Verbindung stabil, auch mit einem Türöffnungssensor am Treppenabsatz (Stahlbetonwand ist 100 mm und 5 m in einer geraden Linie). Die Probleme begannen, als ich mich entschied, der Straßenluft einen Temperatur- und Feuchtigkeitssensor hinzuzufügen, den ich von der Seite der isolierten Loggia an der Außenwand des Hauses installierte. Das Signal eines schwachen Sensors, der sich ebenfalls auf der Straße befand, erreichte den Automationsschrank nicht. Das Problem kann einfach gelöst werden - Sie müssen dem ZigBee-Netzwerk einen Router hinzufügen und ihn näher am Sensor platzieren. Einige drahtlose Geräte, zum Beispiel die Xiaomi-Buchse, können als Router verwendet werden, aber ich hatte keine solchen Geräte. Ich wollte keine teure Steckdose oder ein kontrolliertes Licht kaufen, nur um Daten von einem Sensor auf der Straße weiterzuleiten. Wie sich herausstellte, gibt es für dieselben Endgeräte, die auf dem SS25xx-Chip basieren, eine spezielle Firmware, mit der sie als Router im System verwendet werden können. Als Ergebnis habe ich einen Router hinzugefügt, der auf dem CC2531-Chip mit einer USB-Verbindung basiert. Ich werde nicht auf den Firmware-Prozess eingehen , das Schema und die Firmware-Datei selbst finden Sie auf der Github- Seite des Projekts.

Da tatsächlich keine Kommunikation mit dem Modul über den USB-Anschluss stattfindet, habe ich es vorübergehend an den USB-Anschluss angeschlossen und an eine Steckdose in der Küche angeschlossen. In naher Zukunft plane ich, es stationär in einem normalen Gebäude auf der Loggia und mit normaler Stromversorgung von einer USV zu Hause zu platzieren.



Das Hinzufügen eines Routers zum System ist einfach: Drücken Sie die Pairing-Taste im Treiber und am eingeschalteten Router mehrmals die S2-Taste, bis die Geräte verbunden sind.



Fügen wir ein Beispiel für einen Temperatur- / Feuchtigkeitssensor hinzu, den ich an der Loggia außerhalb angebracht habe und der über einen Router funktionieren soll.

Sie können das Pairing einfach über den Treiber durchführen und der Sensor sollte über den Router verbunden werden, wenn er näher ist. Sie können jedoch zwangsweise festlegen, dass das Pairing über einen bestimmten Router erfolgt. Klicken Sie dazu in der Liste der Geräte auf dem Routersymbol auf die grüne Pairing-Schaltfläche.



Stellen Sie sicher, dass der Sensor richtig angeschlossen ist - siehe Netzwerkkarte.



Die Karte zeigt die Kopplungslinien von Geräten, die die Signalqualität zwischen Netzwerksegmenten angeben. Wie ich oben geschrieben habe, habe ich eine kleine Odnushka von 35 qm, daher ist die Karte recht bescheiden. Mit Erlaubnis anderer Benutzer werde ich mögliche Optionen mit einer größeren Karte veröffentlichen.







Die Funktionalität einiger Xiaomi-Geräte über diesen Adapter ist sogar etwas höher als über die native Anwendung und den Mihome-Treiber. In Zukunft möchte ich das Netzwerk etwas erweitern und neue Geräte ausprobieren, insbesondere ein intelligentes Laufwerk für Vorhänge und einen Sensorwürfel.

Materialtreiber


Wir haben die Daten, die Aktuatoren gebunden, was jetzt mit ihnen zu tun? Lassen Sie uns zunächst in einer schönen Oberfläche anzeigen. Ich habe ein großes Projekt im VIS-Treiber, das in mehreren Versionen für unterschiedliche Berechtigungen vorhanden ist, aber es gibt genügend Material für einen separaten Artikel. Vielleicht wird sie die nächste sein.

Für die einfache und schnelle Anzeige von Daten und die Steuerung verschiedener Geräte verwende ich den Materialtreiber. Installation wie gewohnt mit wenigen Klicks. Schnittstellenkacheln zeigen Daten basierend auf Kategorieeinstellungen an, die im gleichnamigen Schnittstellenverwaltungsfenster hinzugefügt werden. Die Liste der Kategorien ist nur durch die Vorstellungskraft begrenzt, ich verwende das "Raumfunktions" -Schema und die Gruppierung erfolgt nach diesen. Alle Räume (Küche, Flur, Raum, Balkon usw.) und Funktionen (Beleuchtung, Sensoren, System usw.) wurden hinzugefügt.



Im Einstellungsfenster von Systemobjekten müssen nun die Variablen, die auf dem Bildschirm angezeigt werden, den Raum angeben, funktionieren und eine Rolle zuweisen (für eine ordnungsgemäße Anzeige). Ein Beispiel ist der Innenraumtemperatur- und Feuchtigkeitssensor von Xiaomi, der über Bluetooth verbunden ist.



Basierend auf diesen Einstellungen zeigt die Kachel Daten auf dem Bildschirm an, das Symbol wird enger und für Objekte eines bestimmten Typs steht ein Steuerelement zur Verfügung.

Beispiel 1. Die Ausgabe aller Informationen in einer Kategorie - Funktion. Beleuchtung in der gesamten Wohnung.



Beispiel 2. Die Ausgabe aller Informationen über den Raum - Badezimmer.



Beispiel 3. Die Spannung und der Batterieentladungsgrad aller drahtlosen Xiaomi-Geräte.



Dieser Treiber arbeitet für mich für die lokale Steuerung des Systems von einem Mobiltelefon aus, einem stationären Tablet an der Wand. Manchmal verbinde ich mich über VPN. Um Zustände fernzusteuern und anzuzeigen und Benachrichtigungen zu erhalten, verwende ich den Telegrammtreiber.

Telegrammtreiber


Ich werde die Installation nicht beschreiben, sondern nur die Einstellungen durchgehen. Ich verwende den Betriebsmodus durch periodisches Abrufen (standardmäßig 300 ms) und Verbindung über einen Proxyserver. Um Token zu erhalten, müssen Sie mit dem Ersteller der Bots, BotFather, „sprechen“. Der Vorgang ist einfach: Suchen Sie nach diesem Bot, geben Sie einen Befehl zum Erstellen eines neuen Bots ein, geben Sie seinen eindeutigen Namen und Ihren Schlüssel an, geben Sie ihn in den Treibereinstellungen an und geben Sie aus Sicherheitsgründen das Begrüßungskennwort an. Ihr Bot wird ihn fragen, wenn er mit einem neuen Benutzer kommuniziert.



Jetzt müssen Sie Kommunikationsfälle über den Bot konfigurieren. Sie können dazu den text2command-Treiber oder JavaScript verwenden. Historisch gesehen ist es so, dass ich JavaScript sowohl in Form von Text als auch in Form von Blockblöcken verwende. Die Installation des JS-Treibers sollte keine Schwierigkeiten verursachen. In diesem Fall ist die Konfiguration nicht erforderlich. Nach der Installation und dem Start müssen Sie die Menüanzeige aktivieren, um Skripte zu erstellen und zu bearbeiten.



Beispiel 1. Warnungen.

Versuchen wir zunächst, eine Benachrichtigung über die Öffnung beispielsweise der Eingangstür zu senden. Ich habe einen drahtlosen Xiaomi-Sensor-Reed-Schalter an der Vordertür. Ich beobachte, wie meine Frau mit dem Kleinen geht, während ich bei der Arbeit bin. Erstellen Sie ein neues Skript in der gemeinsamen Gruppe.



Geben Sie an, was blockweise "gezeichnet" werden soll, und nennen Sie es "telegram_bot".



In der Gruppe "Ereignisse" nehmen wir die Reaktionseinheit, um die Variable zu ändern und auf das Arbeitsfeld zu ziehen.



Wählen Sie als Nächstes die ID des Objekts aus, das wir abonnieren, und fügen Sie die Objektprüfung durch "if" - "andernfalls if" in "true / false" ein. Das Ergebnis sollte ungefähr so ​​aussehen.



Ok, jetzt rennen wir, wir öffnen die Tür - wir schließen die Tür und wir sehen Nachrichten im Telegramm.



Beispiel 2. Lichtsteuerung über das Menü.
Ein Beispiel ist komplizierter. Lassen Sie uns die Lichtsteuerung mithilfe der Menütasten im Telegramm vornehmen. Hier muss man ein bisschen rumhängen, d.h. Wenn Sie ein Skript erstellen, müssen Sie JS auswählen. Die Aufgabe ist ungefähr die folgende: Schaltflächen in Form eines Menüs zu erstellen, wobei der Status der Geräte sofort im Signaturtext der Schaltfläche angezeigt wird. Stellen Sie dennoch sicher, dass beim Drücken der Taste der Beleuchtungsstatus invertiert und der Status im Schaltflächentext sofort mit dem Erscheinen / Verschwinden der Glühbirne aktualisiert wird. Wenn das Menü bereits ausgeführt wird und das Licht manuell mit der Taste ein- und ausgeschaltet wird, muss das Menü auch mit dem Status der Geräte aktualisiert werden.
Der Code enthält Kommentare und ist relativ unkompliziert:
// ID
const LIGHT1 = ' ', CH_LIGHT1 = 'mqtt.0.PLC55_Lighting.lighting.MainRoom_main1';
const LIGHT2 = ' ', CH_LIGHT2 = 'mqtt.0.PLC55_Lighting.lighting.MainRoom_main2';
const LIGHT3 = ' ', CH_LIGHT3 = 'mqtt.0.PLC55_Lighting.lighting.MainRoom_sec';
const LIGHT4 = ' ', CH_LIGHT4 = 'mqtt.0.PLC55_Lighting.lighting.Kitchen_main';
const LIGHT5 = ' 1', CH_LIGHT5 = 'mqtt.0.PLC55_Lighting.lighting.Kitchen_sec_top';
const LIGHT6 = ' 2', CH_LIGHT6 = 'mqtt.0.PLC55_Lighting.lighting.Kitchen_sec_bottom';
const LIGHT7 = ' ', CH_LIGHT7 = 'mqtt.0.PLC55_Lighting.lighting.BathRoom_main';
const LIGHT8 = ' ', CH_LIGHT8 = 'mqtt.0.PLC55_Lighting.lighting.Hall_main';
const LIGHT9 = ' ', CH_LIGHT9 = 'mqtt.0.PLC55_Lighting.lighting.Balcon_main';
//
function sendLightMenu(message_text) {
//
var l1 = getState(CH_LIGHT1).val ? '💡' : '';
var l2 = getState(CH_LIGHT2).val ? '💡' : '';
var l3 = getState(CH_LIGHT3).val ? '💡' : '';
var l4 = getState(CH_LIGHT4).val ? '💡' : '';
var l5 = getState(CH_LIGHT5).val ? '💡' : '';
var l6 = getState(CH_LIGHT6).val ? '💡' : '';
var l7 = getState(CH_LIGHT7).val ? '💡' : '';
var l8 = getState(CH_LIGHT8).val ? '💡' : '';
var l9 = getState(CH_LIGHT9).val ? '💡' : '';
//
sendTo('telegram.0', {
text: message_text,
reply_markup: {
keyboard: [
[LIGHT1+l1, LIGHT2+l2, LIGHT3+l3],
[LIGHT4+l4, LIGHT5+l5, LIGHT6+l6],
[LIGHT7+l7, LIGHT8+l8, LIGHT9+l9]
],
resize_keyboard: true,
one_time_keyboard: true
}
});
}
//
function changeLight(room, channel) {
//
var alive = getState("mqtt.0.info.connection").val;
if (alive.includes("PLC55_Lighting")) {
if (getState(channel).val) {
setState(channel, false, false, function () {
sendLightMenu(room+' ');
});
} else {
setState(channel, true, false, function () {
sendLightMenu(room+' ');
});
}
} else {
sendLightMenu(' OFFLINE');
}
}
// request ,
on({id: "telegram.0.communicate.request", ack: false, change: 'any'}, function (obj) {
var msg = obj.state.val;
var command = obj.state.val.substring(obj.state.val.indexOf(']')+1);
var user = obj.state.val.substring(obj.state.val.indexOf('[')+1,obj.state.val.indexOf(']'));
var chat_id = getState("telegram.0.communicate.requestChatId").val;
var message_id = getState("telegram.0.communicate.requestMessageId").val;
var handled = false;
//
if (command == '/start' || command == '/menu' || command == '' || command == '') {
sendLightMenu("");
handled = true;
}
//######################## Lighting menu and commands ################
if (command == LIGHT1 || command == LIGHT1+'💡') {
changeLight(LIGHT1, CH_LIGHT1);
handled = true;
}
if (command == LIGHT2 || command == LIGHT2+'💡') {
changeLight(LIGHT2, CH_LIGHT2);
handled = true;
}
if (command == LIGHT3 || command == LIGHT3+'💡') {
changeLight(LIGHT3, CH_LIGHT3);
handled = true;
}
if (command == LIGHT4 || command == LIGHT4+'💡') {
changeLight(LIGHT4, CH_LIHT4);
handled = true;
}
if (command == LIGHT5 || command == LIGHT5+'💡') {
changeLight(LIGHT5, CH_LIGHT5);
handled = true;
}
if (command == LIGHT6 || command == LIGHT6+'💡') {
changeLight(LIGHT6, CH_LIGHT6);
handled = true;
}
if (command == LIGHT7 || command == LIGHT7+'💡') {
changeLight(LIGHT7, CH_LIGHT7);
handled = true;
}
if (command == LIGHT8 || command == LIGHT8+'💡') {
changeLight(LIGHT8, CH_LIGHT8);
handled = true;
}
if (command == LIGHT9 || command == LIGHT9+'💡') {
changeLight(LIGHT9, CH_LIGHT9);
handled = true;
}
// , text2command
if (!handled) {
sendTo('text2command.0', {
text: command.replace(/\//g, '#').replace(/_/g, ' '),
id: chat_id,
user: user
}, function (response) {
if (response && response.response) {
sendTo('telegram.0', {user: user, text: response.response});
}
});
}
});
// ,
on({id: /^mqtt\.0\.PLC55_Lighting\.lighting\..*$/, ack: true, change: 'ne'}, function (obj) {
sendLightMenu(" ");
});
//
sendLightMenu("");
view raw telegram_bot hosted with ❤ by GitHub


Das Ergebnis sollte ungefähr so ​​aussehen:



Fazit


Der Artikel hat sich als lang herausgestellt, aber ich hoffe, er ist nützlich und erleichtert möglicherweise einigen Benutzern das Leben oder ermutigt jemanden, sein eigenes Smart Home zu erstellen.
Im Moment dreht sich mein ioBroker-basiertes Smart-Home-System seit 4 Jahren und ich bin sehr zufrieden damit. Neben ZigBee sind mehrere hausgemachte Steuerungen über MQTT und HTTP angeschlossen, um Beleuchtung, Lüftung und andere Systeme, ein Netzwerk von Temperatursensoren am 1-Draht-Bus, ein Netzteilüberwachungsgerät am RS485-Bus und das Modbus-RTU-Protokoll und vieles mehr zu steuern.

In meinem Sparschwein mit Lösungen für ein Smart Home habe ich viele Ideen gesammelt, obwohl sie wahrscheinlich eher als Sparschwein der Probleme für ein Smart Home wahrgenommen werden sollten (diejenigen, die das Thema verstehen, was ich meine). Hinterlassen Sie Ihre Wünsche in den Kommentaren, damit ich mich für das Thema des nächsten Artikels entscheiden kann.

Source: https://habr.com/ru/post/de433340/


All Articles