HOWTO - Infrarottransceiver für RaspPi im Selbstbau OHNE Löten

Begonnen von Marcy, 15 Mai 2014, 22:21:15

Vorheriges Thema - Nächstes Thema

Marcy

Hi Brockmann,

danke für Deinen Hinweis! Habe leider "irexec" nie ausprobiert, deswegen kann ich dazu nicht viel sagen. Aber im Endeffekt mach ich in der Beschreibung ja nichts Anderes, als über einen webCmd den Systembefehl "irsend" abzusetzen. Sollte also auch mit dem LIRC Modul ganz gut klappen.

Aber ich gebe Dir Recht, dass das zu Anfang recht lahm war (auch wenn ich kein "high speed ir firing" brauche). Deswegen habe ich mir mal das Coding der 00_LIRC.pm angeschaut und da den folgenden Kommentar gefunden:

"If you want a faster reaction to keypresses you have to change the defaultvalue of readytimeout from 5 seconds to e.g. 1 second in fhem.pl"

Nachdem ich das in der fhem.pl geändert hatte, ist das Ding gelaufen wie Schmitz' Katze.

Aber so oder so - ich fänds toll, wenn Du kurz beschreiben könntest, wie man irexec in fhem verwendet. Am Besten für Dummies wie mich. :) Dann könnt ich das noch in das HowTo als weitere Option einbauen.

Nochmal vielen Dank für Deinen Kommentar und viele Grüße,
Marcel

Brockmann

Zitat von: Marcy am 18 Juni 2014, 20:21:36
Aber im Endeffekt mach ich in der Beschreibung ja nichts Anderes, als über einen webCmd den Systembefehl "irsend" abzusetzen. Sollte also auch mit dem LIRC Modul ganz gut klappen.

irexec ist nicht fürs Senden zuständig, sondern fürs Empfangen. Man definiert in .lircrc, dass LIRC bei bestimmten IR-Codes bestimmte Befehle absetzen soll. Beispiel:
begin
  prog = irexec
  remote = LG_TV
  button = Power
  config = perl /opt/fhem/fhem.pl 7072 "trigger IR_Input TV_PowerIR"
end


Also wenn für die Remote LG_TV der IR-Code für die Taste Power erkannt wird, setzt irexec den Perl-Befehl "/opt/fhem..." ab. Remote und Button müssen zuvor in der .lircd definiert sein.
IR_Input habe ich als Dummy-Device in FHEM definiert, so dass ich auf diese Weise beliebige Events triggern kann. Ob und wie die verarbeitet werden, legt man dann auf der FHEM-Seite fest. Man könnte genauso direkte FHEM-Schaltbefehle verwenden, wenn das sinnvoll ist.

Zitat von: Marcy am 18 Juni 2014, 20:21:36
Aber ich gebe Dir Recht, dass das zu Anfang recht lahm war (auch wenn ich kein "high speed ir firing" brauche). Deswegen habe ich mir mal das Coding der 00_LIRC.pm angeschaut und da den folgenden Kommentar gefunden:
"If you want a faster reaction to keypresses you have to change the defaultvalue of readytimeout from 5 seconds to e.g. 1 second in fhem.pl"
Nachdem ich das in der fhem.pl geändert hatte, ist das Ding gelaufen wie Schmitz' Katze.
Das ist genau der Knackpunkt beim LIRC-Modul. Standardmäßig schaut das alle 5 Sekunden nach, ob LIRC einen neuen IR-Code empfangen hat. Das kann man runtersetzen, damit FHEM öfter nachschaut und dann entsprechend schneller reagiert. Die Frage ist halt, wie weit man das runtersetzen kann, ohne dass die ständige Kommunikation mit LIRC FHEM ausbremst. Bei der irexec-Variante kann man das LIRC-Modul komplett weglassen und bekommt Meldung über IR-Codes in Echtzeit direkt vom LIRC-Demon reingereicht. Im Endeffekt hat man diesselbe Funktionalität, aber minimale Verzögerung und weniger Last in FHEM. Der Preis dafür ist, dass man die .lircrc einrichten und pflegen muss, aber das macht man ja in der Regel nur am Anfang einmal richtig und dann muss man es nur noch selten ändern.

marko67

Nur mal aus lauter Neugierde gefragt.... warum werden bei dieser Schaltung 2 IR Led verwendet?

VG Marko

Marcy

Hi Marko,

Antwort bereits per PM, trotzdem nochmal kurz: Geht auch mit einer. Aber mit zweien, größerer Abstrahlwinkel bei hoher Leistung.

Gruss,
Marcel

igami

Hi Zusammen,

nun bin ich am schwanken, ob ich mir das nachbaue oder auf das Harmony Hub Modul warte.
Eine Frage zu dem hier: Hat es wer ausprobiert noch mehr sende IR LED zu benutzen? Ich denke daran, es wie bei der Harmony zu machen, da sind Kabel mit der LED dran an die Geräte geklebt. Sind bei mir 6 Stück. Optimal wäre dann natürlich noch, wenn ich die auf verschiedene Pins legen könnte, und damit dann nur die Codes an die vorgesehenen Devices schicken, nicht aber an alle.

Grüße
Igami
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

simonberry

Hallo Marcel

ich wollte mich auch bei Dir für das coole HowTo bedanken. Ich war schon ein wenig verzweifelt, weil ich es nicht wirklich hinbekommen habe. Gerade die zip Datei hat es eigentlich erst ermöglicht. Jetzt kann ich meine FS20 IRU endlich ablösen die ab und zu gezickt hat.

Viele Grüße

Saimen
NUC5i3RYK#DBLOG; MYSQL; LIRC; MPD; HM-CFG-HM-USB-2: HM-divers; MQTT2; Signalduino; Shelly; Sonoff; dash_dhcp; FS20; IT; FroniusWR; Somfy RTS; NFS-Server
Rpi B#: nfsmount; ser2net CUL868; CUL433; GPIO4:DS18B20; WEMOS-D1-MINI#JVC-via-IR;

kennymc.c

Im Prinzip reichen für den Empfänger doch auch einfach 3 Verbindungskabel und der IR-Receiver? So wie hier beschrieben: https://learn.adafruit.com/using-an-ir-remote-with-a-raspberry-pi-media-center/hardware. Wenn ich das richtig erkenne, dann kann man die Verbindungskabel ja einfach in die Pins des Receivers stecken ohne zu löten.

Marcy

hi kennymc.c

viele Wege führen nach Rom. Klar kannst Du auch direkt draufstecken, wenn Du nur empfangen willst. wie aus dem howto ersichtlich, sind die Empfängerschaltung und Senderschaltung ja auch zwei verschiedene Schaltkreise, die durchaus auch getrennt voneinander funktionieren.

Sinn und Zweck des Threads hier war ja der Aufbau eines Transceivers, also eines TRANSmitters und eines reCEIVERs. Für Ersteres ist die Schaltung etwas aufwändiger, daher die Nutzung eines Breadboards.

Wie gesagt - wenn Dir das Empfangen reicht, kannst Du auf den anderen Rest verzichten.

Gruss,
Marcel

FHEMAN

NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

kennymc.c

Hab mir die lircrc jetzt über irexec konfiguriert aber trotzdem dauert es immer noch ca. 3 Sekunden bis die Autoren schalten. Es scheint irgendwie am Telnet Befehl selbst zu liegen, da es auch beim direkten Eingeben in die Kommandozeile so lange dauert. Gebe ich den Befehl aber direkt in Fhem ein, gibt es keine Verzögerung. Ist das normal oder kann man das noch optimieren?

Brockmann

Zitat von: kennymc.c am 17 Januar 2015, 18:26:00
Gebe ich den Befehl aber direkt in Fhem ein, gibt es keine Verzögerung. Ist das normal oder kann man das noch optimieren?
Hast Du mal versucht, per http-Request mit wget o. ä. zu schalten?

kennymc.c

#41
Mit wget geht es ohne Verzögerung, allerdings nur ohne SSL. Mit SSL dauert es wieder genauso lange wie mit telnet.
Jetzt habe ich einen eigenen Webzugriff ohne SSL erstellt. Damit bekomme ich aber die Meldung "Lesefehler (Die Verbindung wurde vom Kommunikationspartner zurückgesetzt) beim Vorspann (header)." Über den Browser kann ich ganz normal darauf zugreifen. Wenn ich SSL bei meinem normalen Webzugriff raus nehme, dann klapp komischerweise alles wie es soll. Die Attribute unterscheiden sich eigentlich nicht.

EDIT: Hab jetzt das gleich mit curl versucht und da geht es ohne Verzögerung auch mit SSL (zumindest mit -k als Parameter).

aplatac

Hallo,

ich hatte auch Probleme mit der Geschwindkeit und möchte kurz zusammenfassen, was ich geändert habe um einen sehr schnellen IR-Empfang zu bekommen.

Ganz wichtig ist, das der TSOP min. einen Kondensator braucht! Nach dem Datenblatt habe ich einen 4,7uF zw. GND und V+ gebaut, außerdem einen 100 Ohm Widerstand
in Reihe zu V+. Wenn man das nicht macht, kommt es zu Spannungseinbrüchen beim Empfang, die schnelles (2x pro Sekunde oder so) erkennen der Tasten verhindern.
Zusätzlich habe ich direkt am TSOP einen keinen 100nF angelötet, ob das was bringt weiß ich nicht, wurde teilweise empfohlen, kann man vermutlich auch lassen.

Nach dieser Änderung macht es Sinn zu prüfen, ob sich an der Erkennung der Fernbedienung etwas geändert hat, meine wurde plötzlich als RC6 erkennt, vorher Rohdaten.

Wie schon von anderen beschrieben ist auch das senden mit irexec als direkter http-Befehl wichtig. Ist bei mir viel schneller als Telnet und Polling vom LIRC-Modul.

Das Verwenden von irexec hat noch den Vorteil, dass ich damit direkte Befehle für das Mediaportal-Modul eingebe, mir also jede Verarbeitung in FHEM spare, was evtl.
auch etwas bring an Tempo. Bei mir dient das Konstruckt aus FB, TSOP, RasPi, FHEM, Mediaportal.pl und WiFiRemote (Plugin für Mediaportal) als IR-Extender und ersetzt ein IR/Funk/IR Extender-Paar und ist schneller als dieses! Man merk das beim schnell durchklicken von Listen usw.

kennymc.c

#43
Hab leider seit ein paar Tagen Probleme beim Starten und Stoppen von Lirc. Die irexec Befehle werden nicht mehr ausgeführt. Ich bekomme immer folgende Fehlermeldung beim Restart:


[....] Stopping execution daemon: irexec: failed!
[....] Stopping remote control daemon(s): LIRC: failed!
[....] Loading LIRC modules:.
[....] Unable to load LIRC kernel modules. Verify your ... failed!
[....] selected kernel modules in /etc/lirc/hardware.conf ... failed!
[....] Starting execution daemon: irexec: failed!


Die hardware.conf und auch alle anderen Dateien habe ich nicht verändert, zuvor hat es damit auch noch funktioniert.

EDIT: Hab Lirc jetzt auch nochmal komplett deinstalliert aber selbst danach hab ich am Ende der Installation wieder diese Fehlermeldungen.

ipsch1

Hey Freunde!

Ich habe das Tutorial bis zu dem Punkt, an dem es an das Testen des Empfängers geht, erfolgreich umgesetzt.

Nach dem Befehl "mode2 -d /dev/lirc0" empfängt er allerdings durchgehend ein Signal ohne, dass ich eine Fernbedienung davor halte.
Er schreibt mir also durchgehend Pulse - Space - Pulse - Space usw...

Ich benutze diesen Empfänger: http://www.amazon.de/gp/product/B00OLI93IC?psc=1&redirect=true&ref_=oh_aui_detailpage_o04_s00

Jemand ne Ahnung, was da schiefgehen könnte?  :-\