Forum: Digitale Signalverarbeitung / DSP / Machine Learning IR Telegramm reverse-engineering


von pascalts (Gast)


Angehängte Dateien:

Lesenswert?

Moin!

Ich habe hier einen Westminster Pellet-Ofen den ich per IR-Fernbedienung 
steuern kann. Heißt Funktionen wie Ein / Aus, Soll-Temperatur festlegen, 
Gebläse-Stufe festlegen kann ich "programmieren" mit der Fernbedinung.

Ich würde das gern später einem uC auftragen, damit ich weitere 
Steuerungsfunkionen habe, oder z.B. von der Arbeit aus das Haus 
vorheizen kann (ESP + IR im WiFI mit Webserver...).

Leider scheite ich bereits sehr früh: Beim dekodieren des IR-Signals. 
Ich komme einfach nicht drauf, was das für eine Kodierung sein könnte... 
Da fehlt es mir Massiv an der Erfahrung.

Es gibt leider seitens des Herstellers keine mir bekannte Dokumentation 
(wie leider so oft). Aber vielleicht hat ja jemand von euch schon mal 
sowas gesehen.

Kurz zu meinem Versuchsaufbau: Die Fernbedienung richte ich auf eine 
IR-Diode, welche an einem einfach Logic-Analyzer hängt (China-Ware, aber 
bisher überraschend zuverlässig).

Könnt ihr mir zu dem Signal im Anhang irgendetwas sagen, mit dem ich 
weiter komme? Ich könnte natürlich von mir gewünschte Befehle einfach 
aufzeichen und abspielen. Aber das wäre nicht so "cool", wie z.B. eine 
Arduino-Library zu bauen, von der dann auch andere profotieren können.

Grüße

Pascal

PS: Das übertragene Signal sagt dem Ofen "Alles ausmachen".

von Johannes O. (jojo_2)


Lesenswert?

Manchester Coding mit OOK (On-off-Keying).

Am Anfang hast du noch ein paar ms dauer an um den Empfänger zu wecken 
o.Ä.

Vermutlich ist da noch ein Träger aufmoduliert den du hier nicht siehts. 
Sollte im kHz Bereich sein irgendwo dort sein: 30-70 kHz
https://en.wikipedia.org/wiki/Consumer_IR (Abschnitt zur Carrier 
Frequency)

von ...-. (Gast)


Lesenswert?


von pascalts (Gast)


Lesenswert?

Okay, vielen Dank erstmal.

Ich habe mal schnell einen Arduino mit IRMP aufgesetzt. Da bekomme ich 
folgendes Ergebnis:

P=SIEMENS  A=0x2AA C=0x15A R

Manchmal kommt

P=NEC42  A=0x1043 C=0x0

Siemens schein mir nicht plausibel. Da 
(https://www.mikrocontroller.net/articles/IRMP#SIEMENS_.2B_RUWIDO) steht 
"Start-Bit   275µs Puls, 275µs Pause " - das habe ich definitiv nicht.

NEC42 (https://www.mikrocontroller.net/articles/IRMP#NEC42) könnte schon 
eher hinkommen "Start-Bit   9000µs Puls, 4500µs Pause "

Aber spätetens ab der Beschreibung von 0 und 1 bit passt da nix mehr... 
Ich glaube die Jungs von Westminister haben sich das was eigenes 
einfallen lassen...

von Hp M. (nachtmix)


Lesenswert?

pascalts schrieb:
> Es gibt leider seitens des Herstellers keine mir bekannte Dokumentation
> (wie leider so oft).

Hast du ihn schon mal danach gefragt?

von pascalts (Gast)


Lesenswert?

Ja. Ich habe Westinster, als auch den Hersteller der Steuerplatine in 
Italien angefragt. Ursprünglich in der Hoffnung, auf die Serielle 
Schnittstelle an der Rückseite des Ofens zugreifen zu können. Aber die 
wollten mir nicht mal sagen, ob es TTL Level, RS232 oder etwas ganz 
anderes ist.

Das Einzige was sie mir angeboten haben, ist mit ein Modul zu 
entwickeln, wenn ich es in groér Stückzahl verkaufen könne - und das war 
nicht mein Ziel.

Also leider: Keine Dokumentation.

von Gerald K. (geku)


Lesenswert?

pascalts schrieb:
> Die Fernbedienung richte ich auf eine IR-Diode, welche an einem einfach
> Logic-Analyzer hängt

Ich habe einen Fototransistor verwendet. Ob man die Trägerfrequenz sicht 
oder nicht sieht hing vom Kollektorwiderstand und der Entfernung 
zwischen Fernbedienung und Fototranistor ab.

Ich baute mir eine lernfähige Fernbedienung. Dieses speicherte die 
Telegrammsequenz den Tasten zugeordnet ab und konnte später durch 
Drücken dieser wieder abgespielt werden. Das funktionierte mit 
verschiedenen Fernbedienungen, ohne das Telegramm analysiert zu haben.
Wichtig ist, auch die Modulation zu berücksichtigen.

von sid (Gast)


Lesenswert?

Hast Du mal versucht über die SollTemperatur die Struktur zu ergründen?

Also Solltemperatur auf Zweierpotenzen und zweierpotenzen-1 setzen;
sodass Du eine schöne Folge von Nullen durch dieselbe Anzahl Einsen 
ersetzt;
so kann man recht schnell die Datenbits und ggf den paritätsbit 
herausfinden.

kannst Du die dann identifizieren kannst Du sie auch decodieren
(dank dem Vorwissen der eingestellten Temperatur)
So könnte man ggf den Ansatz finden die Codierung herauszufinden

'sid

von Mario M. (thelonging)


Lesenswert?

pascalts schrieb:
> NEC42 (https://www.mikrocontroller.net/articles/IRMP#NEC42) könnte schon
> eher hinkommen "Start-Bit   9000µs Puls, 4500µs Pause "
>
> Aber spätetens ab der Beschreibung von 0 und 1 bit passt da nix mehr...

Passt doch gut, wenn man berücksichtigt, dass Puls = L und Pause = H 
ist.

von pascalts (Gast)


Lesenswert?

Danke, das sind gute Ansätze. Ich werde mich am Wochenende mal hinsetzen 
und schauen was ich hinbekomme. Das mit den verschiedenen Werten ist 
eine gute Idee die ich auch hatte, aber auf die Idee mit den 2er 
Potenzen bin ich nicht gekommen.

Einen Fototransistor könnte ich auch noch in der Grabbelkiste haben... 
mal sehen.

Beitrag #6287222 wurde von einem Moderator gelöscht.
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.