Beiträge von rbrt

    Die Fernbdienung ist quasi die Startseite. Da ich mehrere VDRs damit bediene, weiß ich welcher VDR gerade ausgewählt ist. Hier steht es als einziges im Kopfbereich. Das könnte ich aber als einstellbare Option aufnehmen.


    Das mit dem "Zurück" ist gewöhnungsbedürftig, gebe ich zu. Wenn man allerdings weiß, daß man auf der höchsten Eben ist, passiert das nicht mehr sehr oft. Alternativ könnte ich eine Abfrage einbauen. Mir war erstmal wichtig, daß ich mit einem Androidhandy meinen Headless- VDR bedienen konnte. Das Projekt war eher gedacht, daß ich etwas Programmieren erlernen wollte und habe es dann auch euch zur Verfügung gestellt. Es gibt auch kein offizielle App bei Google Play, da mir hier immer noch zu viel Wissen fehlt.


    Es wird wieder eine Android-App werden. Die GUI habe ich quasi übernommen. Als Unterbau kommt SVDRP zum Einsatz. So daß man auf zusätzliche Plugins verzichten kann. Wird aber noch etwas dauern, da es auf eine Neuprogrammierung hinausläuft. Da ist der Unterschied zur Restful-Api zu groß.

    Hallo rell,


    was würdest du anders machen? Ich kann verraten, daß ich die RestfulApp nicht mehr weiterentwickle, aber es wird ein Ersatz kommen. Da interessiert es mich schon, was zu verbessern wäre.

    Ich habe das so gelöst: Sender sortieren, also nur einen Sender von den mehrfachen vorne in der Liste. Dann den Suchtimer anlegen mit "Verw. Kanal -> Bereich", dann den ersten Sender und den letzten Sender, wo keine doppelten dabei sind, angeben.


    Sind hier Kanalgruppen nicht auch eine Alternative? Würde das sortieren ersparen. Allerdings muß zuerst eine Kanalgruppe angelegt werden

    wmautner Ich hatte das mal auf dem Schirm und dann wieder vergessen. In der neuen Version 0.3.1 hinzugefügt. Ist nur ein VDR vorhanden wird automatisch umgeschaltet.


    Download


    Außderdem habe ich noch eine neue Option bei den Vorgaben hinzugefügt. Stimmen Timerbeginn (zzgl. Vorlauf) und Eventbeginn nicht überein, wird in der Timerliste das Event farblich hervorgehoben, so wie auf dem Screenshot. Gedacht ist das vor allem für automatisch angelegte Suchtimer. Manchmal ändern sich die Anfangszeiten von Seiten der Programmanbieter und der VDR (oder epgsearch) bekommt das nicht mit und ändert den Timer dazu nicht. Bei mir kommt das manchmal vor.



    Wer das automatische umschalten nicht braucht oder darauf verzichten kann und die neue Funktione nicht braucht kann sich das Update sparen.

    Hat der VDR-Eintrag in der Liste ein grünes Edit-Icon? Wenn nicht, dann erst "umschalten" (Doppelpfeil-Icon). ich gebe zu, nicht optimal umgesetzt. Sollte nur beim ersten VDR vorkommen. Den Standardeintrag merkt er sich.

    Hallo zusammen,


    nach längerer Zeit gibt es ein paar Neuerungen zur App. Die neueste Version ist die 0.3.


    Direkt zum Download


    Es gibt hier eine Besonderheit zu beachten. Den internen Projektnamen habe ich geändert. Bisher stand ein Defaultname drin, was evtl. zu Komplikationen mit anderen Apps führen kann. Die Folge: Nach der Installation existieren zwei Apps auf dem Smartphone. Entweder deinstalliert man die App vorher oder nachträglich und orientiert sich zur Unterscheidung an der Versionsnummer. Bei meinen Geräten mußte ich erst die alte App deinstallieren.


    Neben geringfügigen Änderungen bei der GUI sind ein paar kleinere Features hizugekommen:

    Bei den Aufnahmen gibt es nun Filterfunktionen für neue und geschnittene Aufnahmen.

    Die EPG-Anzeige läßt sich jetzt begrenzen und zeigt sie nicht mehr für alle Kanäle an. Wer sehr viele Kanäle hat wird den Geschwindigkeitszuwachs sofort merken. Zu finden bei den Vorgaben (EPG-Anzeige bis Kanal).


    Die umfangreicheren Neuerungen sind aber folgende:


    farbliche Hauptzeit (Primetime)

    Zwischen zwei frei definierbaren Zeitpunkten wird der Hintergrund in den Listen für Programme und Timer anders eingefärbt. Damit lassen sich Sendungen z.B. zwischen 20:15 und 23:59 leichter erkennen. Zeiten und Farbe lassen sich unter Einstellungen/Vorgaben ändern.


    Löschen mehrerer Aufnahmen

    Bei den Aufnahmen gibt es jetzt eine Checkbox. Wählt man mindestens eine Aufnahme aus, kann in der Fußzeile eine neue Seite aufgerufen werden. Hier können einzelne Aufnahmen auch wieder entfernt werden bevor man alle löscht. Da von der Api keine vernünftige Rückmeldung kommt gibt es keinen Hinweis, ob die Löschung erfolgreich war. Test mit bis zu 10 Aufnahmen liefen bei mir erfolgreich.


    Abspielen von Aufnahmen oder Sendungen

    Bei den Kanälen, der Programmübersicht oder Aufnahmen gibt es ein neues Icon (play). Man hat die Wahl zwischen dem VDR oder dem Smartphone. Beim VDR wird die Aufnahme direkt am VDR gestartet. Leider besitzt die RestfulApi keine Kontrollfunktionen (oder ich habe sie übersehen), so daß ein Stoppen nicht mehr möglich ist. Die Bedienung muß dann am VDR erfolgen. Sicherheitshalber erscheint vorher nochmals eine Abfrage, ob man die Aufnahme abspielen möchte. Bei einem Headless-Server wäre das ja nicht unbedingt gewünscht.


    Zum Abspielen auf dem Smartphone gibt es zwei Vorbedingungn:

    1. Das Plugin streamdev-server muß vorhanden sein. Der Port kann in den Einstellungen geändert werden. Voreingestellt ist der Standardport (3000).
    2. Auf dem Smartphone muß ein geeigneter Player vorhanden sein. Die App gibt lediglich die streamurl an das Android-OS weiter und kümmert sich nicht mehr weiter darum. Als Player kommt vermutlich nur der VLC in Betracht. Er spielte bei mir alles ab, egal ob SD- oder HD-Sender oder eine Aufnahme.


    Das wärs soweit. Ich hoffe euch gefallen die Erweiterungen. Falls es zu Abstürzen oder unerwarteten Verhalten kommt einfach hier posten. Wenn jemand noch einen Wunsch hat immer her damit.

    uh, sorry. Da hat sich einges im Code geändert. Wäre mir sicher auch aufgefallen, wenn ich mal etwas gelöscht hätte. ^^

    Der Absturz passierte, bevor der Löschbefehl zum VDR abgesetzt werden konnte. Es wurde also keine andere Aufnahme versehentlich gelöscht.


    Funktioniert jetzt wieder mit der Version 0.2.3. Wie gewohnt hier herunterladen


    Nutzt jemand auch die Möglichkeit, Timer und Suchtimer anzulegen bzw. zu ändern? Bei den vielen Optionen war es mir nicht möglich alles auf Korrektheit zu überprüfen. Besonders die vielen Einstellungen bei "Vermeide Wiederholungen" sind beinahe unüberschaubar. Ich selber nutze ja nur die einfachen Dinge wie Titel und Kanal/Kanalgruppe. Bei der Wiederholung auch meist nur den Titel. Vielleicht gibt es einen, der das Epgsearch-Plugin etwas komplexer nutzt.

    Das ist ja das irreführende. Trägt man hier 90 ein, übernimmt es live und im Hintergrund das Epgsearch-Plugin. im OSD erscheint bei Dauer dann als Eintrag 00:90. Keine Ahnung, wie das Plugin darauf reagiert.

    Über das OSD ist es nur möglich, Werte im Zeitformat hh:mm einzutragen. Trägt man hier jetzt z.B. 01:30 für die 90 Minuten ein, erscheint in live als Dauer 130 Minuten.

    Bei den Suchtimern kann bekanntlich eine Dauer definiert werden. Laut Beschreibung von Epgsearch-Plugin wird die Dauer im Format HHMM angegeben, wie bei den Stop- und Startzeiten. Eine Dauer von 90 Minuten wäre dann im Format 0130. Das Live-Plugin interpretiert den Wert anscheinend als Minuten und zeigt in dem Beispiel 130 Minuten an.


    Mir ist das nur aufgefallen, weil ich mich mit dem Epgsearch-plugin und svdrp etwas beschäftigt habe. Die Onlinedoku zum Plugin ist auch nicht eindeutig. Hier steht auch "duration in minutes", wogegen in der man-page es heißt: "Länge der Sendung in HHMM".


    Ist das bekannt?

    PS: das anlegen/editieren eines neuen VDRs ist immer noch fehlerhaft. Ich kann immer noch mehrere VDR mit der gleichen IP Adresse anlegen.

    Die Liste mit den ganzen VDRs habe ich jetzt radikal vereinfacht. Das Feld <name> existiert nicht mehr und es kann nur noch einen Eintrag pro VDR geben. Mir fällt auch kein Grund ein, warum man mehrere Einträge zu einem Rechner haben sollte. Damit ist das Problem soweit gelöst (hoffe ich doch).


    Bei den Aufnahmen gibt es einen neuen Button zum Abspielen einer Aufnahme auf dem VDR. Damit man nicht versehentlich auf einem headless-VDR etwas abspielt gibt es vorher noch eine Sicherheitsabfrage.

    Außerdem gibt es jetzt noch die Möglichkeit, nur neue Aufnahmen anzuzeigen. Dafür existiert in der Fußzeile eine Checkbox mit dem namen "nur Neue".


    Das update trägt die Versionsnummer 0.2.2 und kann bei Github heruntergeladen werden.

    Die Beschreibung für eine leere Timerlsite habe ich geändert, so daß es nicht mehr aussieht wie beim Screenshot von jojo61 als gäbe es einen Timer. Die neue Version 0.2.1 kann bei github heruntergeladen werde. Am Funktionsumfang hat sich nichts geändert.


    Noch eine kurze Erklärung wie das mit den Timern abläuft und was es mit dem "fehlendem Ereignis" auf sich hat. Ein Timer wird von der App in zwei Schritten erstellt.


    1. Schritt:

    Nach drücken (oder besser gesagt tippen) auf "Speichern" werden die Daten (Datum, Kanal, Start-,Stopzeit, usw) über die RestfulApi zum VDR geschickt. Als Antwort kommen entweder die Timerdaten zurück oder eine Fehlermeldung. Im Logfile auf dem VDR sieht das z.B. so aus:

    Code
    Feb 16 14:48:23 vdrserv3 vdr: [13619] restfulapi: JSON parsed successfully: yes
    Feb 16 14:48:23 vdrserv3 vdr: [13619] restfulapi: /0:S19.2E-1-1019-10301:2022-02-16:1448:1548:50:99:test:/
    Feb 16 14:48:23 vdrserv3 vdr: [13619] restfulapi: JSON parsed successfully: yes
    Feb 16 14:48:23 vdrserv3 vdr: [13619] timer 0 (1 1448-1548 'test') set to event Mi. 16.02.2022 15:10-15:13 (VPS: 16.02. 15:10) 'Tagesschau'
    Feb 16 14:48:23 vdrserv3 vdr: [13619] restfulapi: timer created!

    Die App sollte jetzt den Timer mit den Aufnahmedaten (Datum, Kanal, Dateiname usw.) anzeigen. So wie es auch im OSD der Fall ist. Allerdings erhalte ich kein passendes Ereignis zum Timer zurück. Die RestfulApi liefert hier nichts dazu (event_id = -1 in dem Fall). Deswegen steht überall "fehlendes Ereignis". Dann kommt der 2. Schritt


    2.Schritt:

    Wurde der Timer erfolgreich erstellt ruft die App nochmals den Timer ab, um an die event_id zu gelangen. Hat sie einen positiven Wert ruft die App nochmals über die API das Ereignis ab und aktualisiert dann die Timerliste. Jetzt sollte auch das Ereignis auftauchen, ansonsten bleibt es bei "fehlendes Ereignis".


    Warum steht bei Programmstart bei allen Timern "fehlendes Ereignis"?

    Der Grund ist ganz einfach: Die Ereignisse können nur Timer für Timer abgerufen werden. Um nicht ständig den VDR zu belasten habe ich darauf verzichtet, die Timerliste bei Aufruf ständig zu aktualisieren und stattdessen den Button "Aktualisieren" eingefügt.

    Es muss also ein lokales Problem auf der App sein das er den Json return nicht richtig auswertet.

    Vielleicht kommen wir mit den obigen Infos dem Problem auf die Spur, warum das bei dir mit den Timern nicht so gut funktioniert.

    Das Bild zeigt, daß es keinen Timer gibt. Da muß ich noch die Anzeige verbessern.


    Ich kann es leider nicht nachvollziehen. Wenn ich einen Timer anlege klappt das immer, egal ob direkt aus dem EPG heraus oder über die Timerliste mit "Neuen Timer anlegen". Bei einem Fehler kommt normalerweise von der RestfulApi eine Meldung, die direkt ausgegeben wird. Existiert denn ein Timer auf dem VDR? Laut JSON-Ausgabe ist das nicht der Fall. Kannst du das reproduzieren?


    Bei dem obigen Timer kannst du versuchen, ihn zu löschen. Es sollte dann eine Fehlrmeldung zurückkommen, das die timer_id nicht gefunden wurde. Diese Meldung stammt dann von der API.

    Das kenne ich so gar nicht. Wenn ein neuer Timer angelegt wird holt die App anschließend das Ereignis dazu, was ja zuerst geklappt hat. Was heißt "nochmal ansehen" genau? Kommt der Titel wieder, wenn in der Timerübersicht auf "Aktualisieren" gedrückt wird?


    Wie sieht die JSON-Ausgabe der Timer aus? http://server:port/timers.json. Steht da bei dem obigen Timer im Feld event_id eine -1 oder eine größere positive Zahl?

    Hi rbrt,

    weiß Du zufällig auch, wie sich der aktuelle Kanal abfragen lässt, oder bei einer Wiedergabe den Namen der Aufnahme?

    Interessant wäre auch der Fortschritt der Sendung bzw. der Wiedergabe.


    seahawk1986 hat ja schon alles dazu geschrieben. Ich habe immer die JSON-Ausgabe im Browser studiert und daraus meine Schlüsse gezogen. Die Fortschrittsbalken habe ich genauso realisiert wie es seahawk1986 vorgeschlagen hat. ^^


    Den Sourcecode von RestfulApi habe ich mir natürlich auch immer wieder angesehen. Leider reichen meine Kenntnisse nicht aus, um da durchzublicken. Es gelang mir nicht mal herauszufinden, warum an manchen Stellen die Umlaute nicht korrekt erscheinen. ;(

    Es gibt Neuigkeiten. Die App habe ich geändert und ein paar Anregungen eingebaut:


    • In der Kanalliste kann jetzt auch die EPG-Ansicht aufgerufen werden.
    • In der EPG-Übersicht kann auf einen Kanal umgeschaltet werden
    • Das Verhalten der Timerliste hat sich etwas geändert. Die Ereignisse zu den Timern werden nicht mehr automatisch abgerufen, sondern nur noch über den Button Aktualisieren.
    • Die Timeouts habe ich komplett entfernt. Auch bei sehr großen Aufnahmelisten sollte kein Timeout mehr auftauchen. Es sei denn, ein Netzwerkfehler tritt auf.


    Außerdem habe ich angefangen auf Github eine Seite einzurichten. Dort kann unter Releases die aktuelle Version heruntergeladen werden. Den Link habe ich auch im ersten Artikel geändert.

    Eine andere Zeit ändert definitiv die timer_id. Darin findet sich u.a. die Start/Stopzeit. Ich war da ziemlich verzweifelt und habe es so gelöst: Die RestfulApi gibt glücklicherweise den neuen Timer zurück, soweit ich mich erinnere aber unvollständig. irgendwas fehlte da immer. Mit der zurückgegebenen timer_id konnte ich aber herausfinden, ob es ein "neuer" Timer ist und habe dann den Timer nochmals geholt. Es gibt ja dafür extra einen Aufruf (http://url/timers/timerid.json)

    Falls es Fragen zum RestfulApi gibt bin ich gerne behilflich. Ich habe mich wegen meiner App damit ausführlich beschäftigt und viel durch Probieren herausgefunden, was nicht unbedingt gleich ersichtlich ist:


    • Eine fehlende timer_id bedeutet neuer Timer
    • Aktiv/Inaktiv/VPS etc. wird durch das Flagfeld gesetzt und bitweise interpretiert. 0/1 = inaktiv/aktiv, 4 = vps.
    • Die timer_id änderst sich nahezu bei jeder Änderung eines Parameters


    rbrt

    Danke, klappt. Nur eine kleine Frage noch: ist es irgendwo möglich, das Timeout (lange Liste der Aufnahmen) zu konfigurieren?

    Noch nicht. Es war eher als Notausstieg gedacht, damit sich das Programm nicht aufhängt, was bei mir manchmal vorkam. Den Timeout konfigurierbar zu machen hatte ich eh mal vor.


    Damit ich eine Vorstellung bekomme, um wieviel Aufnahmen geht es?

    :wand Das man in der EPG Übersicht auf den Kanal drücken kann hatte ich noch gar nicht rausgefunden :) Dann erübrigt sich mein Wunsch natürlich.


    Die Idee über die Kanalliste das EPG aufzurufen finde ich ganz gut. Das sollte machbar sein.