Fragen übers Webinterface

  • Ich suche mir die ganzen Befehle aus dem Internet zusammen, konnte bisher noch keine Seite finden, die einen kompletten Befehlssatz beinhaltet.
    Hast du einen Tip für mich?

    Aber klar. :smiling_face:


    Dazu schaust Du Dir die Liste der Dateien am Besten an, die für die XML Kommunikation zuständig ist.
    Entweder im Source oder per Browser auf Schwerkraft: http://schwerkraft.elitedvb.ne…/?cvsroot=enigma2-plugins


    Beispiel: webinterface/src/web/movielist.xml


    --> jetzt schaust Du Dir da mal die Datei an: das siehst Du 2 Sachen, die wichtig sind für dich:


    1) Die Parameter, die Du übergeben kannst
    --> id="dirname,tag"


    d.h. Du kannst einen dirnamen und/oder einen Tag übergeben...


    --> http:// dreambox/web/movielist?dirname=/hdd/irgend_ein_directory


    2) Du siehst in der Datei auch den Aufbau der XML-Datei, die Du zurückgeliefert bekommst


    also z.b.
    <e2servicereference>, <e2title> usw. usw.


    Noch ein Beispiel: /webinterface/src/web/epgsearch.xml


    --> Parameter: <e2eventlist><e2:element source="EpgSearch" id="search"><e2:convert type="web:ListFiller" >
    --> search
    --> http:/ /dreambox/web/epgsearch?search=IchSucheWas


    --> Anwort: XML mit Tags
    <e2event>
    <e2eventid>,
    <e2eventstart>
    usw. usw.



    --> in webinterface/src/web/ findest Du also alles, was Du benötigst, wenn Du eine XML-Kommunikation mit der Dreambox herstellen willst. :smiling_face:

    • Offizieller Beitrag

    Tipp von meiner Seite (ich weiß, eine API-Doku ist dringen notwendig...)...


    Du kannst Firefox mit der Erweiterung Firebug nutzen um zu sehen welche Anfragen das Webinterface standardmäßig bei welchen Aktionen so stellt.
    Ich nutze diese Kombination um das Webinterface zu entwicklen ;).
    Wenn du halbwegs konkrete Fragen hast kann ich dir gerne weiterhelfen (aber bitte nicht per PN... einfach im Forum fragen).

  • Vielen Dank an Dr.Best und Reichi!
    Das war wirklich sehr hilfreich und eröffnet mir völlig neue Möglichkeiten.


    Einige Fragen konnte ich mir schon selbst beantworten.


    Andere aber leider nicht:


    Gibt es bei enigma2 eine Möglichkeit alle TV-Sender auszulesen?


    bei enigma1 verwende ich folgendes


    Code
    /cgi-bin/getServices?ref=1:15:fffffffe:12:ffffffff:0:0:0:0:0:


    Das liefert mir alle TV-Sender inklusive Provider und Sat-Position:

    Code
    ...1:0:1:8:2:85:c00000:0:0:0:;Sky Comedy;SKY;1921:0:1:9:2:85:c00000:0:0:0:;Sky Action;SKY;1921:0:1:a:2:85:c00000:0:0:0:;Sky Cinema;SKY;192...



    bei enigma2 verwende ich z.Zt. :

    Code
    /web/getservices?sRef=1:7:1:0:0:0:0:0:0:0:type == 1 ORDER BY name


    für SD-Sender


    und

    Code
    /web/getservices?sRef=1:7:1:0:0:0:0:0:0:0:type == 25 ORDER BY name


    für HD-Sender


    Das xml beinhaltet aber keine Provider und Sat-Positionen. Deswegen suche ich dringend nach einer anderen Möglichkeit.

    • Offizieller Beitrag

    Hi,


    das sind aber nicht die richtigen Serviceferences ;).


    Folgend der entsprechende Ausschnitt aus dem WebInterface:

    Code
    var bouquetsTv = '1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 195) || (type == 25) FROM BOUQUET "bouquets.tv" ORDER BY bouquet';
    var bouquetsRadio = '1:7:2:0:0:0:0:0:0:0:(type == 2)FROM BOUQUET "bouquets.radio" ORDER BY bouquet';
    var providerTv = '1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 195) || (type == 25) FROM PROVIDERS ORDER BY name';
    var providerRadio ='1:7:2:0:0:0:0:0:0:0:(type == 2) FROM PROVIDERS ORDER BY name';
    var allTv = '1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 195) || (type == 25) ORDER BY name';
    var allRadio = '1:7:2:0:0:0:0:0:0:0:(type == 2) ORDER BY name';



    Satelliten funktionieren derzeit über das Webinterface leider nicht, das ist aber zumindest schon angedacht (ich möchte hier gerne auch auf ein entsprechendes Interface auf enigma2-Seite warten...).


    Bei weiteren Fragen, nur keine Scheu :).

  • Zitat

    Hi, das sind aber nicht die richtigen Serviceferences ;).

    Was meinst du damit?



    Zitat

    Satelliten funktionieren derzeit über das Webinterface leider nicht, das ist aber zumindest schon angedacht (ich möchte hier gerne auch auf ein entsprechendes Interface auf enigma2-Seite warten...).

    Ist es so "richtig", wie ich zur Zeit die Sender abfrage, oder gibt es noch andere Möglichkeiten?

  • ich hab doch die "richtigen" Werte mit gepostet!!! Die Variablennamen sollten ja sagen was da dann kommen wird...

    Ich bin verwirrt.



    Code
    /web/getservices?sRef=1:7:1:0:0:0:0:0:0:0:type == 1 ORDER BY name



    entspricht doch:

    Code
    var allTv = '1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 195) || (type == 25) ORDER BY name';


    Was habe ich übersehen?


    Mir ist auch nicht klar, welcher type, was bewirkt. Gibt es hierfür eine Beschreibung.
    Bisher probiere ich es einfach aus, was nicht wirklich Effektiv ist.


    Bei mir sieht es jedenfalls so aus:


    type == 1
    da kommen die SD Sender



    type == 25
    da kommen die HD Sender



    Anscheinend tappe ich etwas im dunklen. Bitte klär mich auf.

    • Offizieller Beitrag

    also:


    zuerst holst du z.B. eine Liste aller Provider für TV, TV Servicetypen sind 1, 17, 195 und 25 (was jetzt da genau was ist weiß ich auch nicht ausm Kopf, aber 25 müsste tatsächlich HD sein):


    Code
    http://dreambox/web/getservices?sRef='1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 195) || (type == 25) FROM PROVIDERS ORDER BY name';


    Bei meiner Box (Kabel Deutschland München) sieht das Ergebnis dann wie folgt aus:



    Wenn du jetzt die Liste aller Kanäle für das Bouquet "ZDFvision" (das letzte in der Liste) willst benötigst du einen 2. request:

    Code
    http://dreambox/web/getservices?sRef=1:7:0:0:0:0:0:0:0:0:(provider == "ZDFvision") &amp;&amp; (type == 1) || (type == 17) || (type == 195) || (type == 25) ORDER BY name:ZDFvision


    Und als Ergebnis kommt zurück:



    Um die Last für die Box möglichst niedrig zu halten sollte man immer nur das Abrufen was man auch wirklich gerade benötigt (also nicht bei Programmstart sämtliche Bouquets, Provider und alle zugehörigen Kanäle einlesen ;))

  • Zitat

    TV Servicetypen sind 1, 17, 195 und 25 (was jetzt da genau was ist weiß ich auch nicht ausm Kopf, aber 25 müsste tatsächlich HD sein):

    Wo kann ich das nachlesen?



    Zitat

    Um die Last für die Box möglichst niedrig zu halten sollte man immer nur das Abrufen was man auch wirklich gerade benötigt (also nicht bei Programmstart sämtliche Bouquets, Provider und alle zugehörigen Kanäle einlesen

    Ich verstehe. Für den Bouquet-Editor muss ich aber natürlich genau das machen.
    Bei enigma1 habe ich das bisher auch immer so, ohne Probleme, gemacht.


    Was schlägst du als Alternative vor?

    • Offizieller Beitrag

    OK, dafür gibt es:

    Code
    /web/getallservices?sRef=1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 195) || (type == 25) FROM PROVIDERS ORDER BY name


    getallservices nimmt die Referenz auf eine Liste von Bouquets entgegen und liefert dann alle Bouquets inklusive aller enthaltenen Sender zurück.


    Oben rufe ich zum Beispiel alle Provider ab und bekomme dann eine Liste aller Provider inklusive aller zu den jeweiligen Providern gehörenden Kanäle.
    Das funktioniert natürlich auch genauso für Bouquets (am besten einfach mal ausprobieren).

  • Erstmal vielen Dank für deine Geduld mit mir.


    Es funktioniert soweit, aber ich habe mich jetzt trotzdem entschieden für das Einlesen der services nicht mehr das WebIF zu nutzen, sondern die 'lamedb' direkt zu verabreiten.


    und hier kommt auch schon die nächste Frage:


    Kann man aus einem service-Eintrag direkt auf die Satelliten-Position schließen, oder muss man immer den Umweg über die Transponder machen.


    Beispiel 1: (Eintrag des ZDF auf Astra.)
    6d66:00c00000:0437:0001:1:23748
    ZDF
    c:00006e,c:010078,c:020082,c:03006e,p:ZDFvision


    00c00000 => c0 = 192 (dezimal)




    Beispiel 2: (Eintrag des ZDF auf Hotbird)


    1f4b:00820000:319c:013e:1:22252
    ZDF
    c:00023a,c:01023b,c:02023c,c:03023a,p:T-Systems


    00820000 => 82 = 130 (dezimal)




    Sind das nur Zufälle oder kann man sich darauf verlassen?

  • bin ich hier richtig ???
    gibt es auch einen parameter für befehle, die nicht mit nem return-code im browser kommen?
    wenn ich mir am pc nen button programmieren will mit samurize ala "http://dreambox/web/remotecontrol?command=400" timeshiftstart
    geht das auch, OHNE das im browser der return-code gezeigt wird?
    also quasi "silent"[MSIE_newline_end ]

  • Hallo Reichi,


    danke für die Links. Einige Fragen hätte ich trotzdem noch...


    1) Wo finde ich die Parameter für den Befehl /web/mediaplayercmd?command= ???


    2) Welche Parameter übergibt man für /web/recordnow/recordnow= ??? Etwa eine voreingestellte Aufnahmedauer ?


    3) Wie kann ich Unterkanäle z. B. von Sky Sport Info anwählen? Die Liste der verfügbaren Unterkanäle habe ich parat, mit Service Reference.


    4) Wenn ich automatische Updates aktiviere, bekomme ich zwar sehr schön das Feedback geliefert, aber die Box läßt sich nicht mehr bedienen. Reagiert auf keinen /web/... Befehl mehr. Sowohl in meinem Inerface unter Visual Basic als auch auf meinem Home Automation Control System. Woran kann das liegen?


    Vielen 'Dank im vorraus für Deine Hilfe. Bin halt neu bei der Dreambox :frowning_face:


    Regards,
    Wolfgangh