Lytko vereint

Vor einiger Zeit haben wir Ihnen einen intelligenten Thermostat vorgestellt . Dieser Artikel wurde ursprĂŒnglich als Demonstration seiner Firmware und seines Steuerungssystems konzipiert. Um jedoch die Logik des Thermostats und die von uns implementierten Funktionen zu erlĂ€utern, muss das gesamte Konzept erlĂ€utert werden.



Über die Automatisierung


Herkömmlicherweise kann die gesamte Automatisierung in drei Kategorien unterteilt werden:
Kategorie 1 - separate „intelligente“ GerĂ€te. Sie erhalten GlĂŒhbirnen, Teekannen usw. von verschiedenen Herstellern. Pluspunkte: Jedes GerĂ€t erweitert die Möglichkeiten und erhöht den Komfort. Nachteile: Jeder neue Hersteller benötigt eine eigene Anwendung. Protokolle von GerĂ€ten unterschiedlicher Hersteller sind oft nicht miteinander kompatibel.

Kategorie 2 - Installation eines Einplatinen-PCs oder eines x86-kompatiblen PCs. Dadurch werden die EinschrĂ€nkungen der Rechenleistung aufgehoben, und MajorDoMo oder eine andere Serververteilung fĂŒr die Verwaltung eines Smart Homes ist auf diesem Computer installiert. Somit sind die GerĂ€te der meisten Hersteller in einem einzigen Informationsraum verbunden. Das heißt erscheint Ihr Server fĂŒr Smart Home. Vorteile: KompatibilitĂ€t unter einem einzigen Center, das erweiterte Verwaltungsfunktionen bietet. Nachteile: Im Falle eines Serverausfalls kehrt das gesamte System zu Stufe 1 zurĂŒck, d. H. wird fragmentiert oder unbrauchbar.

Kategorie 3 ist die Hardcore-Version. In der Reparaturphase werden alle Kommunikationen verlegt und alle Systeme dupliziert. Vorteile: Alles wird zum Ideal gebracht und dann wird das Haus wirklich schlau. Nachteile: Extreme Kosten im Vergleich zu den Kategorien 1 und 2, die Notwendigkeit, alles im Voraus zu ĂŒberdenken und jede Kleinigkeit zu berĂŒcksichtigen.

Die meisten Benutzer wÀhlen Option eins und wechseln dann nahtlos zu Option zwei. Und in Zukunft die bestÀndigste Reichweitenoption 3.

Es gibt jedoch eine Option, die als verteiltes System bezeichnet werden kann: Jedes einzelne GerÀt ist sowohl ein Server als auch ein Client. In der Tat ist dies ein Versuch, Option 1 und Option 2 zu ergreifen und zu kombinieren. Nehmen Sie alle ihre Pluspunkte und beseitigen Sie die Minuspunkte, um den Mittelweg zu erreichen.

Vielleicht wird jemand sagen, dass eine solche Option bereits entwickelt wurde. Solche Entscheidungen sind jedoch eng gefasst. fĂŒr Programmierer. Unser Ziel ist es, die Schwelle fĂŒr den Eintritt in solche verteilten Systeme sowohl in Form von EndgerĂ€ten als auch in Form der Integration bestehender GerĂ€te in unser System zu senken. Im Falle des Thermostats entfernt der Benutzer einfach seinen alten Thermostat, installiert einen intelligenten Thermostat und schließt seine Sensoren daran an. Ohne zusĂ€tzliche Aktion.

Betrachten wir die Integration in unser System anhand eines Beispiels.

Stellen Sie sich vor, wir haben 8 Sonoff-Module in unserem Netzwerk. Einige Benutzer haben möglicherweise ausreichend Kontrolle ĂŒber die Sonoff-Cloud (Kategorie 1). Einige verwenden Firmware von Drittanbietern und wechseln problemlos zu Kategorie 2. Der Großteil der Firmware von Drittanbietern funktioniert nach demselben Prinzip: DatenĂŒbertragung zum MQTT-Server. OpenHub, Majordomo oder andere GerĂ€te dienen demselben Zweck: Sie können unterschiedliche GerĂ€te in einem einzigen Informationsbereich zusammenfassen, der sich entweder im Internet oder in einem lokalen Netzwerk befindet. Daher ist die Anwesenheit des Servers obligatorisch. Ab hier tritt das Hauptproblem auf: Wenn der Server ausfĂ€llt, funktioniert das gesamte System nicht mehr autonom. Um dies zu verhindern, werden die Systeme komplizierter, und es werden manuelle Steuerungsmethoden hinzugefĂŒgt, die die Automatisierung im Falle eines Serverausfalls duplizieren.

Wir sind einen anderen Weg gegangen, bei dem jedes GerÀt autark ist. Somit spielt der Server keine entscheidende Rolle, sondern erweitert nur die FunktionalitÀt.

ZurĂŒck zum Gedankenexperiment. Nehmen Sie wieder dieselben 8 Sonoff-Module und installieren Sie die Lytko-Firmware darin. In allen Lytko-Firmware ist die SSDP- Funktion implementiert. SSDP ist ein Netzwerkprotokoll, das auf einer Reihe von Internetprotokollen basiert, mit denen Netzwerkdienste angekĂŒndigt und erkannt werden. Die Antwort auf die Anforderung kann entweder Standard oder Advanced sein. ZusĂ€tzlich zu den Standardfunktionen haben wir in diese Antwort die Erstellung einer Liste von GerĂ€ten im Netzwerk aufgenommen. So finden sich die GerĂ€te selbst und jeder von ihnen wird eine solche Liste haben. Beispiel SSDP-Sheet:

"ssdpList": { "id": 94967291, "ip": "192.168.xx", "type": "thermostat" }, { "id": 94967282, "ip": "192.168.xx", "type": "thermostat" } 

Wie Sie dem Beispiel entnehmen können, enthĂ€lt die Liste die GerĂ€te-ID, die Netzwerk-IP-Adresse und den Blocktyp (in unserem Fall einen Sonoff-basierten Thermostat). Diese Liste wird alle zwei Minuten aktualisiert (dieses Intervall reicht aus, um auf eine dynamische Änderung der Anzahl der GerĂ€te im Netzwerk zu reagieren). So können wir das HinzufĂŒgen, Ändern und Trennen von GerĂ€ten nachverfolgen, ohne dass der Benutzer etwas unternehmen muss. Diese Liste wird an einen Browser oder eine mobile Anwendung gesendet, und das Skript selbst bildet eine Seite mit einer bestimmten Anzahl von Blöcken. Jeder Block entspricht einem GerĂ€t / Sensor / Controller. Visuell sieht die Liste folgendermaßen aus:



Aber ob andere Funksensoren ĂŒber cc2530 (ZigBee) oder nrf24 (MySensors) mit esp8266 / esp32 verbunden sind?

Über Projekte


Es gibt verschiedene verteilte Systeme auf dem Markt. Unser System ermöglicht Ihnen die Integration mit den beliebtesten.

Im Folgenden sind die Projekte aufgefĂŒhrt, die versuchen, die Situation mit der InkompatibilitĂ€t verschiedener Hersteller untereinander zu Ă€ndern. Dies sind beispielsweise SLS Gateway , MySensors oder ZESP32 . ZigBee2MQTT ist an einen MQTT-Server gebunden und daher beispielsweise nicht geeignet.

Eine Implementierungsoption fĂŒr MySensors ist ein ESP8266-basiertes Gateway. Andere Beispiele beziehen sich auf ESP32. Und in ihnen können Sie unser Prinzip der Erkennung und Erstellung einer GerĂ€teliste umsetzen.

Machen wir noch ein Gedankenexperiment. Wir haben ein Gateway ZESP32 oder SLS Gateway oder MySensors. Wie können sie in einem einzigen Informationsraum kombiniert werden? Wir werden die SSDP-Protokollbibliothek zu den Standardfunktionen dieser Gateways hinzufĂŒgen. Wenn Sie ĂŒber SSDP auf diesen Controller zugreifen, wird eine Liste der angeschlossenen GerĂ€te zur Standardantwort hinzugefĂŒgt. Anhand dieser Informationen bildet der Browser eine Seite. Im Allgemeinen wird es so aussehen:


WeboberflÀche


PWA-Anwendung

 "ssdpList": { "id": 94967291, //    "ip": "192.168.xx", // ip    "type": "thermostat" //   }, { "id": 94967292, "ip": "192.168.xx", "type": "thermostat" }, { "id": 94967293, "ip": "192.168.xx", "type": "thermostat" }, { "id": 13587532, "type": "switch" }, { "id": 98412557, "type": "smoke" }, { "id": 57995113, "type": "contact_sensor" }, { "id": 74123668, "type": "temperature_humidity_pressure_sensor" }, { "id": 74621883, "type": "temperature_humidity_sensor" } 

Das Beispiel zeigt, dass die GerĂ€te unabhĂ€ngig voneinander hinzugefĂŒgt werden. Es sind 3 Thermostate mit eigener IP-Adresse und 5 verschiedene Sensoren mit eindeutiger ID angeschlossen. Wenn der Sensor mit einem Wi-Fi-Netzwerk verbunden ist, hat er eine eigene IP. Wenn er mit dem Gateway verbunden ist, ist die IP-Adresse des GerĂ€ts die IP-Adresse des Gateways.

Zur Kommunikation mit GerĂ€ten verwenden wir WebSocket. Auf diese Weise können Sie die Kosten fĂŒr Ressourcen im Vergleich zu Abrufanforderungen minimieren und Informationen dynamisch empfangen, wenn Sie eine Verbindung herstellen oder Ă€ndern.

Die Daten werden unter Umgehung des Servers direkt von dem GerĂ€t abgerufen, zu dem das GerĂ€t gehört. Wenn also eines der GerĂ€te ausfĂ€llt, arbeitet das System weiter. Das Webinterface zeigt nicht nur das GerĂ€t an, das in der Liste fehlt. Das Signal fĂŒr den Verlust wird jedoch, falls erforderlich, in Form einer Benachrichtigung in der Benutzeranwendung angezeigt.

Der erste Versuch, diesen Ansatz zu implementieren, war eine PWA-Anwendung. Auf diese Weise können Sie die Blockbasis auf dem GerĂ€t des Benutzers speichern und nur die erforderlichen Daten anfordern. Aufgrund der Besonderheiten der Struktur ist eine solche Option jedoch unterlegen. Und es gibt nur einen Ausweg - eine native Anwendung fĂŒr Android und IOS, die derzeit aktiv entwickelt wird. StandardmĂ€ĂŸig funktioniert die Anwendung nur im internen Netzwerk. Bei Bedarf können Sie alles an eine externe Steuerung ĂŒbertragen. Wenn der Benutzer das lokale Netzwerk verlĂ€sst, wechselt die Anwendung automatisch in die Cloud.

Externe Verwaltung - vollstĂ€ndige VervielfĂ€ltigung der Seite. Wenn die Seite aktiviert ist, kann sich der Benutzer beim Server anmelden und GerĂ€te ĂŒber ein persönliches Konto verwalten. Auf diese Weise erweitert der Server die FunktionalitĂ€t, sodass Sie GerĂ€te außerhalb des Hauses verwalten können und nicht an die Portweiterleitung oder eine dedizierte IP gebunden sind.

Somit ist die obige Option frei von den Nachteilen des Server-Ansatzes und hat auch mehrere Vorteile in Form der FlexibilitĂ€t beim Anschließen neuer GerĂ€te.

Über den Thermostat


Betrachten Sie ein Steuersystem am Beispiel unseres Thermostats.

Zur VerfĂŒgung gestellt von:

  1. Temperaturregelung fĂŒr jeden Thermostat (als separate Einheit angezeigt);
  2. Einstellen des Zeitplans des Thermostats (morgens, tags, abends, nachts);
  3. AuswĂ€hlen eines Wi-Fi-Netzwerks und Anschließen eines GerĂ€ts daran;
  4. Aktualisieren des GerĂ€ts "ĂŒber Funk";
  5. MQTT konfigurieren;
  6. Konfigurieren Sie das Netzwerk, mit dem das GerÀt verbunden ist.



Neben der Verwaltung ĂŒber das Webinterface sorgten sie fĂŒr das klassische - durch Tippen auf das Display. An Bord befindet sich der 2,4-Zoll-Monitor Nextion NX3224T024. Die Wahl fiel auf ihn aufgrund der Einfachheit der Arbeit mit dem GerĂ€t. In der Entwicklung befindet sich jedoch ein eigener Monitor auf Basis von STM32. Seine FunktionalitĂ€t ist nicht schlechter als die von Nextion, aber es wird weniger kosten, was sich positiv auf den Endpreis des GerĂ€ts auswirkt.



Wie jeder Thermostatbildschirm mit Selbstachtung kann unser Nextion:

  • Stellen Sie die fĂŒr den Benutzer erforderliche Temperatur ein (mit den Tasten auf der rechten Seite).
  • Ein- und Ausschalten des geplanten Betriebsmodus (Taste H);
  • Relaisbetrieb anzeigen (Pfeil links);
  • hat Schutz vor Kindern (physische Klicks sind blockiert, bis die Sperre entfernt wird);
  • Zeigt die WiFi-SignalstĂ€rke an.

Mit dem Monitor können Sie außerdem:

  • WĂ€hlen Sie den vom Benutzer installierten Sensortyp.
  • die Kinderschutzfunktion verwalten;
  • Firmware aktualisieren.



Durch Klicken auf die WLAN-Leiste erhÀlt der Benutzer Informationen zum verbundenen Netzwerk. Der QR-Code wird zum Koppeln des GerÀts in der HomeKit-Firmware verwendet.



Demo der Arbeit mit dem Display:



Wir haben eine Demoseite mit drei angeschlossenen Thermostaten entwickelt.

Sie fragen: „Was ist die Besonderheit Ihres Thermostats?“ Jetzt gibt es auf dem Markt viele Thermostate mit WLAN-Funktion, zeitgesteuerter Arbeit und BerĂŒhrungssteuerung. Und Enthusiasten haben Module fĂŒr die Interaktion mit den gĂ€ngigsten Smart-Home-Systemen (Majordomo, HomeAssistant usw.) geschrieben.

Unser Thermostat ist mit solchen Systemen kompatibel und hat alle oben genannten Eigenschaften. Das Besondere ist jedoch, dass der Thermostat dank der FlexibilitĂ€t des Systems stĂ€ndig verbessert wird. Mit jedem Update wird die FunktionalitĂ€t erweitert. Zur Standardmethode fĂŒr die Verwaltung des Systems (gemĂ€ĂŸ Zeitplan) wird eine adaptive hinzugefĂŒgt. Mit der Anwendung können Sie die Geolocation des Benutzers abrufen. Aus diesem Grund Ă€ndert das System die Betriebsmodi je nach Standort dynamisch. Und mit dem Wettermodul können Sie sich an die Wetterbedingungen anpassen.

Und Erweiterbarkeit. Jeder kann den bei ihm ĂŒblichen Thermostat durch unseren ersetzen. Mit minimalem Aufwand. Wir haben die 5 beliebtesten Sensoren auf dem Markt ausgewĂ€hlt und deren UnterstĂŒtzung hinzugefĂŒgt. Aber auch bei exklusiven Sensoreigenschaften kann der Benutzer es an unseren Thermostat anschließen. Dazu mĂŒssen Sie den Thermostat kalibrieren, um mit einem bestimmten Sensor zu arbeiten. Wir werden Anweisungen geben.

Wenn ein Thermostat oder ein anderes GerĂ€t angeschlossen wird, erscheint es gleichzeitig ĂŒberall: sowohl im Webinterface als auch in der PWA-Anwendung. Das HinzufĂŒgen eines GerĂ€ts erfolgt automatisch: Verbinden Sie es einfach mit einem Wi-Fi-Netzwerk.

Unser System benötigt keinen Server und verwandelt sich im Fehlerfall nicht in einen KĂŒrbis. Selbst wenn eine der Komponenten ausfĂ€llt, startet das System nicht gemĂ€ĂŸ dem Notfallszenario. Steuerungen, Sensoren, GerĂ€te - jedes Element ist sowohl ein Server als auch ein Client, daher ist es völlig autonom.

FĂŒr Interessierte sind unsere sozialen Netzwerke: Telegramm , Instagram , Telegrammnachrichten , VK , Facebook .

E-Mail: shop@lytko.com

PS wir drĂ€ngen nicht, den Server aufzugeben. Wir haben auch UnterstĂŒtzung fĂŒr den MQTT-Server und verfĂŒgen ĂŒber eine eigene Cloud. Unser Ziel ist es, die StabilitĂ€t und ZuverlĂ€ssigkeit des Systems auf ein völlig neues Niveau zu bringen. Damit ist der Server keine Schwachstelle, sondern ergĂ€nzt die FunktionalitĂ€t und macht das System komfortabler.

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


All Articles