[Announce] instantVdrRemote 0.1 - Konfigurierbare Fernbedienung für Tablets und Smartphones

  • instantVdrRemote 0.1 ist eine frei konfigurierbare virtuelle VDR-Fernbedienung für Tablets, Smartphones und sonstige Web-Browser. Sie sollte auf allen Geräten laufen, die jQuery Mobile unterstützt.



    • funktioniert gleichermaßen auf Touch-basierten Geräten und auf Geräten, an denen Mäuse hängen, passt sich an schmale und breite Screengrößen an
    • benötigt zwingend das VDR-Plugin restfulapi (bei yaVDR vorinstalliert), kommuniziert damit via HTTP
    • leichtgewichtige WebAPP, basiert auf HTML, Javascript, jQuery Mobile
    • Die "App" besteht nur aus einer einzigen HTML-Seite, die alles nötige nachlädt (jQuery und jQuery Mobile), man kann aber die Frameworks auch runterladen und lokal vorhalten und sich damit unabhängig machen.
    • Minimaler Installationsaufwand: Live-Demo ohne Installation hier. Hat man sich die Datei lokal runtergeladen, funktioniert die App auf einem Desktop-PC innerhalb von Desktop-Browsern sogar ohne Web-Server (einfach Doppelklick auf index.html oder die Datei in ein Browserfenster reinziehen). Es empfiehlt sich aber letztlich, die Datei auf einem Webserver im lokalen Netz abzulegen, damit man von allen Smartphones, Tablets, Laptops im Haushalt über eine URI darauf zugreifen kann. (Weiter unten im Thread ist eine Erklärung, wie man die Datei auf einer yaVDR-Installation platziert.)
    • komplett konfigurierbar über JSON-Strukturen im Quelltext (Button-Anordnung, relative Button-Breite, Button-Beschriftung, Button-Design)
    • Optik änderbar mit vorgefertigten oder selbstgemachten jQuery-Mobile-Themes: http://jquerymobile.com/resources/#Themes / http://jquerymobile.com/themeroller/


    Die "App" enthält in der Grundkonfiguration alle denkbaren Tasten, die über restfulapi bereitgestellt werden, daher ist sie in der Grundkonfiguration sicherlich nicht besonders nutzerfreundlich


    Einladung an alle: Wer baut die cleverste Fernbedienung auf Basis von instantVdrRemote?


    Bekannte Probleme:

    • Touch-Events sind je nach Gerät zu empfindlich oder unempfindlich, hier sind Praxiserfahrungen wichtig, das Eventing kann angepasst werden
    • Prüfen, ob Events mehrfach abgeschickt werden, Repeat-Rate ist undefiniert


    Im Git behobene Probleme seit erster Veröffentlichung des Codes:

    • Bug bzgl. Zeilenposition von inflateRemote(),
    • Taste "Next" hat kein Icon.


    Have fun!


    Bezugsquellen


    Viele Grüße
    hepi

  • Hallo hepi, sieht toll aus.


    Bei mir funktioniert es aber nur, wenn ich den VDR nicht fest in die html Datei eintrage.
    Ist er eingetragen, läd nur header und footer. inflateRemote(); scheint nicht aufgerufen zu werden. Fügt man ein "else inflateRemote();" in Zeile 262 ein, klappts.


    Grüße, Jan

  • Hallo Jan,

    Bei mir funktioniert es aber nur, wenn ich den VDR nicht fest in die html Datei eintrage.
    Ist er eingetragen, läd nur header und footer. inflateRemote(); scheint nicht aufgerufen zu werden. Fügt man ein "else inflateRemote();" in Zeile 262 ein, klappts.

    Du hast vollkommen Recht. Der Aufruf von inflateRemote(); ist eigentlich unabhängig davon, ob der Host bekannt oder unbekannt ist, kann also einfach auch schon direkt nach $(document).ready() kommen, zum Beispiel in Zeile 257 oder so.


    EDIT: Fehler ist behoben.

    Beim nächsten "Release" baue ich die Korrektur ein:

    Code
    $(document).ready(function(){
    
    
            inflateRemote();
    
    
            if ( typeof(host) === "undefined" || host === ""){
                $("#popupHost").popup("open");
            }
    ...


    Viele Grüße
    hepi

  • erster versuch auf dem Laptop super, auf dem Blackberry kränkelt es noch etwas obwohl jQuery Mobile egtl unterstützt wird, ich check erstmal das Android meiner Frau :mua


    Christian

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • keine Installation nötig, funktioniert mit oder ohne Web-Server im lokalen Netz (wobei es sich empfiehlt, die Datei auf einem lokalen Webserver abzulegen)


    kann man das nicht mit einfachen Mitteln auf den 0.5 Webserver auflegen, muss ja nicht als index.html sein?


    Christian

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • kann man das nicht mit einfachen Mitteln auf den 0.5 Webserver auflegen, muss ja nicht als index.html sein?


    Christian


    Ja, das geht, aber hier kommt jetzt nur ein Quick'n'Dirty Howto. Wenn jemand fragt, ich habe nix gesagt:
    Auf dem yaVDR-Rechner im Verzeichnis /usr/lib/yavdrweb/static die index.html ablegen (ggf. umbenennen oder neuen Ordner anlegen und da reinpacken).
    Danach kann man die Datei aufrufen mit: http://[meinLokalerVDR]/static/index.html (bzw. im Unterordner davon)
    Achtung: Das ist nicht unbedingt update-sicher! Vielleicht kann man mit einem Symlink arbeiten?


    Diese Fernbedienung ist aber momentan für mich nur ein kleiner Teil eines Großprojektes, an dem ich arbeite. Wäre ich eitel, würde ich das vergleichen mit einem Musiker, der aus seinem neuen Album eine erste Single auskoppelt. Ich bin aber nicht eitel und daher würde ich gar nicht auf so eine Idee kommen. :rolleyes: Weil es aber ein Kleinprojekt ist, gebe ich mir momentan keine Mühe, es in yaVDR sorgfältig einzubetten.


    Gruß
    hepi

  • Achtung: Das ist nicht unbedingt update-sicher! Vielleicht kann man mit einem Symlink arbeiten?


    Man kann die static/index.html über Templates erweitern oder verändern, dann wird es Update-sicher.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • prima, jetzt gehts auch mit http://ckone/static/instantVdrRemote/index.html auf dem Blackberry.


    Christian

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • Noch zwei Dinge:


    1) SSL-Webserver


    Wenn man daheim auf einem NAS oder auf einem Plug-Computer einen Webserver laufen hat, kann man natürlich die Datei auch dort ablegen und ggf. um einen Aufruf eines PHP-Scripts für WOL ergänzen, welches dann auch auf dem Server liegt. Wenn WOL als Feature dabei ist, macht es Sinn, das von der yaVDR-Kiste zu entkoppeln, die eventuell nicht angeschaltet ist.


    Man hat dann im Normalfall zwei Hostnamen für den Webserver: Einen internen und einen externen (dyndns und co.) -am besten via HTTPS. Wenn man nun die Fernbedienung via HTTPS aufruft, kann es vorkommen, dass einige Mobilbrowser die Anzeige der Seite verweigern, wenn die Seite versucht, über HTTP aus dem Internet Resourcen nachzuladen (jQuery). Dann lohnt es sich, die jQuery-Dateien lokal neben die index.html zu legen und einzubinden.


    2) Theming


    Es gibt spezielle jQuery-Mobile-Themes für Android, Blackberry, IOS, Windows Phone usw. Wer neugierig ist, kann ein anderes Theme einbinden: http://jquerymobile.com/resources/#Themes
    Ich habe da mal was ausprobiert, aber so riesengroß waren die Unterschiede nicht, jedenfalls in Bezug auf die Fernbedienung hier, die nur aus Buttons besteht. Witzig ist das Metro-Theme (Windows), welches einfach die Hintergrundfarbe aller Buttons transparent macht, so dass man in den Buttons nur die Hintergrundfarbe des Screens sieht. Macht die Fernbedienung sehr, sehr übersichtlich... :mua


    Hier ist ein Screenshot von einem Android-Theme, das ich ausprobiert habe:

    Das Theme war von hier: https://github.com/jjoe64/jquery-mobile-android-theme


    Gruß
    hepi

  • Hallo hepi,


    danke für die tolle Fernbedienung. Funktioniert hier einwandfrei und macht auch mein HP- Touchpad wieder etwas interessanter.


    Gruß Jan

    1:Dell PoweEdge T20; Xeon E3-1225 v3; 32GB RAM; Proxmox 5.4; MLD 5.4 als VDR-Server; 2 x Cine S2;
    2:Intel NUC i3 Passiv; 4GB RAM; 120GB SSD; easyvdr 3.5 als client; Harmony Hub

    2:Intel NUC i5 Passiv; 4GB RAM; 120GB SSD; easyvdr 3.5 als client; Harmony Hub
    3:Raspberry Pi 3B; MLD

  • Hallo Jan,


    danke für Dein Feedback! Ich muss aber auch nochmal für restfulapi in die Bresche springen:


    Ohne das Plugin vdr-plugin-restfulapi wäre es aber nicht möglich gewesen, diese Fernbedienung als Ein-Datei-Applikation zu realisieren.


    vdr-plugin-restfulapi wurde erstmals im Frühjahr 2011 von Mitgliedern des yaVDR-Teams veröffentlicht. Den ersten Prototypen davon hat gda erstellt, stark ausgebaut wurde das Plugin dann im Anschluss von aelo, mittlerweile hat glaube ich fast jeder im yaVDR-Team mal ein paar Zeilen ergänzt. Ich erwähne das nur noch einmal, weil ich eigentlich nur wenige Projekte kenne, die restfulapi einsetzen. Es ist bei yaVDR standardmäßig aktiv, aber die meisten kommen damit nicht in Berührung. Hierbei erwähnenswert: saman hat für sein interessantes Projekt tcpRemote auch restfulapi benutzt und auch restfulapi durch seine Patches an Funktionalität erweitert.


    Themenwechsel: Welche Icons werden bisher verwendet in der Fernbedienung?
    Standard-Icons von jQuery Mobile: http://jquerymobile.com/demos/…uttons/buttons-icons.html


    Vorteil: Sie sind sehr leicht einzubinden und leicht konfigurierbar. Nachteil: Es fehlen typische Icons für eine Media-Fernbedienung. Wer Lust hat...


    Viele Grüße
    hepi

  • Hallo,


    die Idee und Umsetzung finde toll. :respekt


    Am Theme und der Aufteilung gibt es noch Verbesserungspotential. :versteck


    Themenwechsel: Welche Icons werden bisher verwendet in der Fernbedienung?
    Standard-Icons von jQuery Mobile: http://jquerymobile.com/demos/1.2.1/docs…tons-icons.html


    Vorteil: Sie sind sehr leicht einzubinden und leicht konfigurierbar. Nachteil: Es fehlen typische Icons für eine Media-Fernbedienung. Wer Lust hat...


    Hier gibt es schon ein paar Fertige: http://andymatthews.net/code/j…bile-Icon-Pack/index.html


    Tschüß Frank

  • Habe ein Git-Repository angelegt für die Datei. URLs oben im ersten Posting ergänzt + Download-Link verändert. Fehler mit inflateRemote ist im Git behoben.


    @Frank: Danke für den Icon-Link, die Icons schaue ich mir an! Theme und Aufteilung sind "as is", wer schöner will, muss selber machen. :D Es ist einiges konfigurierbar an der Aufteilung.


    Gruß
    hepi

  • Hallo,


    ich arbeite gerade an Version 0.2 von instantVdrRemote. Warnung: Die zweite Version wird nicht mehr als Ein-Datei-App daherkommen. So reizvoll es auch ist, nur eine Datei zu haben, mit den oben verlinkten Custom-Icons wird es mehr werden. Auch will ich die Konfiguration auslagern in eine eigene Datei, damit es einfacher wartbar wird für den User. Aber wenn man als User auf das Custom-Icon-Pack verzichtet, kann man dann immer noch mit zwei Dateien auskommen.


    Gruß
    hepi

  • Noch etwas zur demnächst kommenden Version 0.2:


    Momentan habe ich ja per Default zehn "User"-Buttons auf der Remote drauf (unten rechts). Es hat aber kaum jemand tatsächlich einen oder mehrere User-Buttons definiert in der keymacros.conf vom VDR. Die meisten werden von dieser Datei noch nie etwas gehört haben. Deshalb sind die User-Buttons Platzverschwendung für die meisten User und werden deshalb an einen separaten Ort verfrachtet. Wer sie braucht, kann sie sich dann an den Ort hin-konfigurieren, wo sie am besten passen. Man muss ihre Caption ja eh manuell umbenennen, damit man weiß, was sie tun.


    Viele Grüße
    hepi

  • Moin!


    Sieht gut aus!
    VolUp/Down und ChanUp/Down würde ich so breit machen, wie beim Navigationskreuz (also dreispaltig) und dafür jeweils zwei (oder besser anderthalb) Zeilen hoch. Und dazwischen dann Mute und ChanPrev übereinander.
    Dann trifft man die besser.


    Ich bin auf das Playback&Cut-Layout gespannt!


    Lars.

  • Es bricht vielleicht ein bisschen mit dem Layout, aber ich würde einen Lautstärkeschieberegler am unteren Rand schick finden. Ich weiß allerdings nicht ob Restful den aktuellen Pegel zurückgibt.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Es bricht vielleicht ein bisschen mit dem Layout, aber ich würde einen Lautstärkeschieberegler am unteren Rand schick finden. Ich weiß allerdings nicht ob Restful den aktuellen Pegel zurückgibt.


    restfulapi kann momentan kein getVol() oder setVol(). Kannst Du es schnell implementieren? :D Ich bräuchte länger dafür.


    Gruß
    hepi

  • restfulapi kann momentan kein getVol() oder setVol(). Kannst Du es schnell implementieren? Ich bräuchte länger dafür.


    Puh, ewig nichts damit gemacht, schnell bestimmt nicht.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

Jetzt mitmachen!

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