Die Erstellung eines Smart Home umfasst viele verschiedene Sensoren, die die Situation im Haus überwachen - Bewegung, Beleuchtung, Temperatur und andere Sensoren. Wenn das „Smart Home“ klein ist, sieht auch bei hausgemachten Systemen, die auf offenen Lösungen basieren (MQTT, OpenHAB usw.), alles einfach aus - sie haben den Sensor angeschlossen, ihn im OpenHAB- oder HomeAssistant-Programm registriert und mit der Arbeit begonnen. Wenn es jedoch viele Sensoren gibt, wird viel Routine und undankbare Arbeit darauf verwendet, jeden von ihnen im Steuerungssystem zu verschreiben.
Die vorgeschlagene Lösung ("Krücke") ermöglicht es Ihnen, in dieser Phase ein Minimum an manuellen Operationen durchzuführen. Der Sensorcontroller stellt eine Verbindung zum MQTT-Broker her und spricht in speziellen Themen über seine Sensoren und Geräte in einem bestimmten Format. Anschließend erstellt ein kleines Skript auf dem Smart Home-Server Konfigurationsdateien, die diesen Sensoren entsprechen. Anschließend müssen Sie sie nur noch manuell in den hausspezifischen Gruppen identifizieren Erstellen Sie Verwaltungsskripte.
Insbesondere funktioniert diese Firmware auf Modulen mit ESP-8266 (einschließlich Sonoff Basic Switch und Sonoff Touch Wallswitch) mit P & P-Skripten für OpenHAB und HomeAssistant, aber die Plug & Play-Informationsausgabemethode selbst kann in anderen Projekten verwendet werden.
Wenn Sie das Gerät mit dem MQTT-Broker verbinden, werden die folgenden Themen erstellt (in diesem Fall für die FLASH-Schaltfläche am ESP-8266 mit der Seriennummer 0023CB541):
- / myhome / PNP / ESPX-0023CB541 / BUTTON / name - name / description ("FLASH-Taste" - dies wird in der Weboberfläche angezeigt)
- / myhome / PNP / ESPX-0023CB541 / BUTTON / type - Der Typ der Variablen und die Richtung des Datenflusses dafür. "O: Switch" gibt den Sensor an, der Informationen liefert, und beispielsweise "I: Dimmer" - den eingehenden Kanal des Dimmers
- / myhome / PNP / ESPX-0023CB541 / BUTTON / groups - Gruppen, in denen diese Variable standardmäßig angezeigt wird ("Switches Builtin Buttons")
- / myhome / PNP / ESPX-0023CB541 / BUTTON / min - der Mindestwert (für numerische Variablen ist die Schaltfläche für die Schaltfläche leer)
- / myhome / PNP / ESPX-0023CB541 / BUTTON / max - Maximalwert (ähnlich)
Ein Skript, das auf dem Server ausgeführt wird (per Krone oder manuell nach dem Anschließen des Geräts) - lädt eine Liste mit Themen aus / myhome / PNP herunter, sucht nach Geräten, die sich nicht in OpenHAB befinden, und erstellt Konfigurationsdateien für diese. Wenn die Konfigurationsdatei für ein solches Gerät bereits vorhanden ist, werden die P & P-Informationen vollständig ignoriert. Sie können diese Datei jedoch bei Bedarf löschen und die Datei für das Gerät mit einem geänderten Satz von Sensoren neu erstellen.
Auf so einfache und transparente Weise - wir haben keine großen Kopfschmerzen mehr, wenn Sie eine große Anzahl netzwerkgesteuerter Geräte in unserem hausgemachten Smart Home anschließen müssen.
Ich werde Ihnen etwas mehr über die aktuelle Firmware für den ESP-8266 erzählen. Die Quellcodes (und Support-Skripte für OpenHAB und HomeAssistant) finden Sie
auf Github (Support-Skripte finden Sie
hier ).
Es funktioniert auf Standard-ESP-8266-Modulen (sowie auf Sonoff Basic Switch und Sonoff Touch Wallswitch), unterstützt Firmware-Upgrades im laufenden Betrieb (ArduinoOTA) und verfügt über einen einfachen Webserver zur Erstkonfiguration der WLAN-Netzwerkparameter und zum Einstellen der MQTT-IP-Adresse -Makler.
Die Firmware-Struktur ist modular aufgebaut und Sie können Ihre Sensoren / Geräte ganz einfach hinzufügen. Die aktuelle Liste enthält:
- Infrarot-Bewegungssensoren und Parallax X-Band-Bewegungsmelder (bis zu 3 Einheiten pro Modul)
- Temperatur- / Feuchtigkeitssensor DHT22 oder gleichwertig
- Mein 4-Kanal Modbus / RS-485 gesteuerter Dimmer
- Sonare der HC-SR04- und MaxBotix-Serie
- Relais an Sonoff Basic Switch und Sonoff Touch (letzteres kann sowohl per Knopfdruck als auch nur über OpenHAB / HomeAssistant in den Relaissteuermodus geschaltet werden)
- Eingebauter ADC, LED und Flash-Taste (für Sonoff Touch - dies ist eine Touch-Taste)
- Ein einfacher Thermostat mit zwei Relais zur Steuerung eines Lüfters (Innengerät) und eines Kompressors (Außengerät)
Es ist zu beachten, dass aufgrund des Fehlens von Pins am ESP-8266 die Module miteinander in Konflikt stehen können (z. B. kann ein Dimmer mit Sonar nicht gleichzeitig angeschlossen werden, wenn Sie die Pins nicht selbst neu verteilen).
Nach Auswahl der erforderlichen Geräte in esp-sensor.h, Kompilieren und Firmware - das Modul wechselt in den Konfigurationsmodus - wird das WiFi-Netzwerk mit einem Namen wie "espx-0023cb541" aufgerufen, mit dem Sie eine Verbindung (Sie können jedes Smartphone verwenden) mit einem Kennwort aus derselben Datei herstellen müssen Gehen Sie dann zu 192.168.4.1 und legen Sie die Netzwerkanmeldung und das Kennwort sowie die IP-Adresse des Brokers fest. Diese Parameter werden blitzschnell gespeichert, sodass Sie dies beim zweiten Mal nicht tun müssen. Wenn es nicht möglich ist, innerhalb einer Minute eine Verbindung zu einem bestimmten Netzwerk herzustellen, wechselt es für drei Minuten in den Konfigurationsmodus und wiederholt diesen Zyklus, bis die Verbindung erfolgreich hergestellt wurde.
Für diejenigen, die diese Firmware bearbeiten möchten, möchte ich erwähnen, dass jedes Sensor- / Gerätemodul in sechs Funktionen unterteilt ist:
- setup _ * () - Pins konfigurieren
- Schleife _ * () - Abfrage des Sensors bei jedem Programmzyklus
- Aktualisieren _ * (forceSend) - Aktualisieren der Sensorstatusinformationen auf MQTT (standardmäßig 200 ms und alle zwei Sekunden - erzwungenes Update)
- pnp _ * () - Senden von P & P-Informationen
- subscribe _ * () - Abonnement für die erforderlichen eingehenden Themen
- mqtt _ * () - Verarbeitung eingehender mqtt-Nachrichten
Diese Funktionen müssen in der Datei Ihres Moduls definiert sein und dann ihren Aufruf an den entsprechenden Stellen esp-sensor.ino hinzufügen.