[solved] TV mit USB-CEC Adapter einschalten - aber nur bei manuellem Start

  • hallo,


    damit mein vdr auch gleich via HDMI-CEC meinen fernseher einschaltet, habe ich mir einen usb-cec adapter von pulse eight gekauft.
    ich kann jetzt den fernseher mit "echo 'on 0' | cec-client -s /dev/ttyACM0" einschalten.


    meine frage:
    wo muss ich das kommando einbauen, damit es zum einen yavdr konform ist und zum anderen nur ausgeführt wird, wenn der vdr manuell eingeschaltet wurde.
    der tv soll ja aus bleiben, wenn der vdr nachts hochfährt, weil er was aufnehmen soll.


    ich habe yavdr 0.5 im einsatz.

    Board: ASUS AT5IONT-I, 4 GB Ram
    DVB Karte: Tevii S480
    40 GB ssd als boot/systemplatte (2,5" Wechelrahmen, um auf einer anderen Platte ein Testsystem zu installieren)
    3x2TB hdd für /media
    Medion X10 Fernbedienung
    yaVDR 0.5
    Samsung UE46D5700

    Einmal editiert, zuletzt von duc ()

  • Entweder du hängst dich ans yaVDR Upstartsystem ran. Dazu hat seahawk1986 hier schon mal was geschrieben: yaUsbIR V3 LIRC USB IR Empfänger/Sender/Einschalter


    Oder du installierst dir das uactivity Plugin: http://projects.vdr-developer.…lg-uactivity?jump=welcome
    (Wobei ich nicht weiß ob der VDR für den Suspend nun gestoppt wird, das wäre hier Vorraussetzung)


    cu

  • das mit dem upstart system hab ich mir schon gedacht, aber wie?
    dafür weiß ich zu wenig, wie es funktioniert.

    Board: ASUS AT5IONT-I, 4 GB Ram
    DVB Karte: Tevii S480
    40 GB ssd als boot/systemplatte (2,5" Wechelrahmen, um auf einer anderen Platte ein Testsystem zu installieren)
    3x2TB hdd für /media
    Medion X10 Fernbedienung
    yaVDR 0.5
    Samsung UE46D5700

  • Das uactivity Plugin ist halt wesendlich einfacher, sofern du es als einfach betrachtest ein Plugin zu instalieren. Und der Vorteil ist man muss keine Änderung am System vornehmen, es ist nur eine Konfigdatei im Pluginkonfigordner zu bearbeiten.


    In die Upstartsache muss man sich halt erstmal reinarbeiten (da musst du dann einfach durch und einfach mal anfangen), aber die wäre halt DER yaVDR Weg. Das wäre was für Leute die es "richtig" machen wollen, richtig in dem Sinne das man halt generell die yaVDR Methode nutzt wenn man yaVDR nutzt.



    Ich empfehle uactivity weils einfacher ist da zum Ziel zu kommen. Es sei denn seahawk1986 sagt dir genau wo du da deine Befehle reinschreiben muss, aber da ändert sich ja auch gerne mal was.


    cu

  • Moin!


    Sieh dir einfach mal /etc/init/vdr-frontend.conf an, das wertet aus, ob der vdr manuell oder wegen eines Timers gestartet wurde. Entsprechend wird der ATTA-Befehl an softhddevice gesendet. Das ist die Stelle, wo du eingreifen möchtest.


    Lars.

  • mit dem uactivity plugin hab ichs eben versucht, ich kriegs aber nicht kompiliert. passt was mit den verzeichnissen nicht.
    in welchem verzeichnis sollte man sein, wenn man "git clone git://projects.vdr-developer.org/vdr-plugin-uactivity.git" aufruft?
    ich hatte es im vdr source verzeichnis (/usr/local/src/vdr-1.2.27) unter PLUGINS/src abgelegt und nach uactivity umbenannt.


    Code
    root@VDR:/usr/local/src/vdr-1.7.27/PLUGINS/src/uactivity# make -f Makefile.1.7.x install
    g++  -c -DPLUGIN_NAME_I18N='"uactivity"' -DUACTIVITY_COMMAND='"vdr-uactivity -r %1$s -o %2$s -v %3$s -C %4$s -%6$s"'  -o uactivity.o uactivity.c
    uactivity.c:11:24: schwerwiegender Fehler: vdr/plugin.h: Datei oder Verzeichnis nicht gefunden
    Kompilierung beendet.
    make: *** [uactivity.o] Fehler 1

    Board: ASUS AT5IONT-I, 4 GB Ram
    DVB Karte: Tevii S480
    40 GB ssd als boot/systemplatte (2,5" Wechelrahmen, um auf einer anderen Platte ein Testsystem zu installieren)
    3x2TB hdd für /media
    Medion X10 Fernbedienung
    yaVDR 0.5
    Samsung UE46D5700

  • Das neue Makefile funktioniert nur mit neueren VDRs.


    Am einfachsten ist es die vdr quellen per "apt-get source vdr" zu holen, den pluginquellcode dort drin auszupacken und im Pluginverzeichnis "make -f Makefile.1.6" zu machen. Dann findet sich das Pulgin unter "./PLUGINS/lib".


    Ich könnte heute später am Abend auch mal nen Debian Quellpacket (das ist dann sauberer und einfacher) machen wenn du es testen magst (ich hab ekeine Umgebung für diese Art VDR Packete).


    cu

  • genau so bin ich zu den sourcen von vdr gekommen, mit apt-get source vdr. 1.7.27 ist doch relativ neu. ich glaube nicht, dass es mit dem Makefile.1.6 geht. hab ja 1.7.x als vdr version.
    aber wenn du ein paket basteln magst, ich werds gerne ausprobieren.


    [edit]
    ok, mit dem Makefile.1.6 lässt sich das plugin tatsächlich kompilieren. das so file habe ich in libvdr-uactivity.so.1.7.27 umbenannt und nach /usr/lib/vdr/plugins kopiert.
    aus dem verzeichnis script habe ich das verzeichnis uactivity mit seinen unterverzeichnissen nach /var/lib/vdr/plugins kopiert.


    schon mal ein stück weiter...
    [/edit]

    Board: ASUS AT5IONT-I, 4 GB Ram
    DVB Karte: Tevii S480
    40 GB ssd als boot/systemplatte (2,5" Wechelrahmen, um auf einer anderen Platte ein Testsystem zu installieren)
    3x2TB hdd für /media
    Medion X10 Fernbedienung
    yaVDR 0.5
    Samsung UE46D5700

    Einmal editiert, zuletzt von duc ()

  • Du musst dir halt genau überlegen, worauf du reagieren willst - je nach Hardware-Konstellation und gewünschtem Verhalten kann man da sehr kreativ werden (z.B. durch den yaUsbIr V3 mit angehängter Flip-Flop-Schaltung oder einen eigenen µC/Empfänger speichern, ob der VDR durch einen Fernbedienungsbefehl/Powerbutton angeschaltet wurde und das als zuverlässiges Kriterium abfragen - ermöglicht auch ein WOL-Event zu unterscheiden) oder einfach nur zu schauen gibt es einen Timer oder einen acpiwakeup-Zeitpunkt ohne Timer in den nächsten Minuten...


    Zum einfachen Einschalten des TVs wenn das Frontend-Skript annimmt, dass der VDR nicht für einen Timer/acpiwakeup gestartet wurde reicht vermutlich sowas (Einrückungen mit Leerzeichen beachten!) wie hier in Zeile 3 gezeigt aus:

    Code
    # check if vdr was started because of a timer or an acpi_wakeup event, if not attach frontend
        if settings.manualstart == True and settings.acpi_wakeup != True and settings.conf['start_always_detached'] == '0':
            subprocess.call("echo 'on 0' | cec-client -s /dev/ttyACM0", shell=True, env=settings.env)
            resume(frontend.status())
        else:

    https://github.com/yavdr/yavdr…ddevice-02-script.py#L354


    Alternativ ein Upstart-Job, der ein "start on started vdr-frontend" als Startbedingung hat und z.B. den Status des Softhddevice-Frontends abfragt...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • genau so bin ich zu den sourcen von vdr gekommen, mit apt-get source vdr. 1.7.27 ist doch relativ neu. ich glaube nicht, dass es mit dem Makefile.1.6 geht. hab ja 1.7.x als vdr version.


    Glaub mir "Makefile.1.6" ist das richtige.



    Aber da habe ich mich schön selber verarscht ;) Makefile.1.6 und Makefile.1.7.x ist für den Debian Packetbau extrem nervig ;) Ich muss da erstmal schauen wie man das am besten hinbekommt.


    cu

  • Ich muss da erstmal schauen wie man das am besten hinbekommt.


    Einfach einen Patch erstellen, der das richtige Makefile an der erwarteten Stelle erzeugt :)

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Neee, den muss man dann ja bei jeder Änderung nachziehen.


    ich habs jetzt mal so


    Ich werde dann heute Abend das mal richtig schön fertig machen.


    cu

  • seahawk1986:


    du bist mein held! ich habe variante 1 ausprobiert, also die eine zeile in das frontend startscript mit eingebaut.
    es funktioniert, der fernseher schaltet sich schon mal bei manuellem start ein. ob er jetzt auch aus bleibt, wenn vdr durch einen timer aufgewacht ist, probier ich gerade aus.
    werde berichten.
    vielen dank schon mal für deine hilfe.


    [edit]
    test erfolgreich, beim startup durch timer bleibt die glotze aus. perfekt, genau das, was ich will.
    vielen dank nochmal
    [/edit]


    Keine_Ahnung:


    dir auch vielen vielen dank für deine unterstützung. ich habe das plugin jetzt kompiliert bekommen, ab er so wie es aussieht, brauche ich es jetzt gar nicht mehr.

    Board: ASUS AT5IONT-I, 4 GB Ram
    DVB Karte: Tevii S480
    40 GB ssd als boot/systemplatte (2,5" Wechelrahmen, um auf einer anderen Platte ein Testsystem zu installieren)
    3x2TB hdd für /media
    Medion X10 Fernbedienung
    yaVDR 0.5
    Samsung UE46D5700

    Einmal editiert, zuletzt von duc ()

  • Ich wollts eh mal einpacken, für die stillen Mitleser: http://projects.vdr-developer.…jects/plg-uactivity/files


    Installation nicht getestet, bugreports willkommen.


    Edit: Der versaut die Dateinamen "0.0.1_git593168e7.orig.tar.gz" -> "0.0.1+git593168e7.orig.tar.gz"
    Enpacken per "dpkg-source -x vdr-plugin-uactivity_0.0.1+git593168e7-1.dsc", bauen per "dpkg-buildpackage"


    cu

  • Moin!


    Kennst du "git describe"? Wenn du Tags in deinem Repository benutzt, ergibt das tolle Versionsnummern, die vor allen Dingen fortlaufend sind. Die git-Revision ist nicht zwingend steigend.


    Lars.

  • Kennst du "git describe"?


    Jetzt schon :) Danke, die Art wie die Nummern gebildet werden gefällt mir.
    Ich hatte da gestern auch schon nach ner Policy für "wie bilde ich Versionsnumern vom git" gesucht aber nix gefunden.


    Das mit dem Link von
    /var/lib/vdr/plugins/uactivity
    nach
    /etc/vdr/plugins/uactivity
    gefällt mir auch noch nicht. Da muss ich auch noch was ändern.


    Ist doch gar nicht so einfach die vdr policy in die FHS zu pressen.


    cu

Jetzt mitmachen!

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