MiniIRCul - Infrarot Sender/Empfänger als CUL über WLAN (ESP8266)

Begonnen von viegener, 21 Februar 2016, 15:46:11

Vorheriges Thema - Nächstes Thema

klausw

Sind die Modifikationen an der cilfw eigentlich aufwändig um IR zu aktivieren?
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Beta-User

Zitat von: klausw am 03 Juni 2016, 16:17:44
Sind die Modifikationen an der cilfw eigentlich aufwändig um IR zu aktivieren?
Konkret für die culfw kann ich es nicht sagen, soweit das aber zu überblicken ist, gibt es für die IR-Sachen  in der Regel bei praktisch allen Varianten eine lib, die eingebunden sein muß. Die macht dann das (De-)coding und ist letztlich dafür verantwortlich, dem Hauptprogramm zu melden, welches Protokoll und welcher Befehl erkannt wird bzw. zu senden ist. Dummerweise gibt es für die Aufrufe dieser libs immer wieder unterschiedliche Befehle...

Sehr viele ausführliche Informationen dazu enthält insbesondere die IRlib der Arduino-Welt, die eigentlich auch hier verwendbar sein sollte. Die hat nur (noch) zwei Nachteile: Sie erkennt viele "neuere" Protokolle schlecht (z.B. konnte sie in der Standardform r_knipp's und meinen Yamaha nicht befriedigend dekodieren, NEC32) und ist zudem sehr monolitisch aufgebaut. Mit monolitisch meine ich, dass immer alle Protokolle aktiviert sind, was sehr viel Speicher kostet, obwohl man davon effektiv in der Regel nicht alles braucht. (Kann man zwar löschen, ist aber Aufwand und man weiß halt nie...)
Deutlich besser in dieser Hinsicht ist irmp (http://www.mikrocontroller.net/svnbrowser/irmp/irmp-main-avr.c?view=markup), deren erklärtes Ziel es ist, möglichst viele IR-Codes erkennen zu können. Bei der schaltet man ein, was man an Protokollen braucht. Scheint gut gepflegt zu sein (wie IRlib eigentlich auch). Allerdings scheint das noch nicht in die Arduino-Welt portiert zu sein (und nach den Ankündigungen des Entwicklers ist es auch sehr speicherintensiv).

Wenn Ihr wissen wollt, ob die IRlib ausreicht, können die lirc.conf-Beschreibungen eurer Fernbedienungen eventuell Hinweise geben; werden RC5 oder 6 verwendet, solltet Ihr mit der og. IRlib hinkommen.

Ansonsten wäre es toll, wenn sich jemand erbarmt, irmp für Arduino zu portieren; dann bekäme ich endlich auch meinen Beamer in den Griff...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

rippi46

Hallo,

@viegener  kaum macht man es richtig, funktioniert es.
Habe jetzt ein arduino pro mini 3,3V genommen und mit einem esp-12e verbunden.

Gruß rippi
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

viegener

Zitat von: klausw am 03 Juni 2016, 16:17:44
Sind die Modifikationen an der cilfw eigentlich aufwändig um IR zu aktivieren?

Eigentlich sind es sehr wenige Änderungen.
Im groben sind es defines in den board.h-Dateien für IR Receive und IR Send, sowie in den Headern der clib (beginnend mit ir...) noch aktiviert werden welche Protokolle gewünscht sind, der normale Standard ist relativ eingeschränkt und erkennt nur sehr wenige IR-Codes

ABER: Ich hatte Schwierigkeiten, das das Einschalten der IR-Funktionen das timing verändert und damit andere Teile der cul nicht mehr stabil funktionierten. Ursprünglich wollte ich nämlich über das CUL-routing-Protokoll von Nachrichten arbeiten, das hat aber nicht stabil funktioniert. Damit war die ESP-Lösung die eleganteste für die EInbindung remote an FHEM.


Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

rippi46

Hallo viegener,

muß man beim Aufzeichnen bzw. beim Senden noch irgend etwas beachten.
Ich habe das Problem, dass der CUL zwar was aufzeichnet, beim Senden aber das entsprechende Gerät nicht reagiert.

Gesendet wird etwas.(Habe es mit dem Handy überprüft)

Bei meinem Samsung Fernseher funktioniert es (zumindest mit dem Ein- und Ausschalten).
Aber bei meinem Küchenradio funktioniert es nicht.

Worin liegt der Unterschied zwischen irReceive ON und ON_NR?

Gruß rippi
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

viegener

Zitat von: rippi46 am 05 Juni 2016, 13:30:48
Hallo viegener,

muß man beim Aufzeichnen bzw. beim Senden noch irgend etwas beachten.
Ich habe das Problem, dass der CUL zwar was aufzeichnet, beim Senden aber das entsprechende Gerät nicht reagiert.

Gesendet wird etwas.(Habe es mit dem Handy überprüft)

Bei meinem Samsung Fernseher funktioniert es (zumindest mit dem Ein- und Ausschalten).
Aber bei meinem Küchenradio funktioniert es nicht.

Worin liegt der Unterschied zwischen irReceive ON und ON_NR?

Gruß rippi


Nein eigentlich muss beim Senden nichts besonders beachtet werden, wenn das Senden nicht funktioniert fallen mir folgende probleme ein
a) Leistung IR-Led zu niedrig? -> näher ran
b) IR-LED hat falsche Wellenlänge? -> Typ überprüfen/wechseln
c) Code ist inkorrekt aufgezeichnet. Anderen Befehl ausprobieren / Alternativ habe ich gute Erfahrungen bei störrischen Geräten gemacht, wenn cih den Code mit einer lernfähigen FB aufgezeichnet habe und wenn der von dort funktioniert den code von der lernfähigen FB wieder aufzuzeichnen. Wenn die lernfähige FB nicht funktioniert, dann gibt es vielleicht ein grundsätzlicheres Problem mit den Codes?

Auf CUL Ebene ist das eigentlich der Unterschied ob auch beim Empfang Wiederholungen ausgefiltert werden (steht auch so in der commandref). Für Dein Problem kannst Du temporär auf ON schalten vielleicht funktioniert das Küchenradio dann?

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

klausw

Zitat von: viegener am 03 Juni 2016, 23:29:33
Eigentlich sind es sehr wenige Änderungen.
Im groben sind es defines in den board.h-Dateien für IR Receive und IR Send, sowie in den Headern der clib (beginnend mit ir...) noch aktiviert werden welche Protokolle gewünscht sind, der normale Standard ist relativ eingeschränkt und erkennt nur sehr wenige IR-Codes

ABER: Ich hatte Schwierigkeiten, das das Einschalten der IR-Funktionen das timing verändert und damit andere Teile der cul nicht mehr stabil funktionierten. Ursprünglich wollte ich nämlich über das CUL-routing-Protokoll von Nachrichten arbeiten, das hat aber nicht stabil funktioniert. Damit war die ESP-Lösung die eleganteste für die EInbindung remote an FHEM.
Danke für die.
Das "aber" hatte ich befürchtet ;)

mir geht es darum, die IR Funktionalität auch mit neueren culfw Versionen nutzen zu können, da ich natürlich auch Funkkomponenten darüber betreiben möchte und es doch ab und zu Updates gibt ;)
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

rippi46

Hallo viegener,

habe jetzt wirklich alles probiert, aber leider ohne Erfolg. Ich kann das Küchenradio einfach nicht mit dem CUL_IR bedienen.

Habe eine lernfähige Fernbedienung angelernt, und damit das Küchenradio bedient (funktioniert einwandfrei).
Anschließend habe ich mit der angelernten Fernbedienung den CUL anlernen lassen. Dabei habe ich die gleichen Codes wie mit der originalen Fernbedienung.

Auch habe ich schon den Empfänger als auch den Sender getauscht. Das Ergebnis bleibt immer das gleiche ---> Küchenradio reagiert nicht.
Wenn ich dann z.B. die Signale der Fernbedienung vom TV aufzeichne, kann ich diesen dann mit fhem bedienen.

Wollte dann die Sourcen compilieren um vielleicht noch mehr Protokolle zu aktivieren. Leider bekomme ich ständig eine Fehlermeldung:
(abgesehen davon, dass ich noch nichts geändert habe)

root@vdr-kiste:/home/vdr/Downloads/miniIrCul# make program
make: *** Keine Regel vorhanden, um das Target »miniIrCul.hex«,
  benötigt von »program«, zu erstellen.  Schluss.


bei make gccversion bekomme ich das:
root@vdr-kiste:/home/vdr/Downloads/miniIrCul# make gccversion
avr-gcc (GCC) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Hast du vielleicht noch eine Idee oder ein Howto.

Gruß rippi

FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

viegener

Hallo rippi,
ich bin nicht sicher, ob ich Dir ein tutorial geben kann, da ich das bei mir unter Windows mache und ich die dafür notwenidgen Werkzeuge schon recht lange betreibe.

Generell müsste der makefile in miniIrCul funktionieren. Versuch doch erstmal ein
make clean
und dann ein einfacher make ohne Parameter, damit Du schauen kannst ob das Erzeugen des hex files geht.

Es kann natürlich sein, dass die Ir-Codes ganz Deines Küchenradios ganz exotisch sind, aber meines Wissens nach habe ich fast alle unterstützen Codes bereits aktiviert. Allerdings wenn nichts erkannt wird, ist das eigentlich die einzige Erklärung.

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

arokh12

Hallo,

ich habe heute durch Zufall diesen Thread entdeckt. Da ich meine Rolladen schon länger in mein FHEM System einpflegen wollte und die einzige schnittstelle der rolladensteuerung per ir funktioniert, war ich von der Idee sofort angetan.

Nach ein weg Recherche welche Komponenten ich benötige, suchte ich ein paar passende. Beim Stöbern nach den Bauteilen, fand ich dieses Set:
http://www.ebay.de/itm/38kHz-IR-Fernbedienung-Empfaener-und-Diode-17-Tasten-Keys-Arduino-/221800152290

Dort ist ja eine IR Sendediode anbei, so dass ich dies ja funktionieren sollte. Bei genauerem hinschauen stellte ich dann fest, dass die Diode 2 Anschlussbeinchen besitzt, und auf der fritzing Zeichnung werden 3 Adern an der Led angeschlossen.

Meine Frage ist jetzt, kann ich diese LED trotzdem verwenden, und wenn ja, wie verdrahte ich das richtig?

Vielen Dank im voraus

arokh12

viegener

Der Empfänger sollte gehen, die Sendediode kann man vermutlich auch verwenden. Allerdings ist ohne Angaben zur IR-Diode etwas schwierig dazu etwas zu sagen. Wichtig wäre zu wissen, welche Spannung und Strom die LED verträgt. Dann kann man z.B. über einen Vorwiderstand dafür sorgen, dass die Diode das durchhält. Da aber der Arduinoport auch keine sehr hohen Ströme liefern kann, wäre es vielleicht notwendig eine Transistorschaltung davorzusetzen. Ich vermute aus Deiner Frage aber, dass das jetzt Dir vieloeicht nicht weiterhilft.

Also wäre mein Vorschlag entweder eine fertige IR-Diodenschaltung wie die von mir oben angegebene 4-fach-Diode zu verwenden oder eine IR-Diodenschaltung aus dem Netz zu verwenden mit einer dazu passenden IR-Diode bei der die Daten bekannt sind?

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Per

Zitat von: rippi46 am 09 Juni 2016, 14:01:44habe jetzt wirklich alles probiert, aber leider ohne Erfolg. Ich kann das Küchenradio einfach nicht mit dem CUL_IR bedienen.
Dumme Idee: mal den Code vom IRCul auf die programmierbare FB spielen und damit testen. Falls das geht, ist der Code richtig und "nur" die "Farbe" oder Leistung des Cul falsch.

Ich hatte nen Fernseher (Robotron), dort hatten Tasten, welche ein zweites Mal gedrückt wurden, einen anderen Code, als wenn sie das erste mal gedrückt wurden (1a 2a 1a, aber 1a 1b 1a 2a 1a). Daran ist jede (!) programmierbare gescheitert. Aber das ist ja hier nicht der Fall.

viegener

Zitat von: rippi46 am 05 Juni 2016, 13:30:48
Worin liegt der Unterschied zwischen irReceive ON und ON_NR?

Du kannst auch mal mit dieser Einstellung experimentieren (also beides ausprobieren). Ausserdem habe ich die Erfahrung gemacht, dass manche Funktionen schwierig anzulernen sind und man verschiedene Arten: Umschaltfunktionen (z.B. Ein/Aus) und kontinuierliche Funktionen (Lauter/Leiser) und Einzelfunktionen (z.B. Sender 1 oder Aux) ausprobieren sollte.

Ansonsten ist der Tipp von per natürlich auch eine gute Idee.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

arokh12

Hallo,

ich habe am Wochenende auch meine Materialien für den miniIRCul erhalten. Heute habe ich mich dann an das programmieren gesetzt. Das Programmieren des ESP8266 ging problemlos und kann auch von meinem Netzwerk mittels Telnet auf den zugreifen.

Das Programmieren des Arduino Pro Mini mit der Culfw und den angepassten Daten aus der Zip Datei ging ohne Probleme.

Beim einrichten in FHEM musste ich feststellen, dass der Status des CULs auf Opened und der des CUL_ir auf initalized steht. Ein Neustart der Bridge, des Arduinos und des Raspberrys brachten keinen Erfolg.
Als Hardware besitze ich einen Pro Mini 3,3V 8MHZ und eine ESP8266-E01 Bridge.

Kann mir einer sagen, wo vielleicht das Problem liegt?

Vielen Dank im vorraus

arokh12


viegener

Kannst Du den miniIrCul denn per Ping erreichen (von Deinem FHEM-Server)?
Wenn Ja, kannst Du per telnet auf den miniIrCul kommen?
Wenn das beides geht, mach doch mal ein list vom Device und hänge es hier an.


Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können