IR -Fernbedienung automatisieren

OP #7674516
Lesenswert?

Ich würde mich sehr über etwas Hilfe freuen. Für ein Projekt würde ich gerne mit einer "Blackbox" eine IR-Fernbedienung ansteuern. Der Eingang der Blackbox soll durch das aufleuchten einer LED getriggert werden. Dann sollen nacheinander 2 Transistoren kurz angesteuert werden, welche zwei Tasten einer IR-Fernbedienung überbrücken. Dadurch sollen nacheinander 2 IR-Impulse abgegeben werden. Der Erste Impuls schaltet über die Fernbedienung das gesteuerte Gerät ein. Der Zweite Impuls schaltet das Gerät danach auf Automatik. Womit realisiert man so etwas heutzutage? Monostabile Multivibratoren oder ein 4093 vielleicht? Könnte mir jemand eine geeignete Schaltung skizzieren? Ich habe leider hier keinerlei Erfahrungen.

Danke

#7674544
Lesenswert?

Jürgen R. schrieb:

Womit realisiert man so etwas heutzutage? Monostabile Multivibratoren oder ein 4093 vielleicht? Könnte mir jemand eine geeignete Schaltung skizzieren? Ich habe leider hier keinerlei Erfahrungen.

Dann nützen dir auch die ganzen Tips mit Mikrocontrollern nichts, denn die muss man auch beherrschen. Da sind deine Monoflops schon der richtige Weg. Die Tasten muss man aber potentialfrei ansteuern, denn die werden von der Fernbedienung in einer Matrix ausgelesen. PhotoMOS Relais sind deine Freunde.

Angehängte Dateien:
Gast #7674547
Lesenswert?

Falk B. schrieb:

PhotoMOS

Sind übertrieben. Normale Koppler mit Bipolartransistorausgang tuns auch, die nötige Polarität lässt sich ja leicht messen.

Und so manche Fernbedienung wird einen Pause zwischen den Tastendücken haben wollen. Da braucht es dann noch ein drittes Monoflop.

#7674593
Lesenswert?

Jürgen R. schrieb:

Schade, dass es niemanden mit Erfahrungen mit µC und IR-Steuerung gibt.

µC und IR-Steuerung ist nun kein Geheimnis. Man müsste nur wissen, was dein Gerät für Kommandos haben möchte. Dann könnte man sich die ganze Bastelei mit der Originalfernbedienung sparen und braucht zusätzlich zum µC nur eine IR-LED und einen Transistor plus Hühnerfutter. Beispielsweise die IRremote-Library für die Arduinos deckt einiges ab.

#7683174
Lesenswert?

So, das hier ist das Ergebnis. Und es passt sogar in einen kleinen ATtiny13! Der IRMP hat leider nicht funktioniert, er erkannte sehr instabil das Protokoll A1TVBOX, obwohl die Daten auf dem Oszi nach dem Demodulator stabil stehen. Hmmm. Also was selber machen. Die Daten mit dem Logikanalysator aufzeichen (100kHz) und die Pulsbreiten in ganze Pulspakete umrechnen. Die Zahlenkolonne wird dann einfach per Output Compare Funktion wie eine normale PWM ausgegeben. Trägerfrequenz ist 38kHz bei 30% Tastverhältnis. In der praktischen Anwendung beim OP gibt es noch ein kleines Problem mit der Schaltsicherheit, aber das kriegen wir schon noch hin. In der .elf Datei sind die Fuses schon drin, praktisch Standard RC Ozillator mit 9,6MHz.

Angehängte Dateien:
Moderator Persönliche Seite #7683346
Lesenswert?

Falk B. schrieb:

Der IRMP hat leider nicht funktioniert, er erkannte sehr instabil das Protokoll A1TVBOX

Stimmen denn die Timings in irmpprotocols.h zur A1TVBOX? Ich habe damals viele Protokolle lediglich anhand exemplarischer Scans von Usern, die mir zugesandt wurden, erstellt.

Problematisch könnte es noch werden, wenn im IRMP viele zusätzliche Protokolle aktiviert werden, die dann aber nicht zur Nutzung kommen. Ideal wäre, wenn lediglich die handvoll Standardprotokolle und At1TVBOX aktiviert sind.

#7683468
Lesenswert?

Frank M. schrieb:

Stimmen denn die Timings in irmpprotocols.h zur A1TVBOX? Ich habe damals viele Protokolle lediglich anhand exemplarischer Scans von Usern, die mir zugesandt wurden, erstellt.

Problematisch könnte es noch werden, wenn im IRMP viele zusätzliche Protokolle aktiviert werden, die dann aber nicht zur Nutzung kommen. Ideal wäre, wenn lediglich die handvoll Standardprotokolle und At1TVBOX aktiviert sind.

Ich hatte dir dazu eine Nachricht geschrieben, aber leider keine Antwort bekommen. Ich habe alle Protokolle deaktiviert und immer nur eins aktiviert und getestet, kein Erfolg.

Moderator Persönliche Seite #7683554
Lesenswert?

Falk B. schrieb:

Ich hatte dir dazu eine Nachricht geschrieben, aber leider keine Antwort bekommen.

Komisch, die kam nicht an.

Ich habe alle Protokolle deaktiviert und immer nur eins aktiviert und getestet, kein Erfolg.

Ah, okay.

EDIT:

Ich sehe gerade, dass Du eine Excel-Tabelle zu den Timings angehängt hast. Die schaue ich mir mal an und erzeuge daraus ggfls. eine Scan-Datei, die ich dann mit IRMP analysieren kann.

Moderator Persönliche Seite #7683591
Lesenswert?

Frank M. schrieb:

Ich sehe gerade, dass Du eine Excel-Tabelle zu den Timings angehängt hast. Die schaue ich mir mal an und erzeuge daraus ggfls. eine Scan-Datei, die ich dann mit IRMP analysieren kann.

Ich habe Falks Excel-Datei in eine 20kHz IRMP-Scan-Datei konvertiert. Anschließend habe ich mir mit

1
php a.php | ./irmp-20kHz -a

die Analyse angeschaut, wobei a.php die Excel-Daten in IRMP-Daten konvertiert.

Ergebnis:

Das Protokoll ist zu A1TVBOX ähnlich, aber vom Timing her unterschiedlich. Von daher hats bei Falks Versuchen mal gepasst und mal wieder nicht, je nachdem, in welche Toleranzbereiche die gemessenen Werte fielen.

Test:

Nun könnte man das 61te Protokoll in IRMP mit diesen Timings anlegen, aber ich habe einfach mal die Timings für A1TVBOX in irmpprotocols angepasst, um ein schnelles Ergebnis zu erhalten:

1
#if 0
2
#define A1TVBOX_START_BIT_PULSE_TIME            300.0e-6                        // 300 usec pulse
3
#define A1TVBOX_START_BIT_PAUSE_TIME            340.0e-6                        // 340 usec pause
4
#define A1TVBOX_BIT_PULSE_TIME                  250.0e-6                        // 250 usec pulse
5
#define A1TVBOX_BIT_PAUSE_TIME                  150.0e-6                        // 150 usec pulse
6
#else
7
#define A1TVBOX_START_BIT_PULSE_TIME            366.0e-6                        // 366 usec pulse
8
#define A1TVBOX_START_BIT_PAUSE_TIME            255.0e-6                        // 255 usec pause
9
#define A1TVBOX_BIT_PULSE_TIME                  300.0e-6                        // 300 usec pulse
10
#define A1TVBOX_BIT_PAUSE_TIME                  600.0e-6                        // 600 usec pause
11
#endif

Dann spuckt der modifizierte IRMP folgende Werte aus:

1
----------------------------------------------------------------------
2
# Power
3
10111110111111101 p=32 (A1TVBOX), a=0x007d, c=0x00fd, f=0x00
4
----------------------------------------------------------------------
5
# Automatic
6
10111110111111011 p=32 (A1TVBOX), a=0x007d, c=0x00fb, f=0x00
7
----------------------------------------------------------------------
8
# Level+
9
10111110111111011 p=32 (A1TVBOX), a=0x007d, c=0x00fb, f=0x00
10
----------------------------------------------------------------------
11
# Level-
12
10111110111110111 p=32 (A1TVBOX), a=0x007d, c=0x00f7, f=0x00
13
----------------------------------------------------------------------
14
# Light
15
10111110111110101 p=32 (A1TVBOX), a=0x007d, c=0x00f5, f=0x00
16
----------------------------------------------------------------------
17
# Light-
18
10111110111110111 p=32 (A1TVBOX), a=0x007d, c=0x00f7, f=0x00
19
----------------------------------------------------------------------
20
# Light+
21
10111110111110111 p=32 (A1TVBOX), a=0x007d, c=0x00f7, f=0x00
22
----------------------------------------------------------------------
23
# Timer
24
10111110111101111 p=32 (A1TVBOX), a=0x007d, c=0x00ef, f=0x00
25
----------------------------------------------------------------------
26
# Karo
27
10111110111101011 p=32 (A1TVBOX), a=0x007d, c=0x00eb, f=0x00

Das sieht ganz gut aus, denn die ermittelte Adresse ist nun einheitlich 0x007d. Beim Kommando-Code sieht es nicht gut aus, weil einige Codes trotz unterschiedlicher Tasten identisch sind. Wahrscheinlich müsste man hier nochmal die Timings genauer festlegen, ich habe sie nur Pi-Mal-Daumen eingetragen.

Ich denke aber, dass es den Aufwand nicht lohnt. Falk hat ja schon eine funktionierende Lösung gezaubert :-)

Moderator Persönliche Seite #7683614
Lesenswert?

Frank M. schrieb:

Ich denke aber, dass es den Aufwand nicht lohnt.

Es hat mich jetzt doch noch gefuchst und in meinen Anpassungen den Fehler gefunden:

1
#if 0
2
#define A1TVBOX_START_BIT_PULSE_TIME            300.0e-6                        // 300 usec pulse
3
#define A1TVBOX_START_BIT_PAUSE_TIME            340.0e-6                        // 340 usec pause
4
#define A1TVBOX_BIT_PULSE_TIME                  250.0e-6                        // 250 usec pulse
5
#define A1TVBOX_BIT_PAUSE_TIME                  150.0e-6                        // 150 usec pulse
6
#else
7
#define A1TVBOX_START_BIT_PULSE_TIME            366.0e-6                        // 366 usec pulse
8
#define A1TVBOX_START_BIT_PAUSE_TIME            255.0e-6                        // 255 usec pause
9
#define A1TVBOX_BIT_PULSE_TIME                  300.0e-6                        // 300 usec pulse
10
#define A1TVBOX_BIT_PAUSE_TIME                  300.0e-6                        // 300 usec pause
11
#endif

Für A1TVBOX_BIT_PAUSE_TIME hatte ich versehentlich den doppelten Wert eingetragen. Damit sieht der Output von IRMP bzgl. Adresse und Kommando nun plausibel aus:

1
# Power
2
11000001011111110 p=32 (A1TVBOX), a=0x0082, c=0x00fe, f=0x00
3
----------------------------------------------------------------------
4
# Automatic
5
11000001011111101 p=32 (A1TVBOX), a=0x0082, c=0x00fd, f=0x00
6
----------------------------------------------------------------------
7
# Level+
8
11000001011111100 p=32 (A1TVBOX), a=0x0082, c=0x00fc, f=0x00
9
----------------------------------------------------------------------
10
# Level-
11
11000001011111011 p=32 (A1TVBOX), a=0x0082, c=0x00fb, f=0x00
12
----------------------------------------------------------------------
13
# Light
14
11000001011111010 p=32 (A1TVBOX), a=0x0082, c=0x00fa, f=0x00
15
----------------------------------------------------------------------
16
# Light-
17
11000001011111000 p=32 (A1TVBOX), a=0x0082, c=0x00f8, f=0x00
18
----------------------------------------------------------------------
19
# Light+
20
11000001011111001 p=32 (A1TVBOX), a=0x0082, c=0x00f9, f=0x00
21
----------------------------------------------------------------------
22
# Timer
23
11000001011110111 p=32 (A1TVBOX), a=0x0082, c=0x00f7, f=0x00
24
----------------------------------------------------------------------
25
# Karo
26
11000001011110101 p=32 (A1TVBOX), a=0x0082, c=0x00f5, f=0x00

Interessant wäre jetzt noch, was die Dunstabzugshaube mit dem Kommando 0x00f6 anstellen würde, denn dieser Code fehlt in Falks Tabelle ;-)

Moderator Persönliche Seite #7683632
Lesenswert?

Frank M. schrieb:

Interessant wäre jetzt noch, was die Dunstabzugshaube mit dem Kommando 0x00f6 anstellen würde

Ich habe mir die Originalfernbedienung im Internet mal angeschaut:

https://alle-fernbedienungen.de/de/Siemens/95762-originalfernbedienung-Siemens-12026292.html

Exakt zwischen den Tasten "Timer" (0x00F7) und "Karo" (0x00F5) gibt es auf dem Bild noch eine Taste mit einem Funksignal drauf.

@Falk: Was bewirkt diese Taste? Das Original kann wohl auch noch Bluetooth, allerdings gibt es für Bluetooth eigentlich ein anderes Symbol.

OP #7684004
Lesenswert?

Dann will ich mal das Projekt offenlegen:

Ich habe eine Siemens Ablufthaube LR27CBS20 gekauft. Ein stromsparendes, Controller gesteuertes Gerät, mit BLDC-Motor und Home Connect Vernetzung. Wenn das Kochfeld ebenfalls Home Connect beherrscht, kann man darüber beide Geräte koppeln und vom Kochfeld aus alles bedienen. Die Haube ist mit einem Sensor ausgestattet, der im Automatik-Betrieb die Drehzahl anpasst und wenn keine Abluft mehr erfasst wird, schaltet die Haube nach 10 Minuten Nachlauf (einstellbar) automatisch ab. Tolle Sache, einschalten, auf Automatik schalten und vergessen. Danach läuft alles vollautomatisch. Noch cleverer wäre gewesen, wenn der Hauben-Sensor dauerhaft eigeschaltet werden könnte und dann bei Abluftanfall die Haube einschalten und steuern würde.

Leider beherrscht mein etwas älteres Kochfeld noch kein Home Connect. Nachrüstung nicht möglich. Ein neues Kochfeld kostet im unteren vierstelligen Bereich.

Damit fällt die Bedienung über das Kochfeld weg. Zum Einschalten muss die beigelegte Fernbedienung verwendet werden. Erst Einschalten und dann auf Automatik schalten, weil die Automatik-Taste nicht einschaltet.

Eigentlich kein Problem. Allerdings vergesse ich oft das Einschalten und merke das erst, wenn die Bude schon ziemlich blau ist.

Daher mein Gedanke, eine Fernbedienung in das Kochfeld einzubauen, die beim Einschalten des Kochfeldes auch die Haube zuschaltet. Schlimmstenfalls schaltet die Haube nach 10 Minuten ab, wenn keine Abluft anfällt. Alternativ wird die Abluft gemanagt und dann abgeschaltet.

Falk war so freundlich und hat für mich diese kleine Fernbedienung auf einen ATtiny implementiert weil ich davon keine Ahnung habe.

Ein erster Test brachte ein eigenartiges Ergebnis. Ich hatte den Testaufbau 1,3 m unter dem IR-Empfänger auf dem Kochfeld stehen. Die IR-Sendediode zeigte axial nach oben, auf den Empfänger. Das absetzen des IR-Impulses war an der Kontroll-LED zu sehen. Leider erfolgte keine oder nur gelegentlich und teilweise eine Reaktion der Haube. Nachdem ich eher zufällig die an einem Kabel hängende IR-Diode flach auf das Kochfeld gelegt hatte, klappte auf einmal die komplette Steuerung. Falk hat ganze Arbeit geleistet!

Das ist so, als wenn man mit einer schwachen Fernbedienung nicht auf den Empfänger zielt, sondern seitlich aus dem Fenster und sich dadurch die Reichweite drastisch verbessert? Vielleicht gibt es ja hier einen Experten für IR-Sendedioden, der dieses Phänomen erklären kann. Natürlich gibt es auch Reflexionen. Die sollten aber doch nicht stärker sein, als ein direktes Anvisieren, das überhaupt nicht funktioniert? Da die kleine Fernbedienung noch unter das dunkelrote Glas des Kochfeldes muss, sollte schon eine gute Verbindung zustande kommen. Die originale FB hat kein Problem damit, axial durch die Glasplatte zu senden.

Anhang: IR-Empfängerplatine

Angehängte Dateien:
OP #7684020
Lesenswert?

Frank M. schrieb:

Exakt zwischen den Tasten "Timer" (0x00F7) und "Karo" (0x00F5) gibt es auf dem Bild noch eine Taste mit einem Funksignal drauf.

@Falk: Was bewirkt diese Taste? Das Original kann wohl auch noch Bluetooth, allerdings gibt es für Bluetooth eigentlich ein anderes Symbol.

Mit dieser Taste startet die Home Connect App Einrichtung. Aus meiner Sicht eine unausgegorene App, die mal Sinn macht und mal nicht.

Immerhin kann ich so mit dem Handy umständlich den Geschirrspüler noch aus dem Australien Urlaub starten oder dem Hacker eine Freude bereiten. Soweit ich das verstehe, richtet man über WLAN eine Verbindung zum Router ein oder alternativ über Bluetooth direkt eine Verbindung zum Handy.

Die Bluetooth-Verbindung steuert also nicht direk die Haube.

Angehängte Dateien:
OP #7684068
Lesenswert?

Stromaufnahme auswerten war mir bei einem Drehstromkochfeld zu aufwändig. Einfach die Einschalt-LED anzapfen genügt auch!

Kabel hochziehen wäre ebenfalls aufwändig. Dann bliebe noch die Frage "Wo anschließen" bei der undokumentierten Controllersteuerung der Haube. Da ist eine gesteuerte 2. Fernbedienung parallel zur originalen Fernbedienung schon der Naheliegendste Gedanke.

Alternativ könnte der Hersteller kreativer sein. Will er aber nicht.

#7684076
Lesenswert?

Moin,

Bei solchen Problemstellungen freu' ich mir doch ein Loch in den Bauch, dass mein Herd noch ganz normale, mechanische Drehschalter hat und meine Dunstabzugshaube 2 mechanische Schalter fuer Licht und Saug. Und dass ich das komplett ausentwickelt finde und in der Lage bin das alles koordiniert ein- und auszuschalten.

Gruss WK

#7684089
Lesenswert?

Jürgen R. schrieb:

Das ist so, als wenn man mit einer schwachen Fernbedienung nicht auf den Empfänger zielt, sondern seitlich aus dem Fenster und sich dadurch die Reichweite drastisch verbessert?

Oder so, als ob der Empfänger bei direktem Signal erstmal total übersteuert ist und bevor er sich ausreichend an den Pegel angepasst hat, den Anfang vom Datentelegramm bereits verpasst hat. Die Welt funktioniert nicht überall mit Black-Box. Manchmal muss man mit geeigneter Messtechnik gucken, wo das Problem liegt und nachbessern.

OP #7684098
Lesenswert?

Rainer W. schrieb:

Oder so, als ob der Empfänger bei direktem Signal erstmal total übersteuert ist und bevor er sich ausreichend an den Pegel angepasst hat, den Anfang vom Datentelegramm bereits verpasst hat. Die Welt funktioniert nicht überall mit Black-Box. Manchmal muss man mit geeigneter Messtechnik gucken, wo das Problem liegt und nachbessern.

Danke für den super Denkansatz! Ich weiß, das Problem sitzt immer vor dem PC!

Was tun, wenn es an der geeigneten Messtechnik fehlt? Welche wäre das konkret?

Vielleicht die Sendeleistung der Diode durch vergrößern des 63 Ohm Vorwiderstandes verringern? Wäre das einen Versuch wert?

#7684100
Lesenswert?

Jürgen R. schrieb:

Vielleicht die Sendeleistung der Diode durch vergrößern des 63 Ohm Vorwiderstandes verringern? Wäre das einen Versuch wert?

Kann man machen. Wenn der Empfänger WIRKLICH übersteuert, was ich mir nicht so recht vorstellen kann, dann kann das was werden. Versuch mal 220 Ohm, das ist Faktor 4 kleiner und macht gerade mal noch 15mA Pulsstrom.

OP #7684109
Lesenswert?

Dergute W. schrieb:

Moin, Bei solchen Problemstellungen freu' ich mir doch ein Loch in den Bauch...

Hast du grundsätzlich recht. Allerdings liegt die Stromaufnahme der neuen Geräte bei 10% von früher und der mögliche Kompfortgewinn ist auch nicht schlecht. Wenn die Hersteller zuende denken würden, wäre vieles besser, z.b. Heizungsgesetz usw. Es reicht halt immer nur für die rudimentären Funktionen.

OP #7684227
Lesenswert?

Weitere Versuche zur Fehlerfindung:

IR-LED vor iPhone 8 Cam: nichts zu sehen, obwohl die Haube schaltet Auch bei anderen FBs nichts zu sehen, wahrscheinlich zu guter IR-Filter?

IR-LED vor Canon S110 Fotoapparat: leichtes glimmen sichtbar, im Vergleich zu anderen FB wenig!

Breadboard-Netzteil 5V DC gegen Labornetzteil 5V DC ausgetauscht: keine Veränderung

IR-LED Vorwiderstand 220 Ohm: keine Veränderung IR-LED Vorwiderstand 30 Ohm: keine Veränderung IR-LED aus alter Fernbedienung entnommen: keine Veränderung

Mit gehen gerade die Ideen aus

#7686728
Lesenswert?

Dergute W. schrieb:

Bei solchen Problemstellungen freu' ich mir doch ein Loch in den Bauch, dass mein Herd noch ganz normale, mechanische Drehschalter hat und meine Dunstabzugshaube 2 mechanische Schalter fuer Licht und Saug. Und dass ich das komplett ausentwickelt finde und in der Lage bin das alles koordiniert ein- und auszuschalten.

Womöglich kannst du sogar die Dunstabzugshaube ganz ausgeschaltet lassen, wenn du nur Eier oder Kartoffeln kochst, wobei nur geruchsloser Wasserdampf entsteht und man einfach das Küchenfenster aufmachen kann?

OP #7689625
Lesenswert?

Abschlussbericht zum Pojekt:

Nach dem Einbau einer IR-Diode SFH4544 OSO mit 550@100mAmW/sr funktioniert die Fernsteuerung jetzt stabil und zuverlässig, auch durch die dunkelrote Glaskeramik des Kochfeldes. Die Leiterplatte wurde in das Kochfeld eingebaut und startet beim Einschalten des Kochfeldes auch die Ablufthaube. Die Haube regelt über ihren Sensor automatisch die Drehzahl und schaltet ab, wenn keine Abluft mehr anfällt.

Vor allem wird das Einschalten der Haube nicht mehr vergessen und entstehende Feuchtigkeit wird zuverlässig abgeführt. Das suchen der Fernbedienung entfällt ebenfalls.

Die originale Fernbedienung wird im täglichen Ablauf kaum noch benötigt, nur gelegentlich für Sonderaufgaben: (Licht dimmen, Fettfilter-Zähler zurücksetzen, Home Connect-Verbindung herstellen).

Zusätzlich kann man über einen ebenfalls verbauten Touch-Sensor-Taster am Kochfeld jetzt auch noch das Licht der Haube Ein- und Ausschalten.

Ich bin super happy mit dem Kompfort, der jetzt wirklich erst rund ist.

Danke an alle Helfer und besonders an "falk", der mir die Codes in einen ATtiny13 gezaubert hat.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren