Inhaltsverzeichnis:

Reverse Engineering Ritter 8341C-Protokoll für ESP3866 - Gunook
Reverse Engineering Ritter 8341C-Protokoll für ESP3866 - Gunook

Video: Reverse Engineering Ritter 8341C-Protokoll für ESP3866 - Gunook

Video: Reverse Engineering Ritter 8341C-Protokoll für ESP3866 - Gunook
Video: What Happens if Russia Reverse-Engineering The Leopard Tank? 2024, Juli
Anonim
Reverse Engineering Ritter 8341C Protokoll für ESP3866
Reverse Engineering Ritter 8341C Protokoll für ESP3866

Hallo zusammen.

Für meine eigene kleine Hausautomation verwende ich primäre 433 MHz gesteuerte Steckdosen. Ich besitze 3 Sets mit DIP-Schaltern zum Einstellen der Adresse. Diese funktionierten gut. Aber vor einiger Zeit (ein oder zwei Jahren) habe ich mir einen Satz Steckdosen von "ritter" gekauft. Ich habe die Beschreibung vorher nicht gelesen und nach dem Auspacken festgestellt, dass es keine DIP-Schalter gab und auch die rcswitch-Bibliothek für ESP nicht das richtige Protokoll "sprach". Also habe ich sie nur mit der Fernbedienung benutzt.

Jetzt, in meinem Urlaub, habe ich angefangen, dies zu ändern… und hier möchte ich dieses Projekt dokumentieren. Ich hoffe, es hilft jemand anderem mit dem gleichen oder einem ähnlichen Problem.

Schritt 1: Signale aufnehmen

Signale aufnehmen
Signale aufnehmen
Signale aufnehmen
Signale aufnehmen

Um die Signale aufzuzeichnen, habe ich ein 433 MHz Empfängermodul an einen ESP8266 angeschlossen (nur ein Netzteil sollte in Ordnung sein) und mein Hantek 6022 Oszilloskop an den Datenpin angeschlossen.

Dann drückte ich die Taste auf der Fernbedienung und zeichnete den Signalzug auf.

Schritt 2: Puls-/Verzögerungsmessung

Puls-/Verzögerungsmessung
Puls-/Verzögerungsmessung

Nachdem ich das Signal aufgenommen hatte, suchte ich nach Anfang und Ende eines Bursts. Normalerweise sendet eine Steckdosen-Fernbedienung dreimal den gleichen Burst oder manchmal, solange die Taste gedrückt wird.

Jetzt habe ich die Puls-/Verzögerungszeiten gemessen und aufgeschrieben. Dies habe ich für alle sechs Signalzüge wiederholt (3 x an + 3 x aus).

Schritt 3: Vergleichen Sie die Signale für Buchse 1, 2, 3 und finden Sie den Unterschied

Vergleichen Sie die Signale für Buchse 1, 2, 3 und finden Sie den Unterschied
Vergleichen Sie die Signale für Buchse 1, 2, 3 und finden Sie den Unterschied

Nach einigen Messungen habe ich die HIGH's und LOW's + Signaldauern verglichen. Die Änderungen waren die verschiedenen Befehle. Die anderen Signale waren so etwas wie Protokoll-/Hersteller-Codes. Außerdem hatte jeder Burst eine Start- und Endsequenz.

Das Signal besteht aus "START + NICHT ÄNDERUNG DER SEQUENZ + EIN/AUS-BEFEHL + GERÄTEADRESSE + ENDE"

Schritt 4: Code zum Testen schreiben

Code zum Testen schreiben
Code zum Testen schreiben

Nach einer Weile hatte ich alle (theoretischen) Informationen, die ich brauchte. Also habe ich eine kurze Testskizze für einen ESP8266 und einen 433 MHz Sender erstellt. In der Schleife werden alle drei Steckdosen mit einer Verzögerung zwischen den Befehlen ein- und ausgeschaltet.

Schritt 5: Testen Sie den Code mit einem einfachen Absender

Testen Sie den Code mit einem einfachen Absender
Testen Sie den Code mit einem einfachen Absender
Testen Sie den Code mit einem einfachen Absender
Testen Sie den Code mit einem einfachen Absender

Ich habe eine Batterie an das ESP angeschlossen und bin ins Wohnzimmer gegangen. 5 von 6 Befehlen funktionierten, und nachdem ein Schreibfehler in einer Befehlssequenz behoben wurde, funktionierten alle Codes.

Gut, jetzt kann ich alle 12 RC-Buchsen (9 mit DIP-Adresse + die 3 neuen ritter) mit meinem ESP8266 RC-Controller schalten.

Demo-Code finden Sie auf GitHub

Empfohlen: