Noolite Router Bypass über mtrf64 + esp8266 + MQTT Buddy Android App

Herausforderung


Umgehen Sie den Noolite-Router und steuern Sie die Noolite-Beleuchtung schnell, effizient und ohne Verwendung eines Heimservers. Globale Dezentralisierung und vollständige Nutzung von Cloud-Lösungen in Heimgeräten und Internet-Dingen. Was? ....

Hallo allerseits!

Wiederum beginne ich mit meinen Bastschuhen und der Geschichte, wie man den teuren Noolite-Router überwindet, die Beleuchtung zu steuern und mich nicht um Lötplatten, Controller und allgemein zu kümmern - ich möchte die Anwendung einschalten / installieren und sie funktioniert ohne zusätzliches Tanzen. Ja ... jeder schreibt darüber, aber nur wenige Leute tun es, weil oft alle Entscheidungen auf komplexen Anweisungen beruhen. Und ich werde es dir jetzt zeigen :) - weit voraus Freunde!

Jeder, der Noolith-Beleuchtungseinheiten kaufte, stieß auf die folgenden Probleme. Lassen Sie uns einfach sein:

1. Ich steckte fest, ok! und was dann? wie man modische Blöcke verwaltet, und sie erschienen auch mit Verschlüsselung und Feedback ( Artikel )
2. Ja ... sie wollen ein Ethernet-Gateway ... für xxx grün ... verwalten - OK! Was ist mit der Anwendung? ja ...?! gut vorwärts
3. Ich habe angefangen zu verwalten - aber es ist ziemlich teuer ... es ist Beleuchtung, ich möchte etwas Cooles und ich möchte auch Skripte - aber wo kann ich sie bekommen? (Am Ende ist der Artikel ein Mega-Bonus für die Szenarien!) Sie benötigen auch einen Heimserver :( - all dies führt am Ende zu Kosten und ist bereits ... nicht sehr budgetgerecht.

Diese (oder ähnliche) Elemente hindern Benutzer auch daran, die Hausautomation zu erweitern.

Die Aufgabe ist klar: Wir müssen das Leben vereinfachen und bequemer machen - jetzt versuchen wir, es zu lösen, indem wir auf radikale Methoden zurückgreifen. Wir entfernen den Heimserver, entfernen das Noolite-Ethernet-Gateway.

(Gelächter des Noolite-Teams)
Es gibt Lichtsteuergeräte und ... den Benutzer.
(Es sollte ein Bild von einem Benutzer auf dem Feld sein :) mit einem Noolithblock)

Um mit der Verwaltung dieser Blöcke zu beginnen, müssen wir in erster Linie über die verwendeten Technologien nachdenken und dann verstehen, welche Art von Hardware uns dabei hilft.

In letzter Zeit war ein Datenübertragungsprotokoll sehr beliebt: MQTT - ja, es ist ein cooles und sehr praktisches Datenübertragungsprotokoll. Wir haben mit einem Team von perversen Enthusiasten eine Anwendung für dieses Protokoll entwickelt, die Android-Benutzern hilft (iOS-Build und Windows Phone bei der Lieferung an die Märkte). Der Link zur Anwendung am Ende des Artikels betrachtet es nicht als PR;) - na ja - das ist PR: D - aber wir brauchen eine gute Anwendung, die uns hilft, die Welt kühler zu machen. MQTT ist cool - JA!

Wir nehmen das MQTT-Protokoll - großartig. Es gibt eine Anwendung dafür - ausgezeichnet. Nun Achtung: die Frage der Verfüllung :) - Welche Hardware unterstützt MQTT? - JA, alle sagten mit einer Stimme: Natürlich ESP 8266.

Kochen Sie den Borscht weiter und rühren Sie die hinzugefügten Zutaten um, besuchen Sie die Noolite-Website und sehen Sie, was sie im Allgemeinen mit den Kommunikationsmodulen haben ... oh!

Sie haben also Module für die Kommunikation mit diesen Blöcken. Wir brauchen nur Exoten. Warum? Ja, weil wir keinen Heimserver haben, nichts als Blöcke und das Konzept der "Dezentralisierung". Oh ... ich freue mich darauf zu streiten und zu schreien - na ja, Karma auf meinem Kopf - lass uns weitermachen!

Wir schauen auf der Website - und wir sehen - 2 Module: MTRF64 USB und MTRF64 - also ein USB, das zweite nur UART. Naja, sie haben eine Lösung gefunden :) - da USB für Computer und die Stromversorgung dort unter 5V liegt - und hier Herr Uart selbst und sogar 3,3V angepasst - schön.

Was haben wir
1. Block Noolite SLF-1-300 (Block mit Feedback und Verschlüsselung)
Bild
(Bild Noolite SLF-1-300)

2. MTRF64 UART-Modul (das weniger kostet als USB, da kein Chip für die Arbeit mit USB vorhanden ist! Vereinfacht zum "Basis" -Zustand;))
Bild
(Bild MTRF64 UART)

3. ESP8266-Modul
Bild
(Bild ESP8266)

3. Anwendung für die Arbeit mit MQTT (MQTT Buddy)
Bild
(Bild)

Video


Jetzt müssen Sie Ihr Leben vereinfachen und Ihnen einen Code für die Seele geben - genau. Wer sitzen und viel Code schreiben will, vor allem mit MTRF64 muss man in die Docks klettern, und da ... gibt es viele nützliche Dinge ( Link ) - aber wir müssen schnell und effizient. Open Source von unserem Team - willkommen: D> GitHub

Wir müssen auch ESP8266 vorbereiten - wer es "verbrannt" hat - weiß, es ist nicht schwierig - 2 Minuten und alles wird für Sie funktionieren.

Mach dich bereit und heb ab!


- Sie können die Firmware von der Website ( https://nodemcu-build.com ) herunterladen und direkt aus dem Github- Repository entnehmen , das mit dem gesamten Code geliefert wird

- Brennen Sie den Befehl ESP8266:

sudo python esptool.py --port /dev/ttyUSB0 write_flash -fm dio -fs 32m 0x00000 {your_nodemcu_firmware.bin} 

- Überprüfen Sie, ob esp8266 als / dev / ttyUSB0 angeschlossen ist
- Wir überprüfen, ob Sie {your_nodemcu_firmware.bin} durch den Namen Ihrer Firmware ersetzt haben
- Wenn es kein Esptool gibt ( hier herunterladen;))
- Nehmen Sie das ESP8266-Entwicklungsboard - und brennen Sie es, "brennen" Sie es in vollen Zügen!

Nun, Aufmerksamkeit, wir nehmen den fertigen Code und laden ihn herunter: Arbeiten.

Lesen Sie, bevor Sie den Code eingeben!
- Ersetzen Sie Ihre WLAN-Router-Daten durch Login \ Pass und Ihren MQTT-Broker durch Login und Pass. Der Code verwendet den kostenlosen MQTT-Broker von cloudmqtt.com. Unser Team hat seinen kostenlosen Broker eingerichtet, den Sie verwenden können: mqtt.ximxim.com (mqtt \ mqtt)

Link zum GitHub-Repository: mqtt_buddy-mtrf64-noolite-esp8266 - der Code wurde von Dmitry Karaba entwickelt (ich bedanke mich bei ihm!).
Der Code wird speziell aus dem geschlossenen Repository unserer Firma XIM, INC neu geladen - zum kostenlosen Download in die Öffentlichkeit.

Stellen Sie sicher, dass Sie die Daten durch Ihre ersetzen
 -- Credentials SSID = "YOUR SSID NAME" PASSWORD = "YOUR PASSWORD" MQTT_SERVER = "m21.cloudmqtt.com" MQTT_SERVER_PORT = 16487 MQTT_USER = "noo" MQTT_PASS = "noo" 


Füllen Sie den Code auf dem ESP8266 mit dem ESPLORER- Tool aus.

Jetzt verbinden wir esp8266 dev board + MTRF64.
esp8266 D7 rx - MTRF64 TX
esp8266 D8 tx - MTRF64 TX
esp8266 GND - MTRF64 GND
esp8266 3V3 - MTRF64 3V3

Bild
(Verbindungsfoto)

Nachdem Sie den Code auf esp8266 hochgeladen haben - nach dem Neustart können Sie ihn nicht erreichen und etwas (Code) ändern - müssen Sie die Firmware erneut schreiben. Warum? weil esp8266 automatisch auf die UART9600-Verbindung umschaltet und mit dem MTRF64-Modul kommuniziert. Der Code verwendet eine alternative Uart-Verbindung über d7 \ d8-Pins. Die Haupt-RX- und TX-Pins sind für die Arbeit frei. Sie können problemlos die Bedingungen für die Unterbrechung des Übergangs zu uart9600 festlegen, um mit MTRF64 zu kommunizieren - da dies nicht unser Ziel und unsere Hauptaufgabe war.


Was wir gemacht haben und wie es funktioniert


Das mtrf64-Modul ist über UART mit esp8266 verbunden, das wiederum über Ihren Router online geht und eine Verbindung zum kostenlosen MQTT-Broker herstellt. Andererseits stellen Sie als Benutzer auch über eine mobile Anwendung eine Verbindung zu diesem Cloud-Broker her und senden Befehle an MQTT-Kanäle, die wiederum im laufenden Betrieb „zerlegt“ und je nach Befehl über das UART MTRF64-Modul übertragen werden! Ja! So wurden wir cool und budgetiert! Ja! Es ist verdammt cool, wenn Sie feststellen, dass Sie eine klare logische Kette von Technologien aufgebaut haben, die für Sie funktionieren. Vielen Dank ;)

Video


Management


Weiter gehen: Sind wir verbunden und wie geht es weiter? Wie zu verwalten;) - alles ist einfach! Wir führen unsere MQTT Buddy-App mit Google Play zusammen (Link am Ende des Artikels) und fügen dort den MQTT-Broker hinzu - zum Beispiel mqttcloud.com. Fügen Sie nun eine neue Schaltfläche hinzu, um den Noolite-Block an MTRF64 zu binden - machen Sie sie zu Freunden!

Befehle zur Kommunikation mit MTRF64
Dmitry Karaba, Entwickler von Code für esp8266 für MTRF64, hat das folgende Format von MQTT-Befehlen für die Kommunikation mit dem Modul erstellt.

  -- mqtt_buddy/noolight/<int:channel> -- mqtt_buddy/noolight/<int:channel>/<XX-XX-XX-XX:address> -- mqtt_buddy/noolight/<int:channel>/bind -- mqtt_buddy/noolight/<int:channel>/unbind -- mqtt_buddy/noolight/<int:channel>/devices 

Anhand der MQTT-Themen können Sie erkennen, dass Sie sowohl mit Kanälen als auch mit den Adressen bestimmter Geräte direkt arbeiten können. Dadurch können Sie alle Geräte an einen Kanal binden, aber mit jedem an einer bestimmten Adresse arbeiten. Die Adresse finden Sie beim Binden im Thema mqtt_buddy / sys. Das Modul antwortet mit der Adresse des angeschlossenen Geräts.

Fügen Sie MQTT Buddy eine Schaltfläche hinzu (oder verwenden Sie am Ende Ihren MQTT-Client, Ihre Konsole und Python mit paho!). Klicken Sie in MQTT Buddy auf "+" und geben Sie den Namen der Schaltfläche und des Themas ein.

Hinzufügen einer Steuertaste zu MQTT Buddy
mqtt_buddy / noolight / 0 und Daten: "ein, aus oder schalten"

und aktivieren Sie ein Kontrollkästchen: Veröffentlichen - damit Sie den Befehl an das Thema mqtt senden können, wenn Sie auf die Schaltfläche klicken.

Bild


Video


Wir haben eine Schaltfläche hinzugefügt, jetzt führen wir die Standardblockbindung durch: Klicken Sie auf den Block, klicken Sie in unserer Anwendung auf die Schaltfläche zum Binden und sehen Sie, wie der Block mit dem Modul verbunden ist. Die blinkende Anzeige auf dem SLF-Block erlischt.

Wenn Sie weitere Informationen wünschen - Sie können die Nachrichten im Thema lesen: mqtt_buddy / sys - alle Informationen aus dem Block kommen dort an - jedes Mal alle 17 Datenbytes, wo Sie die Adressen der Blöcke herausfinden können und was im technischen Keller los ist ...

Video


Nach dem Binden erstellen wir eine neue Schaltfläche zum Verwalten dieser Blöcke mit einem Thema.

Blockverwaltung über MQTT-Thema in MQTT Buddy
mqtt_buddy / noolight / 0 und Daten: "ein, aus oder schalten"

Aktivieren Sie in den Anwendungseinstellungen die Kontrollkästchen: switch \ beibehalten \ veröffentlichen - Wenn Sie jetzt auf die Schaltfläche klicken, wird ein Befehl an das Thema "mqtt_buddy / noolight / 0" gesendet. Esp8266 empfängt diese Daten und analysiert das Thema und sendet den erforderlichen Befehl an das MTRF64-Noolite-Modul. Ein Wunder geschieht ... Ein Wunder der Technologie, das Sie ohne komplexe Handlungen in die Realität umsetzen konnten.

Das Flashen und Verwalten des ersten Blocks dauert ca. 5 Minuten, wenn Sie bereits mit esp8266 vertraut sind und es mindestens einmal geflasht haben.

=================== Abreißen ==============================

Links zu Hardware und Software nach Artikel


- MTRF 64-Block
- ESP8266 Dev Board - Aliexpress \ Radiomärkte \ Online-Shops
- MQTT Buddy Android App (iOS \ Windows Phone in Anpassung)
- mqtt.ximxim.com - unsere Website - wir haben auf esp8266 einen SHOW-Raum für einen größeren Fan eingerichtet;) - vielen Dank für die positive Bewertung, wir versuchen, IOT realer zu machen, intelligentes Automatisierungsteam Smart Automation Team> XIM, Inc.

Ich habe den Selfie-Stick nach Hause vergessen
Naja ... ich habe den Selfie-Stick zu Hause vergessen, ich musste den Büro-Staubsauger schnell erneuern;)

Bild

=============== MQTT Buddy Bon-Skripte ==========================

Da unser System dezentralisiert ist und es keinen Heimserver gibt - wer wird die Skripte ausführen? Ja - es funktioniert, ja - der Autor verwendet diese Funktionalität. Wie funktioniert es und wo? In unserer MQTT Buddy App. Alles ist ganz einfach: Sie fügen einen MQTT-Broker hinzu und gehen hinein, dann befindet sich oben eine Schaltfläche in Form einer Uhr - dies ist das Skript.

Hinzufügen eines Skripts zu MQTT Buddy
Wenn Sie auf klicken - wir fügen das Skript hinzu und wenn Ihr Broker im Internet verfügbar ist -, dann zum richtigen Zeitpunkt (Aufmerksamkeit, Zeitzonen werden berücksichtigt, Sie müssen sich keine Sorgen machen und darüber nachdenken - sagen Sie dem System einfach, wann Sie möchten und was Sie an das gewünschte Thema senden möchten). - 100% Test durch QOS = 1 MQTT-Protokoll). Wir haben den Service für Benutzer so weit wie möglich vereinfacht, damit sie nicht über den technischen Teil nachdenken und sich nicht darum kümmern, sondern einfach "was ich will" sagen :) - und dass es funktioniert.

Bild

Dies ist ein echter Service, der wirklich funktioniert. Wenn jemand einen kostenlosen MQTT Buddy-Code für die PRO-Funktionalität erhalten möchte - Sie können das Formular auf der Website mqtt.ximxim.com abonnieren :)), gibt es auch einen Ausstellungsraum über den Webzugriff. Das ist alles! Abheben!

Ich wünsche Ihnen einen schönen Tag und gute Laune. Vielen Dank für Ihr Feedback, Ihr positives Feedback und Ihre fundierte Kritik! Sei freundlicher.

Ihr Automator, Alex B.

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


All Articles