AKTUELL: V 1.0.2
Hiermit stelle ich ein Skript für Kodi bereit, welches anhand der Dateinamen (z.B. durch Nutzung des Aspect Ratio Detectors von All-Ex) Kommandos (auch mehrere) per Ethernet-Schnittstelle an einen JVC Projektor sendet. Aktuell ist die Auswertung auf den Aspect Ratio Detector [LINK] voreingestellt.
Bitte NICHT ERSCHRECKEN!!! Es ist eine "große" Anleitung", das meiste ist allerdings selbsterklärend. Das sollte euch nicht abschrecken, das Skript einfach mal zu testen. Man kann mit dem veröffentlichten Skript nichts kaputt machen.
Voraussetzungen:
- JVC Projektor
- Kodi in Verbindung mit dem Kodi-Player
- Kodi in Vebrindung mit DSPlayer
Für die Nutzung von anderen externen Playern müsste die Skruktur umgestellt werden, weil man dann nicht so einfach an die benötigten Daten kommt. Ich werde nach aktuellem Stand auch keine anderen Player unterstützen.
Kurz zur Funktion:
Funktionieren sollte das Script mit JVC Geräten der Xx0- Generation bis zur Xx900-Generation. Aktuell sind Befehle für Lens-Memory, Maskierung, Bildmodus (und EIN/AUS) eingefügt.
Es können z.B., je nach erkanntem Bildformat (oder auch eingegebem HDR-String in Dateiname/-pfad oder beidem) alle über die Schnittstelle möglichen Kommandos an den Projektor gesendet werden. Dies geschieht nach einmaliger Konfiguration in am Anfang des Skripts selbstständig beim Start einer beliebigen VIDEO-Datei. Nach Beendigung wird der Standard Bildmodus wieder angefahren.
Zur Einbindung:
Die ZIP-Datei ist zu entpacken und die Dateien/Ordner gehören ins Kodi-Homeverzeichnis (bei Windows: C:/Benutzer/"(User)"/AppData/Roaming/Kodi/). Die autoexec.py gehört also in den bereits vorhandenen "Userdata"-Ordner.
Zur Konfiguration ist die Datei ist mit einem "guten" Texteditor (z.B. PSPad, Notepad+,...) zu bearbeiten. Zu beachten ist, dass Python sehr genau auf Struktur, wie z.B. die Einrückung achtet. Ist eine Zeile falsch eingerückt, dann gibts einen Fehler. Eine Einrückung besteht auf "4 Leerzeichen", zwei Einr. sind "8 Leerzeichen",...
Kurz zu der Datei:
Ab Zeile 78 ist das "Verzeichnis" mit den JVC-Befehlen erstellt, dieses kann auf Wunsch erweitert oder verändert werden. Ein Befehl besteht immer aus einem Namen und dem zugehörigen HEX-Befehl.
Ab Zeile 120 beginnt die individuelle Konfiguration...folgende Erklärung:
lässt nach der Auswertung eine Kodi-Nachricht mit den Daten der Videodatei erscheinen (oder eben nicht)
hier wird das Standard-Bildformat eingetragen (Format: '1.78','1.85', '2.20',...) welches die Leinwand hat. So wird ggf. kein Befehl an den Beamer geschickt, wenn es nicht sein muss, außerdem wird nach Beendigung des Videos auf dieses Bildformat (MUSS in 'self.PicModeSdr' hinterlegt sein) zurückgefahren.
Eintragen der eingestellten Bildwiederholrate (Standard-Oberfläche, also Windows etc.). Hatte ich Anfangs mal gebraucht, um den Sync des Beamers abzuwarten, oder eben nicht. Mit DSPlayer funktioniert die Auswertung (ein Vergleich zwischen FPS des Videos und diesem Eintrag) nicht. Kann aber nicht schaden!
Hier kann die Zeit in Millisekunden angegeben werden, wann der erste Befehl nach Videostart an den Beamer gesendet werden soll. Die Befehle werden nach diesem Delay direkt nacheinander an den Projektor verschickt. Die Routine wird bei Nichtempfang eines Signals 8 mal im Abstand von 3 Sekunden versuchen, das nicht korrekt gesendete Kommando noch einmal zu schicken. Mit der Zeit kann gespielt werden, ab 5 Sekunden bekommen auch die langsamen "Sync"er auf jeden Fall alle Signale mit.
Und jetzt zu den "wichtigen Dingen":
Die IP-Adresse des JVC Projektors...!
Dort werden alle (Standard)-Bildformate beschrieben, die in den Dateien gefunden werden können. Diesen Bildformaten werden dann die gewünschten Befehle aus der JVC-Liste zugeordnet. Die Bildformate können mit Punkten, Kommas, oder gar nicht getrennt werden. Also '178' oder '1.78' oder '1,78'. Der Liste muss dann der gwünschte Befehl /die Befehle zugeordnet werden. Besipeile hab ich ja hinteregt. Bitte GROß und kleinschreibung beachten.
HDR-Optionen:
Sollte für HDR Medien eine andere Einstellung gewünscht sein (meist der Bildmodus), kann man die HDR-Erkennung einschalten.
Es kann eine der beiden oder beide Optionen aktiviert werden. Es wird dann der angegeben "HDR-String" im Dateinamen, im Pfad oder in beidem gesucht.
Wird bei Aktivierung mindestens einer der beiden Optionen die angegebene Zeichnfolge erkannt, wird anstelle der Standrad-Bildformat Liste (self.PicModeSdr['XXX']) in der self.PicModeHdr['XXX']-Liste gesucht. Sollte das Bildformat hier nicht zu finden sein, wird in der Standard-Liste gesucht (das sollte dann aber nicht passen, weil ihr da ggf. ja kein HDR-Bildmodus eingestellt habt).
Die Zeichenfolge, nach der für die HDR-Erkennung gesucht werden soll!
Siehe Standard Bildmodi. Diese Modi (und damit Befehle) werden gesendet, wenn die Suche anch der HDR-Zeichenfolge eingeschaltet ist und diese gefunden wird.
WICHTIG:Es werden auch NUR Bildformate gesucht, die in diesen Listen hinterlegt sind! Sollte eine Datei ein Tag mit *AR_123* beinhalten und dieser Tag ist bei den Listen nicht aufgeführt, wird er auch nicht erkannt. Das mache ich, damit ich nicht mit evtl. Stringkombinationen in Konflikt gerate, die gar kein Seitenverhältnis darstellen sollen.
Allgemeine Probleme, Fehler oder auch Wünsche können natürlich gerne hier im Thema gepostet werden. Ich wünsche allerdings, speziell für einige Fehler, einen Log und eine Fehlerbeschreibung (z.B. wie der Fehler reproduziert werden kann).
Für das Log muss im Kodi einfach die Logging-Funktion in den Einstellungen aktiviert werden. Das Skript logt dann für mich wichtige Sachen mit. Dieses Log bitte NICHT einfach hier posten. Manche Menschen "möchten" nicht wissen, wie eure Urlaubsvideos heißen, oder was ihr euch so anschaut! Die Logs bitte per PM als Datei schicken (auch Auszüge sind möglich). Ggf. muss die "kodi.log" einfach in kodi.jpg umbenannt werden, damit sie per PM vershcikt werden kann. Ich werde die Logs vertraulich behandeln und nach Einsicht löschen!
Zum Abschluss und WICHTIG: Die Nutzung des Skripts geschieht auf eigene Gefahr, ich übernehme keine Garantie für mögliche Schäden.
Und nun...viel Spaß beim Testen!