MagicMirror² v2.8.0 is available! For more information about this release, check out this topic.

[MMM-Dreambox] to connect a Dreambox or a Enigma2 Receiver (like VU or VU+) to MagicMirror and stream stations via omxplayer


  • Module Developer

    Here is my second module.

    Description
    A module to connect a Dreambox or a Enigma2 Receiver (like VU or VU+) to MagicMirror. You can select services of your dreambox and stream them via omxplayer. The module shows some further informations like:

    • model of your dreambox
    • which service is tuned right now / are there active timer
    • epg for the services with its starting time

    Magic-Mirror Module MMM-Dreambox screenshot1

    Download

    Please let me know what you think.

    AxLED



  • @axled I put the IP and WebIf port of my Vu+ Duo², but then… how do I stream something? 😊

    I thought I was supposed to enter some M3U channel IPs or?



  • @AxLed
    I get “Modell: dm7020hd - dezeit läuft: (RTL7 HD)”, meaning that I did something right, but nothing streams; just a black box.
    Little Typo there, but German is difficult 🙂
    The bRef and sRef give output in the browser, so that seems okay.

    When I use port 80, the MM log shows:

    0|mm  | Whoops! There was an uncaught exception...
    0|mm  | MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
    0|mm  | If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues
    0|mm  | TypeError: Cannot read property 'code' of null
    0|mm  |     at Request._callback (/home/pi/MagicMirror/modules/MMM-Dreambox/node_helper.js:110:36)
    0|mm  |     at Request.self.callback (/home/pi/MagicMirror/node_modules/request/request.js:185:22)
    0|mm  |     at emitTwo (events.js:126:13)
    0|mm  |     at Request.emit (events.js:214:7)
    0|mm  |     at Request. (/home/pi/MagicMirror/node_modules/request/request.js:1161:10)
    0|mm  |     at emitOne (events.js:116:13)
    0|mm  |     at Request.emit (events.js:211:7)
    0|mm  |     at IncomingMessage. (/home/pi/MagicMirror/node_modules/request/request.js:1083:12)
    0|mm  |     at Object.onceWrapper (events.js:313:30)
    0|mm  |     at emitNone (events.js:111:20)
    

    Without port (URL only) I get:

    0|mm  | Starting node helper for: MMM-Dreambox
    

    But I do not see any stream nor a list of stations.

    pm2 list shows that no omxplayer stream is active.

    Can you tell me which parameters in the config are the most important and what I should see when I open those ‘personal’ URL’s in a browser ?


  • Module Developer

    @cr4z33 said in [MMM-Dreambox] to connect a Dreambox or a Enigma2 Receiver (like VU or VU+) to MagicMirror and stream stations via omxplayer:

    @axled I put the IP and WebIf port of my Vu+ Duo², but then… how do I stream something?
    I thought I was supposed to enter some M3U channel IPs or?

    @Cr4z33
    In my case (Dreambox DM800se) i just entered the IP-Adress without port. You can crosscheck this with your browser: are you able to reach the webfrontend of your receiver with the IP-Adress you entered?

    The module works as follows (very short description): It reads the xml file of .../web/getallservices, build a list of the services and stations. The command DB-PLAY passes the selectede2servicereference to omxplayer.

    AxLED


  • Module Developer

    1. @evroom
    Thanks for your logs, i fixed the errorhandling and that typo.
    Please do a git pull now you should get detailed errors shown on the module in MM.

    2. How the module works (in the background).
    2.1 apiabout (About):
    Samplelink: http://dm800se.fritz.box/web/about
    I am reading two values, the model and what service is running (can be a station or playing a recorded movie).
    0_1546019571247_about.gif

    2.2 apiservices (Services):
    Samplelink: http://dm800se.fritz.box/web/getallservices
    I am reading all services (stations) of the receiver.
    Important: The part 1%3A7%3A1%3A0%3A0%3A0%3A0%3A0%3A0%3A0%3AFROM%20BOUQUET%20%22userbouquet.favourites.tv%22%20ORDER%20BY%20bouquet(your string might/will look different) is also needed for the parameters in config.js (apiServicelistplayable and apiepgnow).
    Sample:
    apiServicelistplayable: http://dm800se.fritz.box/web/servicelistplayable?sRef=1%3A7%3A1%3A0%3A0%3A0%3A0%3A0%3A0%3A0%3AFROM BOUQUET "userbouquet.favourites.tv" ORDER BY bouquet
    apiepgnow: http://dm800se.fritz.box/web/epgnow?bRef=1%3A7%3A1%3A0%3A0%3A0%3A0%3A0%3A0%3A0%3AFROM BOUQUET "userbouquet.favourites.tv" ORDER BY bouquet
    0_1546019759781_getallservices.gif

    3. apiTimerlist (Timerlist):
    Samplelink: http://dm800se.fritz.box/web/timerlist
    I am reading if any timers are active, so i can show it in the module.
    0_1546020081812_timerlist.gif

    4. apiServicelistplayable (Servicelistplayable):
    Samplelink: http://dm800se.fritz.box/web/servicelistplayable?sRef=1%3A7%3A1%3A0%3A0%3A0%3A0%3A0%3A0%3A0%3AFROM BOUQUET "userbouquet.favourites.tv" ORDER BY bouquet
    I am reading which stations are on the same bouquet, this is important, if any active timers are running. As timers have priority. All stations with the value false will be shown in a different css-style (gray and italic).
    Important: Check the following part with the one you get from http://dm800se.fritz.box/web/getallservices 1%3A7%3A1%3A0%3A0%3A0%3A0%3A0%3A0%3A0%3AFROM%20BOUQUET%20%22userbouquet.favourites.tv%22%20ORDER%20BY%20bouquet(your string might/will look different).
    0_1546020292241_serviceplayable.gif
    5. apiepgnow (Epgnow):
    Samplelink: http://dm800se.fritz.box/web/epgnow?bRef=1%3A7%3A1%3A0%3A0%3A0%3A0%3A0%3A0%3A0%3AFROM BOUQUET "userbouquet.favourites.tv" ORDER BY bouquet
    I am reading the epg of my favorites (same source as servicelist), so i can write the beginning time and tite of the actual running program.
    Important: Check the following part with the one you get from http://dm800se.fritz.box/web/getallservices 1%3A7%3A1%3A0%3A0%3A0%3A0%3A0%3A0%3A0%3AFROM%20BOUQUET%20%22userbouquet.favourites.tv%22%20ORDER%20BY%20bouquet(your string might/will look different).
    0_1546019734449_epgnow.gif

    Maybe this helps to find some configuration problems for the right link parameters.

    Regards

    AxLED



  • @AxLed
    So I guess we need to get a list displayed first, before sending the DB-PLAY command, right ?
    I have set “apiBase: ‘http://192.168.178.28’,” in the config, but it only shows the channel that is currently running on my box.
    No error in pm2 logs, just the “Starting node helper for: MMM-Dreambox”.
    The URL http://192.168.178.28/web/getallservices gives a list in XML style.

    (the code button </> does not work here)

    This XML file does not appear to have any style information associated with it. The document tree is shown below.

    1:7:1:0:0:0:0:0:0:0:FROM BOUQUET “userbouquet.favourites.tv” ORDER BY bouquet
    etc, etc, etc.


  • Module Developer

    @evroom
    to your 1st question: yes we need a list displayed and selected one entry first, otherwise DB-PLAY wont work.

    Tipp: To insert xml code in the forum, you have to replace < by (& # 6 0 ; ) without spaces and > by (& # 6 2 ; ) without spaces.

    to your 2nd question: that http://192.168.178.28/web/getallservices is returning an xml file (if viewed in browser) is good.

    1. Question: Did you make a git pull, as i had some error in my errorhandling. If not, do git pull in the MMM-Dreambox folder first.

    2. Question: What is the xml showing under

    <e2timerlist>
     <e2timer>
      <e2servicereference></e2servicereference>
    
    1. Question: Same xml file, are there entries following (like my screenshot above?):
    <e2servicelist>
     <e2service>
    

    AxLED



  • @AxLed

    1. Just did. No (visible) changes.

    2. All my timed programs. Exactly like in your example.

    3.All my bouquets with the services in it. Like in your example.

    We have simular Dreamboxes, so simular output.
    I have 3 bouquets (Favourites (TV), Nederland (TV), Duitsland (TV))
    I use WebControl Dreambox (via the DM IP) to control the box.

    Unfortunate your tip with (& # 6 0 ; ) and (& # 6 2 ; ) is not working for me; it deletes everything between < and >:

    (<)

    (>)

    That is a major flaw of this forum, besides not really being iPad friendly.


  • Module Developer

    Is the module now working or do you still have issues?
    AxLED



  • Same issues.
    Do not see any services list, so can not play one.
    All apiXXX settings in the config file work when pasted in the browser.
    XML output is simular like yours.
    I only left apizap empty.

    Perhaps you could output some ‘landmarks’ in the MM log, like:
    About - okay / not okay
    Services - okay / not okay
    EPGNow - okay / not okay
    Zap - okay / not okay
    Servicelistplayable - okay / not okay
    omxplayer started