Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - LarsX

91
Raspberry PI / Anleitung: Raspberry + Samsung-TV + CEC
« on: April 05, 2015, 16:52:09 »
Das funktioniert tatsächlich, danke für den Hinweis. Ergänze ich in der /etc/vdr/keymacros.conf die Zeile

Code: [Select]
Ok      Menu

... dann ruft das Drücken der Ok/Enter-Taste an der Fernbedienung beim Fernsehen das Hauptmenü auf. Innerhalb des Menüs hingegen agiert die Ok-Taste als gewöhnliche Ok-Taste. Perfekt.

92
Raspberry PI / Anleitung: Raspberry + Samsung-TV + CEC
« on: April 04, 2015, 13:49:52 »
Ich habe auch ein Weilchen gebraucht, das nachzuvollziehen. Allerdings bin ich weit davon entfernt, alle eventuell vorhandenen Möglichkeiten zur Konfiguration erfasst zu haben. Folgendes ist mir nicht klar (will mich aber auch nicht zu tief reinknien):

1. Gibt es kontextbezogene Keymaps?

Beispiel: Nun habe ich mir PRE-CH als Taste fürs VDR-Hauptmenü eingerichtet, so weit, so gut, klappt prima. Kann ich mir aber auch die OK-Taste fürs VDR-Hauptmenü einrichten? Jein! Das habe ich ausprobiert, und es hat freilich auch geklappt: OK drücken brachte mich dann ins VDR-Menü. Aber wenn ich danach im VDR-Menü mit den Pfeil-Tasten der Fernbedienung durch die Menüpunkte navigiere und OK drücke, um einen Menüpunkt auszuwählen - dann wird eben nicht, wie gewünscht, der markierte Menüpunkt ausgewählt, sondern wieder fungiert die OK-Taste als Menütaste und das Menü schließt sich.  ??? Irgendwie logisch, ne. Daher stellt sich die Frage: Kann ich in der XML-Datei z.B. OK-Taste der Fernbedienung in verschiedenen Kontexten verschieden einrichten?

Noch ein Beispiel: Ich würde gerne die blaue Taste als Info-Taste nehmen, um den Inhalt zur aktuell im TV laufenden Sendung angezeigt zu bekommen. Ich gehe aber davon aus, dass die Erstellung der Zuweisung F1_BLUE->Info die blaue Taste grundsätzlich zur Info-Taste macht, auch in Kontexten, wo dies nicht gewünscht ist.

2. Welche CEC-Key-Codes (key code="??") sind in der XML-Datei erlaubt?

Ist es eine begrenzte vom Entwickler vorgegebene Liste? So kommt, wenn ich die Taste "CH LIST" auf meiner Samsung-FB drücke, der Code "Channel List (Samsung)" durchs HDMI-Kabel zum Raspi. Das habe ich über das Kommando "cec-client" recherchiert. Mir ist es nicht gelungen, den Key in der XML-Konfigurationsdatei aufzugreifen und in irgendeiner Weise zuzuweisen.

Theoretisch kann man eine Liste gültiger CEC-Key-Codes mit dem Kommando LSTK per telnet über Port 6419 oder per svdrpsend.sh erfragen. Allerdings bekommt man in beiden Fällen einen Fehler 500 und den Hinweis, der Befehl sei nicht bekannt. Schuss in den Ofen.
Workaround: Im Sourcecode in die Datei "ceckeymaps.cc" schauen, dort finden sich einige Codes.


Nachtrag: Ich muss mich korrigieren: In der neusten Version von cecremote funktioniert die Variante mit "svdrpsend.sh". Die telnet-Variante liefert nach wie vor den Fehler 500. Folgende mögliche CEC-Keys werden bei mir nach Absetzen des Kommandos "svdrpsend.sh plug cecremote LSTK" gelistet:

Spoiler (show / hide)

3. Wie lauten die möglichen VDR-Keys ("values"),

z.B. "Ok" oder "Down", in die die CEC-Key-Codes in der XML-Datei übersetzt werden? Gibt es eine Liste?

Nachtrag: Ich fand hier eine Liste mit VDR-Codes: http://www.vdr-wiki.de/wiki/index.php/Remote.conf.
Ob sie vollständig ist und ob man sie alle in der XML-Konfigurationsdatei verwenden kann - keine Ahnung. Sie lauten wie folgt:

Spoiler (show / hide)

Die benutzerfefinierten Codes User1 bis User9 kann man in der Datei /etc/vdr/keymacros.conf definieren.

Fazit: Ich habe aktuell nicht die Zeit, mich in alle Tiefen zu fuchsen, wollte jedoch, um den Thread inhaltlich zu vervollständigen -und sei es nur mit noch offenen Fragen- einige Unklarheiten ergänzen. Vielleicht meldet sich früher oder später jemand, der weitere Antworten hat. ;) Dennoch funktionieren natürlich die ersten Gehversuche, die im ersten Post beschrieben sind, recht gut. :)

93
Raspberry PI / Anleitung: Raspberry + Samsung-TV + CEC
« on: April 04, 2015, 00:34:16 »
So, ich hatte ein wenig Muße, mich noch einmal mit der Kombination "Raspberry + Samsung-TV + cecremote" zu beschäftigen. Vermutlich funktioniert es mit Fernsehern anderer Hersteller ähnlich oder genauso. Zwar bevorzuge ich persönlich eher die Kombi "Raspberry + Flirc", dennoch scheint ja der eine oder andere hier auf CEC zu setzen.

Man installiere sich also zunächst das Paket cecremote.

Eine Standard-CEC-Keymap ist schon aktiv, bei der bei meinem Samsung-Fernseher folgende Tastendrücke per CEC, d.h. über die Fernbedienung zum Samsung-TV und von dort über das HDMI-Kabel zum Raspberry erfolgreich weitergeleitet werden:

Code: [Select]
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, PRE-CH, P+, P-, Hoch, Runter, Links, Rechts, Enter, Return, Exit,
A(rot), B(grün), C(gelb), D(blau), Rückspulen, Vorspulen, Pause, Play, Stop, Aufnahme

Das ist schon recht viel! :) Dennoch fehlt die Taste zum Aufruf des VDR-Menüs und die Taste für den Guide.

Daher möchte man die CEC-Keymap ein kleinwenig verändern oder erweitern. Dazu logge man sich per SSH auf der VDR-Kiste ein und bearbeite mit dem Editor nano die Konfigurationsdatei "/etc/vdr/plugins/cecremote/cecremote.xml".

Im <global>-Abschnitt der xml-Datei füge man hinzu.

Code: [Select]
<keymaps cec="myTV" />

Damit aktiviert man eine zusätzliche, außerhalb des <global>-Knotens noch anzugebende eigene CEC-Keymap "myTV". Am besten ergänzt man sie in der xml-Datei gleich unterhalb des <global>-Abschnitts und notiert dort:

Code: [Select]
        <ceckeymap id="myTV">
                <key code="PREVIOUS_CHANNEL">
                        <value>Menu</value>
                </key>
                <key code="ELECTRONIC_PROGRAM_GUIDE">
                        <value>Menu</value>
                        <value>Up</value>
                        <value>Ok</value>
                </key>
        </ceckeymap>

So sieht meine kleine Erweiterung aus. Sie bewirkt, dass ich mit der PRE-CH-Taste meiner Samsung-Fernbedienung ins VDR-Hauptmenü gelange. Die ursprüngliche in der Standard-CEC-Keymap für diese Taste festgelegte Funktionalität, nämlich zwischen zwei Kanälen hin- und herzuschalten, "opfere" ich sozusagen. Darüber hinaus erreiche ich, dass beim Drücken der Guide-Taste "Menu, Up, Ok" ausgeführt wird. In meinem ganz speziellen Fall starte ich damit das Plugin TvGuide, welches sich im Hauptmenü meines VDR ganz unten befindet.

Auf diese Weise habe ich die CEC-Keymap um den Aufruf des VDR-Hauptmenüs und um den Aufruf des Guides erweitert, sodass ich via CEC ganz gut meinen VDR fernbedienen kann. Ich hoffe, jemand findet das nützlich und kann etwas damit anfangen. ;)

Ich selbst setze weiter auf den Flirc-USB-Stick zum Empfang von IR-Signalen, (a) weil ich damit noch ein wenig flexibler bin und z.B. auch die Info-Taste meiner Fernbedienung nutzen kann und (b) damit ich mir das Ding nicht umsonst gekauft habe.  :D

P.S.: Wer schon einen Flirc-Empfangsstick hat, muss den natürlich abziehen, sonst wird jeder Tastendruck der Fernbedienung doppelt ausgeführt, einmal über Flirc und einmal über CEC.

94
Kodi 14.2 ist final erschienen. Falls Claus mal die Tage Zeit und Lust hat, das Upgrade von Kodi 14.1 auf 14.2 zu machen, wär's super. ;) Mit Glück wird das eine oder andere Problem gelöst, falls es doch nicht _nur_ mit dem YouTube-Plugin zusammengehangen hat. Meine Hoffnung stützt sich darauf, dass OpenElec schon ein paar Tage länger den RC von Kodi 14.2 einsetzt und keinerlei Videohänger aufweist. Freilich kann das auch andere Gründe haben. ;)

95
Ich kann bestätigen, dass nach dem Anschauen eines YouTube-Films das Drücken der Stopp-Taste schon zu einem mächtigen Hänger führt, bei dem das System zirka eine Minute lang auf nichts mehr reagiert. Einzige Möglichkeit, das auf den ersten Blick zu vermeiden: das Video nicht mit der Stopp-Taste, sondern mit der X-Taste der Tastatur zu beenden. Dies führt vom laufenden Video sofort zurück zum Kodi-Hauptmenü. Dass sich dennoch etwas aufgehängt hat, erkennt man ja beim Abschließenden Beenden von Kodi selbst, wenn der VDR sich weigert, das TV-Bild wieder anzuzeigen, weil im Hintergrund kodi-bin noch weiterlebt.

Da ist was im Argen.

Was mich aber irritiert: Auf einem anderen Raspi laufen OpenElec+Kodi. Dort beobachte ich derlei Zickerei seltsamerweise nicht.

Man kann sich überlegen, ob man auf seinem VDR-Raspi wirklich noch ein Kodi am Laufen haben will - oder sich alternativ für alles, was nicht mit TV zu tun hat, einen zweiten Raspi hinstellt. Das ist ja genau mein aktuelles Szenario. Aber da kämpfe ich mit anderen Problemen: Erster Raspi (MLD/VDR+Flirc) reagiert noch im Hintergrund auf die TV-Fernbedienung, wenn ich damit gerade den zweiten Raspi (OpenElec+Kodi+CEC) bediene - nervig.



96
Nun funktioniert's! Vielen Dank. :)

97
Nach dem Update von "vdr-plugin-suspendoutput" vom 27.03.2015 wird kein Fernsehbild mehr angezeigt. Erst nach dem Rückspielen des Snapshots funktioniert das Fernsehen wieder. Folgende Meldung wiederholt sich in den Logs alle zwölf Sekunden:

Code: [Select]
VDR exits at Fr Mär 27 20:50:22 CET 2015
suspendoutput: invalid option -- 'n'

98
Erledigt, Bug-ID 0000193.

Ich poste das zusammenfassend hier noch einmal, weil es die vergangenen Postings gut auf den Punkt bringt.


Nachdem man in der App Kodi ein YouTube-Video angeschaut hat, lässt sich Kodi durch den Benutzer nicht mehr richtig beenden. Man landet statt im Fernsehprogramm des VDR in einem schwarzen Bildschirm.

- Starte aus VDR 2.2.0 heraus die App Kodi 14.1.
- Starte das YouTube-Addon (Version 5.0.9) von Kodi.
- Schaue ein YouTube-Video an, denn nur dann tritt der Fehler auf.
- Verlasse Kodi.
- Erwartetes Verhalten: VDR zeigt wieder das laufende Fernsehprogramm.
- Beobachtetes Verhalten: Es erscheint ein schwarzer Bildschirm.

Während der schwarze Bildschirm angezeigt wird, läuft noch der Prozess kodi-bin, der normalerweise nach Beenden von Kodi ebenfalls beendet wird. Das Startskript /usr/bin/runkodi kommt daher im Abschnitt "# starte kodi" nicht über die eval-Zele hinaus, die Kodi gestartet hat.

Lösungsansatz: In der Kodi-Logdatei ~/.kodi/temp/kodi.log findet sich nach dem Beenden von Kodi eine Zeile mit der Wortfolge "application stopped". Man müsste, sobald diese Zeile entdeckt wird, Kodi mit "runkodi -k", ggf. zusätzlich mit "killall -9 kodi-bin", zwangsweise beenden.

99
Ich habe es mir angeschaut und folgende zwei Dinge festgestellt:

Erstens, gute Nachricht:

Ja, in der Logdatei ~/.kodi/temp/kodi.log taucht tatsächlich in der letzten Zeile immer die Wortfolge "application stopped" auf, wenn Kodi beendet wird, auch dann, wenn Kodi nicht richtig geschlossen wird und kodi-bin weiterlebt. Daraus kann man ja vielleicht was machen.

Zweitens, schlechte Nachricht:

Im Startskript /usr/bin/runkodi wird, siehe Codeauszug unten, leider die Zeile nach dem Aufruf von Kodi nicht mehr erreicht, falls Kodi beim Beenden hängen bleibt. Schade, denn sonst hätte man hier einfach ein "runkodi -k" einschieben können, ggf. mit anschließendem Zwangsabschießen, wenn man auf Nummer sicher gehen möchte.

Code: [Select]
# starte kodi
eval /usr/lib/kodi/kodi.bin $KODI_ARGS >>/var/log/kodi 2>&1
status=$?
echo -n "kodi exits at "; date

# Falls Kodi beim Exit HÄNGT, wird diese Zeile leider schon nicht mehr erreicht,
# sonst könnte man ganz schlicht Folgendes einpflegen:

echo "Trying to kill kodi..." 2>/dev/null
runkodi -k
sleep 2
killall -9 kodi-bin 2>/dev/null

100
Könnte man den Aufruf von Kodi nicht dahingehend modifizieren: https://gist.github.com/aperezm-vlex/75d7481afff0db8f5894

Ich zitiere:

Avoid black screen on kodi exit

Code: [Select]
#!/bin/bash
 LOG_FILE=$HOME/.kodi/temp/kodi.log
rm $LOG_FILE 2> /dev/null

/usr/lib/kodi/kodi.bin --standalone &

while [[ ! -f $LOG_FILE ]] ; do
sleep 1s
done

while read line ; do
if [[ ${line} =~ "application stopped" ]] ; then
echo "Killing kodi"
break
fi
done < <(tail --pid=$$ -f -n0 $LOG_FILE)

killall kodi.bin  <--------- !

fbset -depth 8 && fbset -depth 16

Wobei ich mich gerade frage, ob der Logeintrag "application stopped" überhaupt beim Kodi-Exit ausgegeben wird, wenn YouTube zuvor Kodi versaubeutelt hat...

101
Gibt es das auch für MLD? Hast du mal einen Link für mich?

Meinst du etwa dieses hier: http://projects.vdr-developer.org/projects/plg-webvideo

102
Scheint auch bei mir gut zu funktionieren, merci. :)

Bleibt bloß noch das Kodi-YouTube-Problem. So wie ich das sehe, ist es tatsächlich ein Problem des YouTube-Addons innerhalb von Kodi, welches in dem einen oder anderen Forum auch schon zumindest mal thematisiert wurde. Ich kann nur auf einen Bugfix des YouTube-Addons hoffen.

In MLD/VDR ist es offenbar nicht fixbar, ebenso wenig wie ein "runkodi -k" zum passenden Zeitpunkt getriggert werden könnte, um kodi-bin zu entsorgen, falls sich da etwas aufgehängt hat.

Frage: Bin ich denn auf Kodi angewiesen, um mit meinem MLD/VDR-Raspi YouTube zu schauen? Ein aktuelles YouTube-VDR-Plugin oder eine VDR-App scheint es dafür nicht zu geben. Auch sonst habe ich keine Idee, wie ich YouTube ohne Kodi hinbekomme.

103
Ist das Kodi-Paket schon aktualisiert? Eben wollte ich's mal testen, ein Kodi-Update wurde mir aber nicht angeboten, weder über opkg noch übers Webinterface. Hab Kodi dennoch mal de- und reinstalliert und das suspendoutput-Plugin nachinstalliert. Nach wie vor besteht das oben diskutierte Problem.

104
Du könntest mal ausprobieren, ob der Fehler (das die kodi.bin weiter läuft) auch auftritt, wenn Du kodi auf der Komandozeile gestartet hast. Zuvor solltest Du den VDR mit "runvdr -k" stoppen.

Macht keinen Unterschied. Ich habe Kodi per Aufruf von "kodi", per Aufruf von "runkodi" und per Aufruf von "startapp runkodi" aufgerufen - immer mit demselben Ergebnis:

Klicke ich mich nur ein wenig durchs Kodi-Menü und schließe Kodi dann wieder, beendet sich Kodi problemlos und der VDR zeigt das Fernsehprogramm. Schaue ich aber mit Kodis YouTube-Addon einen Film und schließe Kodi anschließend, beendet es sich nicht richtig, sodass ich erst zur Keule "runkodi -k" greifen muss, um wieder fernsehen zu können.

P.S.: Danke für die kleine Randbemerkung zu den "Zombies", die mir aufzeigen sollte, dass per Definition der Begriff hier unpassend ist. ;)

105
Folgenden reproduzierbaren Fehler beobachte ich. Vorweg: Ich bin nicht sicher, ob es ein RPI-spezifisches Problem ist. Dennoch poste ich es mal hier, weil MLD/VDR bei mir auf einem Raspi 2 läuft. Darüber hinaus mag es sein, dass ich das Problem genauso gut in einem Kodi-Forum posten könnte. Sei's drum:

Starte ich aus MLD/VDR heraus die Kodi-App und beende Kodi, erscheint, wie erwartet, wieder der VDR und alles ist gut.

Starte ich aus MLD/VDR heraus die Kodi-App, starte in Kodi YouTube und lasse einen Film laufen und beende Kodi wieder, erscheint ein schwarzer Bildschirm.

In der SSH-Konsole sehe ich (ps | grep kodi), dass ein Kodi-Zombie (kodi.bin) im Hintergrund weiterlebt. Dieser Zombie existiert nicht, wenn ich kein YouTube-Video zuvor angeschaut hatte. Beende ich diesen einen Prozess regulär mit kill (kill -9 ist gar nicht nötig), so erwacht der VDR sofort wieder zum Leben und das Fernsehprogramm wird sichtbar.

Schaue ich keinen YouTube-Film, entsteht das beschriebene Problem erst gar nicht.

Sollte dies ein Kodi-Problem sein, können die MLD-Entwickler wohl nicht viel ausrichten, befürchte ich.  :(
Was womöglich dennoch geht: Kann man nicht die PID der kodi.bin beim Beenden von Kodi und/oder Restart von VDR mit kill beenden?

Nachtrag:

Eben habe ich mir das noch einmal angeschaut. Im Prinzip genügt es, nach Abschluss der Kodi-Session ein

Code: [Select]
runkodi -k

laufen zu lassen. Ich wollte es einmal ausprobieren, wusste aber nicht, wo genau ich den Befehl anzubringen hätte, sodass er nach dem Beenden von Kodi läuft. Tippe ich ihn in der Shell ein, klappt es gut und der VDR schnurrt im Anschluss wieder munter vor sich hin.