Forum: Mikrocontroller und Digitale Elektronik Challenge: 433MHz Funk-Protokoll entschlüsseln


von Leo B. (luigi)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich könnte ein wenig Unterstützung gebrauchen und wende mich mit einem 
kleinen Rätsel an euch. Wenn ihr lust habt, seht es als 'Challenge' ;)


Hintergrund
Ich möchte ein paar Funksteckdosen (von Silver Crest) in meiner Wohnung 
verteilen. Nun reichen mir nur die 4 Kanäle der Fernbedienungen nicht 
aus und ich würde sie zusätzlich gerne mit einem Mikrocontroller 
steuern. Jedenfalls habe ich nun das Protokoll der 433MHz 
Datenübertragung mitgeschnitten. (Direkt aus der Fernbedienung um 
Messfehler zu vermeiden.) Nur leider sitze ich jetzt vor einem kleinen 
Problem. Ich verstehe das Protokoll nicht und vermute eine 
Verschlüsselung. Aber vielleicht könnt ihr mir helfen das Protokoll 
dennoch zu verstehen.

Nun, zu dem was ich bereits herausgefunden habe:
Es gibt wohl 2 verschiedene Sync Sequenzen:
 's' einzel Puls: 0,388 ms'high', 2,34 ms'low' |¯|___
 'S' einzel Puls: 3,180 ms'high', 7,47 ms'low' |¯¯¯|_____

Im Anschluss an diese Sync Sequenzen folgen 24 Bits:
 '1' einzel Puls: 1,180 ms'high', 0,394 ms'low' |¯¯¯|_
 '0' einzel Puls: 0,394 ms'high', 1,180 ms'low' |¯|___

Übertragen wird immer Pakete in folgender Struktur:
 4x(s<24-bit Daten>)4x(S<24-bit Daten>)
 Vermutlich wird es klarer im angehängten Bild 'Paket format.png'

Drückt man eine Taste mehrmals oder bleibt darauf, dann wiederholen sich 
die Pakete mit zyklisch 4 verschiedenen Inhalten. Innerhalb eines Pakets 
bleibt der Inhalt jedoch konstant. Diese Inhalte habe ich jetzt 
aufgelistet und versuche sie zu entschlüsseln, und an dieser Stelle 
komme ich an meine Grenzen...

Das Problem
Ich habe im Anhang eine Tabelle mit allen Paketen, die beim Drücken 
einer Taste gesendet werden. Allerdings scheine ich auf ein paar 
verschlüsselte Daten gestoßen zu sein und bräuchte eine Methode zur 
Entschlüsselung.
Ein paar Ähnlichkeiten zwischen den Daten konnte ich schon finden, aber 
ich durchschaue es noch nicht.

An dieser Stelle wende ich mich an euch und hoffe ein paar kluge Köpfe 
zu finden, die mir beim entschlüsseln helfen können und vor allem auch 
wollen.

Für alles was euch auffällt oder helfen könnte das Geheimnis zu lüften, 
bin ich höchst dankbar!

Vielen Dank,
Leo

von Georg A. (georga)


Lesenswert?

Leo B. schrieb:
> Für alles was euch auffällt oder helfen könnte das Geheimnis zu lüften,
> bin ich höchst dankbar!

Der erste Schritt: Sender und Steckdosen aufschrauben und nach dem Chip 
suchen. Es gibt da zwar viele (chinesische) Firmen, aber es ist vom 
Prinzip her fast immer gleich. Sogar die Chips haben oft identische 
Ziffern...

https://cdn-shop.adafruit.com/datasheets/PT2262.pdf
https://www.maltepoeggel.de/data/usbfunk/sc5262.pdf

Dein Sync-Pattern (Duty 1/8) kommt da schon hin.

Je nach Decoder-Chip (oft irgendein Suffix in der Bezeichnung) werden 
die obersten Bits dann entweder zur parallelen Übertragung mehrerer Bits 
bzw. als weitere Adressbits benutzt. Die Adressebits können aber 
eigentlich drei Stati, wird meistens aufgrund der Dipschalter für die 
Adressen aber nicht benutzt.

Die einzig relevanten Unterschiede der diversen Dosen sind neben der 
Belegung der Adressbits die Baudrate, die über den Widerstand 
eingestellt wird.

von Wolfgang (Gast)


Lesenswert?

Leo B. schrieb:
> Ich verstehe das Protokoll nicht und vermute eine Verschlüsselung.

Das wäre eine schlechte Verschlüsselung, bei der es zu 5 Steuerkommandos 
nur 20 verschiedene Übertragungscodes gibt. Ziel einer Verschlüsselung 
ist es, dass man ohne Kenntnis des Schlüssels nicht auf den übertragenen 
Inhalt zurückschließen kann.

von MaWin (Gast)


Lesenswert?

Leo B. schrieb:
> Allerdings scheine ich auf ein paar verschlüsselte Daten gestoßen zu
> sein

Ich nehme an, die sind zum anlernen. Knoof lange drücken, Empfänger 
akzeptiert weil er decodiert dass er von 'seinem' Sender beschickt wird.

Ansonsten sieht das nach Pt2262 mit einem manchmal um 1 bit vetschobenen 
Ingalt aus.

https://www.sweetpi.de/blog/329/ein-ueberblick-ueber-433mhz-funksteckdosen-und-deren-protokolle
https://wiki.fhem.de/wiki/Intertechno_Code_Berechnung

von Georg M. (g_m)


Lesenswert?

Leo B. schrieb:
> Drückt man eine Taste mehrmals oder bleibt darauf, dann wiederholen sich
> die Pakete mit zyklisch 4 verschiedenen Inhalten. Innerhalb eines Pakets
> bleibt der Inhalt jedoch konstant.

"Es sind durchaus gewisse Zusammenhänge zu erkennen."
Beitrag "Decodiernug 433MHz Signal Funksteckdosen"


MaWin schrieb:
> Ich nehme an, die sind zum anlernen.

Ja, nach dem Einstecken wartet die Steckdose auf den Code vom Handsender 
und speichert ihn (im EEPROM des µC).

von Leo B. (luigi)


Angehängte Dateien:

Lesenswert?

Vielen Dank für die Tips. Die gängigen Chips (PT2262/HX2262) habe ich 
allerdings schon verglichen. Die scheinen schon vom Layout nicht zu 
passen, da VCC und GND an sehr anderen Positionen sitzen.

Ich habe jetzt auch den Empfänger zerlegt um evtl einen Hinweis zu 
bekommen, doch leider ist dem nicht so. Die haben die interessanten 
chips anonymisiert...
Kein Aufdruck auf den chips, wie auf den Bilder (nicht) zu erkennen :(

Wolfgang schrieb:
> Das wäre eine schlechte Verschlüsselung, bei der es zu 5 Steuerkommandos
> nur 20 verschiedene Übertragungscodes gibt.

Vermutlich hast du recht und ich habe mich falsch ausgedrückt. Eine 
wirklich gute Verschlüsselung kann es nicht wirklich sein. Aber ein 
irgendwie gearteter Kopierschutz ist es wohl. Wie das kind heißt ist 
auch nahezu egal, die Bits sind schwer zu interpretieren.

von Leo B. (luigi)


Lesenswert?

Keine weiteren Vorschläge, Ideen oder Tips, wie ich es entschlüsseln 
könnte?

So ein "How to decode" oder so fände ich gut ;)

Nein ich stehe irgendwie in einer Sackgasse und könnte jede Hilfe 
brauchen.

von Karl (Gast)


Lesenswert?


von Reinhard R. (reirawb)


Lesenswert?

Hallo Leo,
ich hatte mich vor fast 6 Jahren mal mit den Funkstechdosen beschäftigt,
allerdings auf der Empfängerseite. Ich habe damals einen 
4-Kanalempfänger gebaut, siehe 
Beitrag "Re: Zeigt her eure Kunstwerke (2)"

Informationen lieferte u.a. dieser Link: 
http://avr.börke.de/Funksteckdosen.htm
ich habe noch 3 andere Links in meinen Lesezeichen, die sind aber leider
alle tot :-(
In µC.net wirst du ja sicher schon gesucht haben, hier findet man z.B. 
eine Variante der Schaltung von den Steckdosen: 
Beitrag "Re: [AVR][GCC]: Ansteuerung für Funkschalterset"

Viel Erfolg noch.

Gruß Reinhard

von MiMa (Gast)


Lesenswert?

Leo B. schrieb:
> Drückt man eine Taste mehrmals oder bleibt darauf, dann wiederholen sich
> die Pakete mit zyklisch 4 verschiedenen Inhalten. Innerhalb eines Pakets
> bleibt der Inhalt jedoch konstant.

Wenn der Inhalt immer konstant ist, dann kannst du doch einfach die paar 
Steckdosen einzeln anlernen und jeweils den übertragenen Code mitloggen?

von Reinhard R. (reirawb)


Lesenswert?

So habe ich das sinngemäß in meinem Empfänger umgesetzt. Der wird in den 
Programmiermodus versetzt, der zu programmierende Kanal wird vorgewählt 
und der Modus* wird festgelegt. Dann wird ein Fernbedienungssender 
aktiviert und der betreffende Kanal ist auf diese gedrückte Taste 
programmiert. Das Ganze für jeden der 4 Kanäle völlig unabhängig.

*) Jeder Kanal kann auf folgende 3 Modi eingestellt werden:
1. Tastfunktion - Ausgang ist solange Ein, wie die Taste gedrückt ist. 1 
Taste je Kanal.
2. Stromstossschalter - Beim ersten Tastendruck Ein, beim nächsten 
Tastendruck Aus u.s.w. 1 Taste je Kanal.
3. Ein - Aus - Funktion - Das ist die normale Steckdosenfunktion, eine 
Taste für Ein und 1 Taste für Aus . 2 Tasten je Kanal.

Wie ich Leo aber verstanden habe, will er an der Senderseite basteln, 
weil ihm die 4 Kanäle der Originalteile nicht reichen.

Reinhard

von Joachim S. (oyo)


Lesenswert?

In diesem Thread hier:
https://electronics.stackexchange.com/questions/385919/a-curious-433-mhz-signal-to-decode

...wird ein Protokoll beschrieben, das auf den ersten Blick identisch zu 
sein scheint.
Das dort beschriebene Protokoll wird ebenfalls von einem 
433MHz-Funksteckdosen-Set verwendet, was ja ebenfalls dafür spricht, 
dass es sich um das gleiche Protokoll handeln könnte.

Das Funksteckdosen-Set dort ist offenbar von der Marke "Voltomat" und 
wurde im "Bauhaus"-Baumarkt gekauft:
https://www.bauhaus.info/funkschalter-funkstecker/voltomat-funksteckdosen-set-31/p/22541673
Da "SilverCrest" ja glaube ich sowas wie eine Eigenmarke von LIDL(?) 
ist, gehe ich mal davon aus, dass das die gleichen Steckdosen unter 
anderem Label sind.

Der Fragesteller aus dem ersten Link hat damals allerdings auch keine 
Antwort erhalten, um welches Protokoll es sich dabei handelt, aber 
vielleicht hilft Dir der Name "Voltomat" bei der Suche nach dem 
verwendeten Protokoll ja weiter.

Ich selbst habe vor einiger Zeit mal ein ähnliches (aber nicht 
identisches) Protokoll bei anlernbaren 433MHz-Funksteckdosen der Marke 
"HomeEasy" gesehen, bei deren Produkten aus der HE-8xx-Reihe.
Dort wurden bei jeder Taste auch immer 4 völlig verschiedene Codes 
gesendet, bevor es nach dem vierten Code wieder von vorne los ging.

Hat mich damals halb wahnsinnig gemacht, irgendeine Logik hinter den 
vier unterschiedlichen Codes pro Taste zu erkennen.
Habe es dann irgendwann aufgegeben - aber eines Tages habe ich dann 
irgendwann doch eine Software-Implementierung zur En- und Dekodierung 
dieses Protokolls gefunden, das dort "AnBan" genannt wird.
Als ich mir die besagte Software-Implementierung angeschaut habe, war 
mir schnell klar, wieso ich ursprünglich auf Anhieb keine Logik dahinter 
erkennen konnte:
Der Algorithmus erinnert tatsächlich stark an einen Ver- bzw. 
Entschlüsselungs-Algorithmus, bei dem die Daten über mehrere Runden 
hinweg anhand irgendeiner Tabelle substituiert wurden.

Wie gesagt, das war letztlich ein anderes Protokoll, schon deshalb weil 
es 28 Bit verwendet. Aber falls der Algorithmus dennoch irgendwie 
ähnlich ist, dann wirst Du es vermutlich eher vergessen können, anhand 
so weniger Werte da selbst irgendeine Logik erkennen zu können.

In diesem Fall würde auch ich empfehlen, einfach die Codes der 
Fernbedienung mitzuschneiden und diese 1:1 zu wiederholen. Da es ja kein 
echter Rolling-Code ist, funktioniert das ja.
Dass Du mehr als 4 Kanäle brauchst, sollte ja eigentlich kein Problem 
sein, wenn ich Dich richtig verstehe:
SilverCrest verkauft die Steckdosen ja garantiert nicht einzeln ohne 
Fernbedienung, sondern immer als Set bestehend aus einer Fernbedienung 
und mehreren Steckdosen. Egal wie viele Funksteckdosen Du hast, Du 
müsstest ja also auch ausreichend viele Fernbedienungen haben, um für 
jede Steckdose unterschiedliche Codes zu loggen. Es wäre dann nur nicht 
möglich, alle Steckdosen über ein einziges "Gruppen-Signal" zu schalten.

von Leo B. (luigi)


Lesenswert?

Ich möchte mich noch einmal bei euch allen bedanken. Ich kann leider 
nichts weiter über die "Verschlüsselung" herausfinden. Ich werde wie 
scheinbar so viele andere vor mich schon aufgeben müssen.
Dafür habe ich wieder einiges gelernt und werde mich dann wohl jetzt an 
ein neues Projekt machen: Funkmodul entfernen und durch eigenes ersetzen 
;)

Besten Dank für all eure Unterstützung und Hilfe.
Ihr habt viel geholfen auch wenn ich es am ende dennoch nicht gelöst 
habe.

Vielen Herzlichen Dank!
Grüße,
Leo

von marcs (Gast)


Lesenswert?

Hi Leo,

auch wenn Du eigentlich im Februar schon aufgegeben hattest hier noch 
einen Ansatz von mir. Ich habe Dein Thema erst jetzt gesehen. Ich hatte 
kürzlich auch solche Funksteckdosen. Sie waren nahezu identisch zu 
Deinen: Pro Kanal wurden vier verschiedene "Codes" gesendet. Die 
Steckdosen können in den ersten Sekunden nach der Versorgung mit 
Spannung mit den Tasten der Fernbedienung gekoppelt/programmiert 
werden... Alles sehr ähnlich. Der Hersteller heisst bei mir "unitec"; 
die Fernbedienung heisst "Modell 50074"

Ich hatte auch länger versucht, die 24 Bit zu senden, nach denen die 
Codes eigentlich aussehen - erfolglos.

Geklappt hat das dann mit dem Senden von 28 Bit. Du musst einfach Deine 
Sync "S" noch als 4 Bit 1100 (Hex C) interretiert mit anhängen.

Bei mir funktioniert das dann, wenn ich diese 28 Bit mindestens zweimal 
mit einer kurzen Pause von 1ms zwischen den beiden Wiederholungen sende.

Die Detailzeiten beim Senden habe ich gewählt mit: HIGH=375us und 
LOW=1125us

Ich sende mit einem nanoCUL.

Es funktioniert bei mir übrigens beim Senden jeder der vier möglichen 
Codes für einen Kanal. Und es muss auch nicht der Code gewechselt 
werden. Man kann immer denselben nehmen.

Gruß marcs

Beitrag #5830175 wurde von einem Moderator gelöscht.
von ISM_Bastler (Gast)


Lesenswert?

Hallo Leo,

habe selber ein ähnliches Set auf dem Schreibtisch. Meins ist von der 
Firma QUIGG und gab es kürzlich bei Al...

Bei der Suche bin ich auf das Protokoll GT-9000 gestoßen. Mal bei Github 
suchen. Da sind die Timings und das Protokoll beschrieben. Links die 4 
bit sind wohl der Unit Code und die rechten 4 Bit der Channel.
Der Rest in der Mitte sind die 4 rollierenden Codes, die in Abhängikeit 
vom Kanal gesendet werden.

Das Schalten mit Arduino funktioniert bei mir schon. Ich sende den 
jeweiligen Code (EIN bzw. AUS) insgesammt 8x. Davon 4x mit kurzen Sync 
und 4x mit langen Sync am Anfang, sowie es auf deinem Bild zu sehen ist.

Gruß ISM-Bastler

von MouZ (Gast)


Lesenswert?

Hallo Zusammen,
ich bin leider auf das gleiche Problem gestoßen und bekomme meine 
Funksteckdosen uniTEC nicht gesteuert. Ich verwende zum Senden ein 
Arduino Nano bzw. später einen ATTiny85.

marcs schrieb:
> Bei mir funktioniert das dann, wenn ich diese 28 Bit mindestens zweimal
> mit einer kurzen Pause von 1ms zwischen den beiden Wiederholungen sende.

ISM_Bastler schrieb:
> as Schalten mit Arduino funktioniert bei mir schon. Ich sende den
> jeweiligen Code (EIN bzw. AUS) insgesammt 8x. Davon 4x mit kurzen Sync
> und 4x mit langen Sync am Anfang, sowie es auf deinem Bild zu sehen ist.

Könnte einer von euch mal das stück Quellcode zum Senden posten? Ich 
versuche schon seit Tagen vergeblich diese Steckdosen zu steuern. Mir 
würde das sehr weiterhelfen.

Vielen Dank
Gruß Fabian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.