Read the statement by Michael Teeuw here.
[MMM-Dreambox] to connect a Dreambox or a Enigma2 Receiver (like VU or VU+) to MagicMirror and stream stations via omxplayer
-
1. @evroom
Thanks for your logs, i fixed the errorhandling and that typo.
Please do agit 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).
2.2 apiservices (Services):
Samplelink: http://dm800se.fritz.box/web/getallservices
I am reading all services (stations) of the receiver.
Important: The part1%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
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.
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/getallservices1%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).
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/getallservices1%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).
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. -
@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.
-
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. -
Question: What is the xml showing under
<e2timerlist> <e2timer> <e2servicereference></e2servicereference>
- Question: Same xml file, are there entries following (like my screenshot above?):
<e2servicelist> <e2service>
AxLED
-
-
-
Just did. No (visible) changes.
-
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.
-
-
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 -
- You can try another
git pull
of the master branch and test, as I found some more errors in my code (if not all of the 5 requests are successful). - You can try to delete the MMM-Dreambox folder an do
git clone --branch debug https://github.com/Ax-LED/MMM-Dreambox.git
.
I made this debug branch for you, with a different node_helper.js, which no shows some ‘landmarks’ in PM2 logs.
AxLED
- You can try another
-
@axled maybe I am misunderstanding everything, but I need to understand whether it’s just a Dreambox information module or whether I can actually stream into an omxplayer iframe?
If that is what it can do then all I see right now is some information (and by the way in German) about the current channel playing on the VU+:
DREAMBOX
Model Duo² - dezeit läuft: (Rai 3 HD)
Nothing else.
No streaming stuff going on. :smiling_face_with_open_mouth_smiling_eyes:Here’s my module config and yes I use a different port than 80 or 8080.
{ module: 'MMM-Dreambox', header: 'Dreambox', position: 'bottom_right', disabled: false, config: { apiBase: 'http://*.*.*.*:**', omxargs: ' --win 320,180,1600,900 -o both ', refreshInterval: 1000 * 30, //refresh every 30 seconds apiabout: '/web/about', apiservices: '/web/getallservices', apiepgnow: '/web/epgnow?bRef=1%3A7%3A1%3A0%3A0%3A0%3A0%3A0%3A0%3A0%3AFROM%20BOUQUET%20%22userbouquet.favourites.tv%22%20ORDER%20BY%20bouquet', apizap: '/web/zap?sRef=', apiTimerlist: '/web/timerlist', apiServicelistplayable: '/web/servicelistplayable?sRef=1%3A7%3A1%3A0%3A0%3A0%3A0%3A0%3A0%3A0%3AFROM%20BOUQUET%20%22userbouquet.favourites.tv%22%20ORDER%20BY%20bouquet' } },
-
-
Same result. No services list.
-
Same result. No services list. But …
0|mm | Starting node helper for: MMM-Dreambox 0|mm | MMM-Dreambox: 1. Request EPGNOW succeeded. 0|mm | MMM-Dreambox: 2. Request ABOUT succeeded. 0|mm | MMM-Dreambox: 3. Request Services succeeded. 0|mm | MMM-Dreambox: 4. Request Timerlist succeeded. 0|mm | MMM-Dreambox: 5. Request Servicelistplayable succeeded. 0|mm | MMM-Dreambox: Notification FETCH_DATAreceived. New datas from dreambox should be pulled. 0|mm | MMM-Dreambox: 2. Request ABOUT succeeded. 0|mm | MMM-Dreambox: 5. Request Servicelistplayable succeeded. 0|mm | MMM-Dreambox: 3. Request Services succeeded. 0|mm | MMM-Dreambox: 1. Request EPGNOW succeeded. 0|mm | MMM-Dreambox: 4. Request Timerlist succeeded.
So, we are getting somewhere :-)
In the debug branch, could you perhaps send the playable services list to the MM log ? -
-
I see in your code that the HTML requests are successful (status code 200), so next step is to determine if the parsing was successful.
I know how json parsing works using Perl, but in MM context I have no clue, so I am not much of help there.