TvbrowserSet Version

Mega13

Registered
Messages
59



TvbrowserSet Version


TvbrowserSet Version 0.2

16.08.2010

Im TV-Browser eine Sendung auswaehlen, rechts Clicken und "aufnehmen/record" auswaehlen.
Das Plugin setzt automatischen einen Timer auf dem Octagon



VORAUSSETZUNG:
- Testen wie immer auf eigene Gefahr.
- Octagon-Firmware >= 10831 !!!, wegen API >= 1.01, die erstmalig das Setzen von Timern ermoeglicht
- /STORAGE/HDD ist verfuegbar/gemountet
- Tests bisher auf 1018 durchgefuehrt. Habe keine Moeglichkeit auf einem 1008 zu testen.


Funktionsweise:

Im TV-Browser
ist ein "StandardTreiber/Default Driver" zu konfigurieren.
Zur Programmierung wird auf einer Sendung von Menue der rechten Maustaste "Aufnehmen/Record" ausgewaehlt.
Dabei wird eine Seite (mit Parametern) des HTTPservers des Octagon aufgerufen
und schlussendlich das Plugin zum Programmieren des Timers aufgerufen.
Kontrollieren kann man das Ergebnis ueber die "normalen" OSD-Timereinstellungen
ueber Menue - Systemeinstellungen - Timereinstellungen.

Im Fehlerfall zeigt TV-Browser hilfreiche Informationen in einem Fenster an.
Diese Infos entsprechen der Benutzer-Log-Datei /STORAGE/HDD/.tvbSet.log
Mehr Debuginfos zur letzten Programmierung stehen in /STORAGE/HDD/.tvbSet.dbg
Die Sammlung aller Log-/Debuginfos steht in /STORAGE/HDD/.tvbSet.log.All bzw. /STORAGE/HDD/.tvbSet.dbg.All
Wenn es fuer die Sendung bereits einen Eintrag gibt, wird dies aktuell als Fehler bewertet.

Ein Timer kann ohne und mit EPG programmiert werden.
Ohne EPG wird als Name "<ProgrNr> <ProgrName>" verwendet.
Mit EPG wird der Sendungsname verwendet.

Falls Sendungen nur mit vorhandenem EPG programmiert werden sollen (default),
dann in der Konfigdatei /var/etc/tvbSet.cfg einfach "epgNeeded" eintragen.
Vorteil: Timereintraege sehen aus wie vom OSD-EPG programmiert.
Nachteil: Ohne vorhandene EPG-infos des gewuenschten Programmes wird der Vorgang abgebrochen.

Falls einem wichtiger ist die Programmierung auf jeden Fall durch zu bekommen
und man die EPG-infos als "nice to have" an sieht,
dann in der Konfigdatei /var/etc/tvbSet.cfg einfach "epgUnneeded" eintragen.


Bei der Entwicklung des Plugins ist aufgefallen,
dass die Firmware KEINEN sauberen reboot durch fuehrt !
Weder bei "Power OFF" noch bei Einspielen eines plugins !
Dadurch muss bei jedem reboot beim Neustart ein FileSystemCheck ablaufen, der einige Zeit dauern kann.
Um diese zusaetzliche Zeit zu verhindern ist das plugin "saveFastReboot" beigefuegt.
Es haelt zuerst alle "/etc/init.d"-Applikation und alle "/var/bin-Programme" an,
damit dann anschliessend die Festplatte sauber ungemountet werden kann
und dann der reboot ausgefuehrt wird.
Im Display wird der Fortschritt angezeigt.
reboot alles /etc/init.d-Services anhalten
reboot. alles plugins anhalten
reboot.. alle /dev/sd[a-z][0-9]-Filesysteme unmounten
reboot... nach 5 Sekunden erfolgt reboot


Installieren des Plugins (wie ueblich):
plugin-Verzeichnis auf einen USBstick kopieren, einstecken und "downloaden"


Mit der Konfigurationsdatei (/var/etc/tvbSet.cfg) kann die Funktion beeinflusst werden.

Konfigurationsparameter:
#debug=2 # Debuglevel
# # Default: 1
#
#epgUnneeded # Epg NOT needed to set a timer (only nice to have)
epgNeeded # Epg IS needed to set a timer
# # Octagon verwendet als Titel dann <ProgrNr> <ProgrName>
# # Default: Epg needed for a complete info to set a timer


Konfiguration des Devices im tvbrowser:

Bezeichnungen (V3.0beta2 deutsch / V2.7.4 englisch):
tvbrowser: Extras/Plugins - Aufnahmesteuerung/RecodingControl -
- Geraete/Device
- GeraetHinzufuegen/addDevice
- Name: Octagon1018 - Treiber/Driver: StandardTreiber/DefaultDriver - OK
- Octagon1018 - GeraeteKonfigurieren/configureDevice
- Applikation/Application: URL - http://<OctagonIP>/cgi-bin/tvbSet.sh
- Parameter:
ParameterFuerAufnahme/Record: {urlencode(channel_name_external, "ISO-8859-1")}&&&{leadingZero(start_hour, "2")}:{leadingZero(start_minute, "2")}/{leadingZero(start_day, "2")}.{leadingZero(start_month, "2")}.{start_year}-{leadingZero(end_hour, "2")}:{leadingZero(end_minute, "2")}/{leadingZero(end_day, "2")}.{leadingZero(end_month, "2")}.{end_year}&&&&&&CHANNELNAME={urlencode(channel_name, "ISO-8859-1")}&&&TITLE={urlencode(title, "ISO-8859-1")}&&&ORIGINALTITLE={urlencode(original_title, "ISO-8859-1")}&&&EPISODE={urlencode(episode, "ISO-8859-1")}&&&ORIGINALEPISODE={urlencode(original_episode, "ISO-8859-1")}&&&EPISODENUMBER={urlencode(episode_number, "ISO-8859-1")}&&&DESCRIPTION={urlencode(description, "ISO-8859-1")}&&&SHORTINFO={urlencode(short_info, "ISO-8859-1")}
ParameterFuerLoeschen/Delete: Delete. Till now Octagon API doesn't provide a way
- Sender/Channels:
- InternalName: Das Erste
- ExternalNumber: <Programmnummer im Ocatgon> ODER <Programmname im Octagon>
- Einstellungen/Settings:
ZeitEinstellungen/TimeSettings:
- WievieleMinutenFrueherStarten/numberOfMinutesToStartEarlier: 0 !!! Vorlaufzeit im Octagon einzustellen - sonst werden falsche Sendungen programmiert !
- WievieleMinutenSpaeterStoppen/numberOfMinutesToStopEarlier: 0 !!! Nachlaufzeit im Octagon einzustellen
Benutzer/User:
- Benutzername/username: root
- Passwort/password: <Default: leer>
Sonstiges/Additional:
- MaximaleAnzahlGleichzeitigerAufnahmen/maximumSimultaneousRecordings: 2 !!! Fuer Ocatgon-1018
- AnzahlDerSekundenBisZumAbbruch/waitSecUntilTimeout: 5
- UeberpruefeObEinFehlerWertZurueckgegbenWird/checkIfReturnsErrorValue: ON !!!!
- RueckgabeDialogNurBeiFehlerAnzeigen/showResultDialogOnlyonerror: ON !!!!
- ZeigeTitelUndZeiteinstellungsdialog/showTitleAndTimeSettingsDialog: OFF
- SendungenDieBeimDatenupdateEntferntWurdenAutomatischLoeschen/automaticallyDeleteProgramsThatWereRemovedDuringDataUpdate: ON
- NurProgrammeErlaubenDieInDerZukunftLiegen/onlyAllowProgramsThatAreInTheFuture: ON
- ZeitzoneVomBetriebssystemErfragen/useTimezoneProvidedByOS: ON
- Zeitzone/timezone: Europe/Berlin
- OK



Meine erfolgreichen Tests (Octagon 1018 Firmware 10834 Sky-S02):
- In welchen Zustaenden funktioniert tvbSet ?
a) keine Aufnahme/Wiedergabe laeuft + in keinem Menue
B) Menue "Timereinstellungen" offen
c) eine Wiedergabe laeuft
d) eine Aufnahme (Sat.1) laeuft, schaue ProSieben an und programmiere RTL-Sendung
e) zwei Aufnahmen (Sat.1 + ProSieben) laufen, schaue Kabel-eins an und programmiere RTL-Sendung
f) eine Aufnahme (Sat.1) laufen, schaue Wiedergabe an und programmiere RTL-Sendung
g) zwei Aufnahmen (Sat.1 + ProSieben) laufen, schaue Wiedergabe an und programmiere RTL-Sendung
h) Wiedergabeliste
- Programmieren der Programme (werde gerade nicht angeschaut):
ARD HD
ZDF HD
RTL
ESPN America
TNT Film (Progrnr+Progrname)
National Geographic Channel
- Korrekte Behandlung spezieller Situationen
- EPGneeded + keineEPGdaten vorhanden -> Abbruch, wie gewuenscht


Bekannte Einschraenkungen - da muss ich einfach noch bei:
- Ursache fuer Abstuerze im Zusammenspiel mit EpgScan noch nicht geklaert.
In einigen Faellen konnte das Programm noch gewechselt werden - zumindest der Ton aenderte sich - das Bild blieb allerdings beim gleichen Programm.
- Die EPG-Informationen von tvbrowser und via Satellit sind nicht immer identisch !!!!
Bisher beobachtete Varianten:
a) ESPN America: tvbrowser kennt nur Anfangszeit / keine Endzeit
tvbrowser hat dann als Endzeit eine Minute spaeter verwendet.
Ansatz: Bei vorhandenem EPG - nach Suche ueber Startzeit dann den Sendungsnamen zur Auswahl der endgueltigen Start-/Endzeit verwenden.
B) unterschiedliche Startzeit und/oder Endzeit
Ansatz1: Satelliteninfos verwenden, da aktueller
Ansatz2: kleinere Startzeit und groessere Endzeit verwenden
c) ESPN America: Laut tvbrowser gibt es am 13.8.10 die Sendung "NFL Monday Night Countdown" zwischen 1:00 und 2:00
Via Satellite kommt nur ein Eintrag "MLB: Chicago Cubs at San Francisco" fuer den Zeitraum 12.8.10/21:30 bis 13.8.10/6:00
Ansatz: Damit passt der Sendungsname nicht ueberein - also "ohne EPG" programmieren.
d) WDR: tvbrowser: "Rockpalast: Julian Marley & Uprising" - Satellit: "Rockpalast" - Uhrzeiten passen
e) Kabel eins: TVB: "The Foreigner - Der Fremde" ab 22:00 - SATELLIT: "The Foreigner - Der Fremde" ab 22:01
Solange die Startzeit entscheidet, wird die vorangehende Sendung gewaehlt.
Bisher noch zu selten beobachtet um zu einer abschliessenden hilfreichen Abhilfe zu kommen.

Bekannte Einschraenkungen derzeit ohne Loesungsmoeglichkeit:
- Loeschen einer Sendung im tvbrowser ist auf dem Octagon NICHT umsetzbar,
da API keine entsprechende Moeglichkeit bietet.
- API bietet keine automatische Ueberpruefung der aktuell laufenden Firmware,
um zu "alte" Firmware automatisch zu erkennen.
- maximal 59 Timereintraege sind moeglich


Geplante Verbesserungen:



Erfahrung mit API:
- die Funktion GetEventName() veraendert/schrottet andere Variablen.
- die Funktion GetStrBuf() im Zusammenspiel mit sprintf fuehrt zu unverstaendlichen Ergebnissen.
- Durch einen Programmierfehler hab ich /tmp/epg_0001_0002_0003_0004 entdeckt.
Hatte noch nicht genuegend Zeit, um zu klaeren, ob man damit gespeicherte EPG-infos "unterjubeln" kann



History:
V0.2
- Umlaute werden korrekt beruecksichtigt (ISO-8859-1 im TV-Browser Record Feld verwenden).
- Rueckmeldungsfenster im tvbrowser enthaelt Endloszeile - Zeilenumbruch funktioniert nicht.
Patch fuer tvbrowser: tvbrowser-2.7.4-LFinResult.patch
Unpraktikabler Ansatz.
Besser: Von Logdatei nur noch die letzte Zeile an den TV-Browser zur Anzeige uebergeben.
- Im tvbrowser als Programm auch die Programmnamen des Octagon angebbar - und nicht nur die Programmnummer.
- API-1.02 verwendet.

V0.1
Erste Version
- API-1.01 verwendet.

Gruss
fred21

 
Top