[gelöst mit neuem Plugin!] 'Native' LIRC-Unterstützung (über .lircrc, nicht remote.conf)?

  • Hey, nicht dass das falsch rüber gekommen ist:
    Das VDR-(c)Remote-Konzept ist m.E. nicht schlecht - im Gegenteil! Auch die standardmässige LIRC-Anbindung tut's i.d.R. gut! Wahrscheinlich gab es die liblircclient noch gar nicht, als das in den VDR eingebaut wurde. Und für die reine VDR-Steuerung und etwas mehr reichts ja auch!...

    yaVDR 0.6.2; H61M/U3S3 / G530 / 4GB / GT 520 (passiv) / Cine S2 (Rev. V5.5) + DuoFlex S2 / 120GB SSD (System; SATA>USB) + 3TB SATA 6Gb/s; LCD-TV Toshiba 42VL863G; AVR Yamaha RX-S600...

  • Ein wenig Offtopic, aber nur mal so zur Problematik der Ebenenumschaltung und Tastenbelegung bei Universalfernbedienungen.


    Hier kann ich nur wärmstens die One For All Modelle empfehlen die einen JP1 Anschluss (einen 2x3 poligen Pfostenstecker im Batteriefach) besitzen.
    Über diesen und ein billig zu bastelndes Kabel für an den Parport (eine Diode, ein Widerstand, 6-adriges Kabel, Parportstecker, 6-pol Pfostenbuchse ist alles was es braucht) kann man die Fernbedienungen fast beliebig per PC mit freeware konfigurieren und sämtliche Tasten so belegen wie man möchte (und eben auch problemlos jede Taste in jeder Ebene belegen).
    Siehe auch http://www.hifi-remote.com/forums/index.php


    Ich für meinen Teil habe zwei One For All URC-7541 mit JP1s (irgendwo solls die auch ohne JP1 geben, also nachfragen vorm Kaufen) auf denen mehrere Geräte programmiert sind für die One For All nicht den kleinsten Zipfel Code bereithält.

    Server: Athlon II X2 250 - Asus M3N-H HDMI - 2x1GB RAM - 3TB HDDs -
    1 x Digital Devices Cine S2 V6 DVB-S2 (SD Sender im Highband funktionieren mit der Karte nach wie vor unter Linux nicht, unter Windows schon)
    3 x Nova Budget (die ich eigentlich durch die Cine S2 mit Erweiterungsmodul ersetzen wollte, leider aber für die SD Sender immer noch brauche)
    mit yavdr 0.4.0

  • habichthugo


    Eingebaut und läuft. :) Jetzt kann ich ja kreativ werden...


    Zitat

    Thema verfehlt, zu dilettantisch umgesetzt...?


    Auf keinen Fall, aber ist halt Grundlagenarbeit und Skins gibts ja auch keine für dein Plugin ;)
    Ich finde auch gut das ich meinen vdr jetzt parameterfrei kompilieren kann.


    Also danke für ein weiteres Stück Infrarote Entscheidungsfreiheit.


    mapovi

    2.6.29-gentoo-r5, vdr-1.7.9, xine-vdpau-284, vdr-xine 0.93 - 5050e, M3A78-EM, Postville, 2xTTS21600

    PearlHD text2skin

  • Mich hat grad ne Grippe umgefetzt, aber all zu viel tut sich hier ja so wie so nicht...


    Egalus
    Interresante Sache das. Bevor ich da tiefer reingehe: D.h. man hat den gesamten Code dieser FBs selbst in der Hand, auf Assembler-Ebene?


    mapovi
    Danke! Hab übrigens erst jetzt geschnallt, dass wir schon häufiger miteinander zu tun hatten...


    Zzam
    Auch interessant. Hattest Du das schon mal veröffentlicht? Ich hab nix dergleichen finden können. Allerdings finde ich, patchen sollte man prinzipiell vermeiden, wenn's irgendwie anders geht. Es sei denn, es bestehen in absehbarer Zeit Chancen, dass der Code in die (VDR-) Mainline integriert wird. Vielleicht können wir kls ja dazu überreden, das (via Aufrufoption schaltbar) dauerhaft einzubauen, wenn es hierfür genügend Interessenten gibt. Das scheint mir jedoch nicht so zu sein...

    yaVDR 0.6.2; H61M/U3S3 / G530 / 4GB / GT 520 (passiv) / Cine S2 (Rev. V5.5) + DuoFlex S2 / 120GB SSD (System; SATA>USB) + 3TB SATA 6Gb/s; LCD-TV Toshiba 42VL863G; AVR Yamaha RX-S600...

  • Hi habichthugo,


    deine Lösung scheint mir konsequent zu sein, mich hat das vom Konzept her auch schon immer gestört, dass der VDR im Zusammenhang mit Lirc ein eigenes Süppchen kocht. Für mich wäre das interessant, wenn ich jetzt Lirc Kommandos sowohl an den VDR als auch an beliebige andere Anwendungen schicken kann.
    Beispielsweise hat mein Fernseher einen seriellen Port, über den man ihn (mit gut dokumentierten Befehlssequenzen) fernsteuern kann. Eine Möglichkeit das zu nutzen wäre z.B. bei Drücken der Pausetaste gleichzeitig einen Befehl abzusetzen, der die Hintergrundbeleuchtung herunterregelt.
    Ist so etwas jetzt mit deinem Plugin machbar?


    --schmettow.

    VDR 1.4.0 [dvd, dvdselect, mp3ng,remote, control, graphTFT, taste, tvonscreen, streamdev-server] - FW f32623
    OpenSuse 10.0 Vanilla 2.6.15.4 - vdrconvert - Noad
    Dign HV5, Asus P4P800 deluxe, Celeron M (silent modded) - TT 1.5 - Budget-S - AVBoard 1.3 - 12" TFT
    Peripherals: Kameleon 8060 - Philips DFR-9000 - Sharp 26GA4E - Pinnacle Showcenter 1000g

  • Zitat

    Original von habichthugo
    Mich hat grad ne Grippe umgefetzt, aber all zu viel tut sich hier ja so wie so nicht...


    Egalus
    Interresante Sache das. Bevor ich da tiefer reingehe: D.h. man hat den gesamten Code dieser FBs selbst in der Hand, auf Assembler-Ebene?


    Wenn ich das richtig verstanden habe kannst Du Protokollupdates auch selbst in Assambler verfassen, um allerdings nur ein paar Tasten um/neu zu belegen ist das nicht nörig (ergo hab ichs auch nicht gemacht).
    Es gibt da 2 sehr brauchbare Tools,
    zum einen RemoteMaster, mit dem kann man den Protokolltyp bestimmen und dann selbst Codes für die einzelnen Tasten vergeben (gibt da übrigens auch Dummy Protokolle für z.B. delays für die Makroprogrammierung, da wird dann der Proz in der FB einfach mit beschäftigt ;), sehr praktisch um beim Einschalten vom Fernseher auch gleich den Kanal richtig einzuschalten, da brauchen die meisten Fernseher einige Sekunden bis sie das IR-Kommando zum Umschalten nach dem Einschalten annehmen). Alles zusammen ergibt dann ein Deviceupgrade und gegebenenfalls noch ein Protokollupdate (falls die Fernbedienung das verwendete Protokoll nicht von Haus aus kennt).


    und zum zweiten IR:
    Dort packt man dann die Devicecodes und Protokolle rein (es lebe copy und paste) und erstellt z.B. noch Macros und kann das ganze dann zur Fernbedienung schicken oder runterladen.


    Als netten Bonus hat man nie wieder Angst wenn ein kleines Kind die Fernbedienung in der Hand hat das es die Ebenenbelegung umprogrammieren könnte und einem die eingegebenen Einstellungen verlorengehen, man hat ja schliesslich ein Backup aufm PC ;)

    Server: Athlon II X2 250 - Asus M3N-H HDMI - 2x1GB RAM - 3TB HDDs -
    1 x Digital Devices Cine S2 V6 DVB-S2 (SD Sender im Highband funktionieren mit der Karte nach wie vor unter Linux nicht, unter Windows schon)
    3 x Nova Budget (die ich eigentlich durch die Cine S2 mit Erweiterungsmodul ersetzen wollte, leider aber für die SD Sender immer noch brauche)
    mit yavdr 0.4.0

  • schmettow
    Mein Plugin sorgt 'nur' dafür, dass sich der VDR an die LIRC-Logik im Zusammenhang mit dem '.lircrc-Format' hält. Damit ist das, was Du vorhast, sicher möglich, beispielsweise über (LIRCs) irexec, ircat 'gepiped' an ein passendes Script...'Nur' so was 'triviales' wie Dein Beispiel "Helligkeit Hintergrundbeleuchtung toggeln, wenn Pausentaste gedrückt wird" geht auch ohne mein Plugin! Das wird m.E. erst interessant, wenn man mit 'Modes' operieren muss...


    Egalus
    Danke für Deine Infos!

    yaVDR 0.6.2; H61M/U3S3 / G530 / 4GB / GT 520 (passiv) / Cine S2 (Rev. V5.5) + DuoFlex S2 / 120GB SSD (System; SATA>USB) + 3TB SATA 6Gb/s; LCD-TV Toshiba 42VL863G; AVR Yamaha RX-S600...

  • *push*


    Hi vdr-Gemeinde!


    Bin vor kurzem von mythtv auf vdr umgestiegen und dieses Forum hat mir dabei schon sehr viel geholfen.
    Gerne würde ich auch dieses plugin verwenden um meinen vdr mit der lircrc zu steuern und nicht mit der remote.conf.
    Leider kriege ich es nicht hin, das plugin zu kompilieren.


    Hier mal die Ausgabe nach make:


    http://rafb.net/p/0GeRea54.html


    System ist Debian Lenny. vdr 1.6 und alle plugins von e-tobi. Das ging ja alles quasi automatisch.


    Kann mir da jmd. weiterhelfen?


    Grüße, pm3000

  • ok, nachdem ich intelligenterweise auch mal liblircclient-dev installiert habe, sieht es schon erfolgreicher aus?:


    g++ -O2 -Wall -Woverloaded-virtual -c -DPLUGIN_NAME_I18N='"lircrc"' -I../../../include -I../../../../DVB/include lircrc.c
    lircrc.c: In member function ‘virtual bool cPluginLircrc::Initialize()’:
    lircrc.c:200: warning: deprecated conversion from string constant to ‘char*’
    lircrc.c:210: warning: deprecated conversion from string constant to ‘char*’


    Und wie kann ich das jetzt benutzen?


    Habe auch mal probiert ein Debian package zu bauen, bisher erfolglos. Da endet die Fahrt bei:


    /usr/lib/vdr-dev/patchlevel.sh subst
    make: /usr/lib/vdr-dev/patchlevel.sh: Kommando nicht gefunden
    make: *** [binary-arch] Fehler 127



    Nach googeln habe ich rausgefunden, dass es patchlevel.sh nicht mehr gibt, und man das plugin umschreiben müsste?

  • Also ich nutze das auch unter 1.6.0 und hatte dort keine derartigen Probleme.


    Wo ist denn genau dein Problem? Nach dem Kompelieren (sp? mir egal) hast du eine "libvdr-lircrc.so.1.6.0". Da gehst du dann nochmal mit Strip rüber und kopierst es dann ins VDR LIB Verzeichnis.


    Dann dafür sorgen das der VDR Aufruf um
    ---
    -P "lircrc /etc/lircrc"
    ---
    ergänst wird.


    Soweit ist es wie bei allen Plugins. Die Details (Pfade und wo du die VDR Parameter einträgst) hängen natürlich von deiner Distribution ab. Da sollte es aber Infos geben wie du Plugins von den Quellen baust und einbindest.



    Dann die lircrc anpassen. Dazu liegt dem Plugin ein Script bei welches aus der remotes.conf eine lircrc macht. Die kannst du als Basis nutzen.



    BTW: Das Plugin lohnt wirklich. Hier hat man viel mehr Möglichekiten als über die remotes.conf. Gerade wenn man ne FB mit vielen Tasten hat oder Doppelbelungen mag, ist es unverzichtbar.


    cu

  • hab doch noch ein kleines Problem mit dem plugin.
    Habe meine lircrc unter /home/vdr/.lircrc abgelegt.
    Auf die greift das Programm ja standardmässig zu, oder?
    Jedoch läuft mein vdr weiterhin über die remote.conf. Wenn ich die remote.conf lösche, will er wieder neu anlernen. In der README steht ja, dass das plugin den lircsupport von vdr unterdrücken würde.


    Wenn ich die .lircrc explizit mit angebe in der vdr-default datei, dann bekomme ich:


    /home/vdr/.lircrc: line 2: begin: command not found
    /home/vdr/.lircrc: line 3: prog: command not found
    /home/vdr/.lircrc: line 4: remote: command not found
    /home/vdr/.lircrc: line 5: button: command not found
    ...usw.


    Muss ich meinen vdr jetzt nochmal ohne lirc-support installieren/kompilieren?

  • Jetzt funktionierts. Cool.
    Hatte nur irgendwie eine Datei vergessen zu kopieren.
    Für andere Blödis wie mich noch ne kl. Anleitung:


    apt-get install vdr-devel liblircclient-dev


    Archiv entpacken.


    make


    dpkg-buildpackage -tc


    Die Dateien libvdr-lircrc.so und libvdr-lircrc.so.1.6.0-2 nach /usr/lib/vdr/plugins kopieren.


    /etc/init.d/vdr restart


    cat /var/log/syslog | grep lircrc


    loading plugin: /usr/lib/vdr/plugins/libvdr-lircrc.so.1.6.0
    Mar 21 14:44:33 vdr: [7654] initializing plugin: lircrc (0.0.2): Adds LIRC support by using '.lircrc'
    Mar 21 14:44:34 vdr: [7654] starting plugin: lircrc
    Mar 21 14:44:34 vdr: [7654] lircrc: background thread started for 'VDR' of 'h
    #010H5wýý
    Mar 21 14:44:38 vdr: [7654] lircrc: killing VDRs LIRC remote



    Danke habichthugo für dieses tolle plugin! Ich weiß es zu würdigen, und fände es richtig, es in vdr mit aufuznehmen.

  • Ich würde auch gerne dieses Plugin unter VDR 1.7.0 / Ubuntu 9.04 benützen. Nur da scheints ein Problem zu geben. Bei mir wird keine "libvdr-lircrc.so.1.7.0" erstellt! Lediglich eine lircrc.o!
    Wo liegt mein Fehler oder der Bug?


    make läuft sauber durch:


    EDIT: Ein "make all" hat geholfen und die libs erstellt. Funktioniert einwandfrei mit VDR 1.7.0.
    Danke für dieses Plugin!


    Gruß
    Fux

    Hardware: Asus M3N78-EM µATX GF 8300 | AMD Sempron 140 | Display VFD USB MDM166A | DVB-S2 TT-3600 USB | RAM 1 GB | WD20EARS 2 TB
    Software: yaVDR 0.5

    6 Mal editiert, zuletzt von Fux ()

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!