Web Interface suggestion

  • Genauso geht es mir auf Arbeit auch: Es werden fancy GUIs gemalt und dann, am Schluss wird noch geklärt, ob das überhaupt möglich ist. Ob sich die Daten auch performant beziehen lassen.

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

    • Offizieller Beitrag

    Websocket + JSON wäre schon sinnvoll wenn man eh schon so viel neu macht. Man muss halt klein anfangen. Dann ist es auch nicht direkt unfassbar viel (immer noch genug)

    Ich kann auch immer helfen, nur kann ich nicht alles selbst bauen.


    EN:


    Websocket & JSON would be nice, too. Considering the amount of Work for a new frontend a proper backend is kind mandatory.

    I can Help/Support but currently I cant do all the work

  • Ich bin nicht wirklich der WebEntwickler und schon gar nicht der Grafiker. Idealerweise würde die e2-JSONAPI erweitert, oder? Wenn du bei Vue schaust, würde Axion für den Aufruf der API zur Anwendung kommen.

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Das Vue Framework ist wirkich sehr schlank...


    dre

    mit axion und Vue.js klappt der Aufruf einer JSON APi ganz gut( habe es gerade getestet)


    Reichi

    die DreamOS WebAPI wird nur in xml ausgegeben ? Oder ist die Ausgabe im JSON Format auch möglich?

  • Installier dir mal enigma2-plugin-systemplugins-jsonapi. Da kommt ein json zurück. Wenn du hier nach jsonapi suchst, findest du sogar ein Beispiel. Die API müsste fürs webif noch sehr stark ausgebaut werden

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Kann mir jemand sagen wie ich das das per Browser aufrufen kann ?


    Code
    curl -s -XPOST http://dm900.fritz.box/api/call -H 'Content-type: application/json' --data-binary '{"method": "enigma2.systeminfo.modelname", "id": 100}'
  • Im Browser wird schwierig, da du dort nur die URL eingeben kannst und das immer GET sind. Ich hab die Aufrufe bei mir über twisted abgesetzt. Da kann ich sagen, dass der Aufruf mit POST gemacht werden soll. Den data-binary-Teil als postdata. Und zwar den dict über json.dump zu nem JSONObject konvertiert.


    Bei Axios scheint das so zu gehen:

    Code
    axios.post('/user', {    firstName: 'Fred',    lastName: 'Flintstone'  })  .then(function (response) {    console.log(response);  })  .catch(function (error) {    console.log(error);  });

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Einfach mal so quick & dirty eingebaut. Der Modelname wird angezeigt. Aber z.B. error-Handling ist noch nicht sauber drin. Auch SessionId habe ich auf 0 gesetzt.

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Hi,


    mit Postman klappte der Aufruf der JSON APi schon gestern ohne Probleme.

    Mit axion und vue.js bekommen ich:


    Code
    Access to XMLHttpRequest at 'http://dm900.fritz.box/api/call' from origin 'null' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

    Ich weiss nicht wie ich das umgehen kann...




  • So klappt es nicht , was mache ich hier falsch ?

  • das ist wegen Cross-origin policy. Ich führe den Aufruf direkt im WebIf der Dreambox aus.

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Hi, so weit bin ich schon gekommen , dachte man kann es evtl. umgehen ?

    Wie rufst du es im WebIF der Dreambox genau auf ? Meine die index.html ( mit demDreambox Browser)?

    Ich stehe aktuell auf der Leitung..

  • Ich hab mir vue.js und axion.min.js heruntergeladen und nach web-data/lib kopiert (im WebInterface-Ordner). Dann hab ich einfach in der index.html die beiden libs includiert. Meinen Code hab ich dann einfach eingefügt am Ende. Wie gesagt, q&d. Dann ruf ich das WebInterface am PC auf. Dann bin ich nicht cross-site.


    Im Schluss sollte das WebInterface ja dann ohne Anbindung ans Internet auch funktionieren. Deshalb hab ich die libs heruntergeladen. Und der Aufruf der API wird ja auch immer same-origin sein.


    Noch ein Zusatz: du kannst deine index.html auch auf die Box kopieren in web-data/tpl/default und dann aufrufen. Sie darf dann natürlich nicht mehr index.html heissen

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

    Einmal editiert, zuletzt von dre () aus folgendem Grund: Ein Beitrag von dre mit diesem Beitrag zusammengefügt.

  • Ok now we sparked life into this issue :smiling_face:


    But please please could we stick to English language?? and yes i know that Dream Multimedia is an German company but we are many users/developers like me, who are not speaking or writeing in German



    And the Web Interface would be a fun project to work with and make more modern, for the moment i have adapted the OpenSource WebIf to my Dreambox One UltraHD

    but thats just a temporary solution. But what i get is an docked remote and a much faster user interface with no flicker and wating for screenshots to update.


    So there is possible to cerate soemthing amazing :smiling_face:

    Everything in life that's any fun is either immoral, illegal or fattening