Skip to content

Latest commit

 

History

History
171 lines (159 loc) · 9.31 KB

README.md

File metadata and controls

171 lines (159 loc) · 9.31 KB

MMM-Dreambox

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
  • stream recordings

Magic-Mirror Module MMM-Dreambox screenshot1

Requirements

omxplayer: Omxplayer is normally already installed on raspbian. You can check it by commmanline which omxplayer. The result should be a path like /usr/bin/omxplayer.
MPG2 Codec: On my Dreambox (dm800se) for streaming HD stations the mpg2 codec was necessary. You can check this by commandline vcgencmd codec_enabled MPG2. The result can either be MPG2=enabled or MPG2=disabled. If case "disabled" and if you want to stream mpg2 you have to buy a codec on http://www.raspberrypi.com/mpeg-2-license-key/.
MMM-Remote-Control: MMM-Remote-Control is required, if you want to use the sample links for communication, as mentioned at the end of this file.
Enigma2 Receiver (Dreambox / VU+):

  • Make sure in settings (Extensions -> Webinterface) the value Enable HTTP Authentication is set to no, otherwise you will get the error 401 Unauthorized.
  • Make sure your receiver is switched on, standby and deep standby wont work, as the webinterface is down in this modes.

Installing the module

Clone this repository in your ~/MagicMirror/modules/ folder ( $ cd ~/MagicMirror/modules/ ):

git clone https://github.com/Ax-LED/MMM-Dreambox

change to directory MMM-Dreambox

cd MMM-Dreambox

run npm install

npm install

Using the module

To use this module, add it to the modules array in the config/config.js file:
Minimum Configuration:

{
	module: 'MMM-Dreambox',
	header: 'Dreambox',
	position: 'top_left',
	config: {
		apiBase: 'http://Ipofyourdreambox:port',
		omxargs: ' --win 320,180,1600,900 -o both ',
		refreshInterval: 1000 * 30, //refresh every 30 seconds
		apibouquet: 0, //bouquet, if there is more than one under apiservices (/web/getallservices)
		apiRecordingsID: 0, //which recording folder should be listed
		listmax: 10
	}
},

Advanced Configuration:

{
	module: 'MMM-Dreambox',
	header: 'Dreambox',
	position: 'top_left',
	config: {
		apiBase: 'http://Ipofyourdreambox:port',
		omxargs: ' --win 320,180,1600,900 -o both ',
		refreshInterval: 1000 * 30, //refresh every 30 seconds
		apibouquet: 0, //bouquet, if there is more than one under apiservices (/web/getallservices),
		apiRecordingsID: 0, //which recording folder should be listed
		listmax: 10,
		apiabout: '/web/about',
		apiservices: '/web/getallservices',
		apiepgnow: '/web/epgnow?bRef=',
		apizap: '/web/zap?sRef=',
		apiTimerlist: '/web/timerlist',
		apiServicelistplayable: '/web/servicelistplayable?sRef=',
		apiLocations: '/web/getlocations', //where are the recording folders listed
		apiMovielist: '/web/movielist?dirname=' //link for opening recording folder and list recordings
	}
},

Configuration options

The following properties can be configured:

Option Description
apiBase URL and port of your Dreambox or Enigma2 Receiver.
omxargs Arguments for the omxplayer, like ' --win 320,180,1600,900 -o both '. Attention, leading and last blanks are required.
refreshInterval How often should the datas be refreshed.
apibouquet Optional: Bouquet, if there is more than one more bouquet under apiservices (/web/getallservices). Important apiepgnow and apiServicelistplayable have to match to the selected bouquet.
Default value: 0
apiRecordingsID Optional: Index of folder for recordings. Can be checked under apiservices (/web/getlocations).
Default value: 0
listmax How many entries of your services should be listed. If your reach the first or the last entry, it will loop through your services or recordings.
apiabout Additional string to apiBase pointing to the xml file of your Dreambox where some about datas can be found. Test if [http://Ipofyourdreambox:port/web/about] shows xml datas in a browser within the same network of your Dreambox.
Default value: '/web/about'
apiservices Additional string to apiBase pointing to the xml file of your Dreambox where some getallservices datas can be found. Test if [http://Ipofyourdreambox:port/web/getallservices] shows xml datas in a browser within the same network of your Dreambox.
Default value: '/web/getallservices'
apiepgnow Additional string to apiBase pointing to the xml file of your Dreambox where some epgnow datas can be found. Test if [http://Ipofyourdreambox:port/web/epgnow?bRef=1%3A7%3A1%3A0%3A0%3A0%3A0%3A0%3A0%3A0%3AFROM%20BOUQUET
%20%22userbouquet.favourites.tv%22%20ORDER%20BY%20bouquet] shows xml datas in a browser within the same network of your Dreambox. Everything behind bRef= depends on your individual Dreambox settings and will be completed by 'apibouquet.
Default value: '/web/epgnow?bRef='
apizap Additional string to apiBase pointing to the xml file of your Dreambox where some Zap datas can be send. Test if [http://Ipofyourdreambox:port/web/zap?sRef=[Servicename]] shows xml datas in a browser within the same network of your Dreambox.
Default value: '/web/zap?sRef='
apiTimerlist Additional string to apiBase pointing to the xml file of your Dreambox where some Timer datas can be found. Test if [http://Ipofyourdreambox:port/web/timerlist] shows xml datas in a browser within the same network of your Dreambox.
Default value: '/web/timerlist'
apiServicelistplayable Additional string to apiBase pointing to the xml file of your Dreambox where some Servicelistplayable datas can be found. Test if [http://Ipofyourdreambox:port/web/servicelistplayable?sRef=1%3A7%3A1%3A0%3A0%3A0%3A0%3A0%3A0%3A0%3AFROM%20BOUQUET
%20%22userbouquet.favourites.tv%22%20ORDER%20BY%20bouquet] shows xml datas in a browser within the same network of your Dreambox. Everything behind sRef= depends on your individual Dreambox settings and will be completed by apibouquet.
Default value: '/web/servicelistplayable?sRef='
apiLocations Additional string to apiBase pointing to the xml file of your Dreambox where some Recording datas can be found. Test if [http://Ipofyourdreambox:port/web/getlocations] shows xml datas in a browser within the same network of your Dreambox.
Default value: '/web/getlocations'
apiMovielist Additional string to apiBase pointing to the xml file of your Dreambox where some Recording datas can be found. Test if [http://Ipofyourdreambox:port/web/movielist?dirname=] shows xml datas in a browser within the same network of your Dreambox.
Everything behind dirname= depends on your individual Dreambox settings and will be completed by apiRecordingsID
Default value: '/web/movielist?dirname='

Further options

You can communication with this module also by sending notifications.
Examples:

  • yourmmip:8080/remote?action=NOTIFICATION&notification=DB-SERVICE-NEXT selects the next service in your list
  • yourmmip:8080/remote?action=NOTIFICATION&notification=DB-SERVICE-PREV selects the previous service in your list
  • yourmmip:8080/remote?action=NOTIFICATION&notification=DB-PLAY starts streaming the selected service with omxplayer
  • yourmmip:8080/remote?action=NOTIFICATION&notification=DB-STOP stops streaming and quiting omxplayer
  • yourmmip:8080/remote?action=NOTIFICATION&notification=DB-RECORDINGS selects recordings mode
  • yourmmip:8080/remote?action=NOTIFICATION&notification=DB-TUNER selects tuner mode

To use this examples the module MMM-Remote-Control is required.

Version

2.0 Changelog:

  • optimized configuration options, to reduce complexity
  • added recordings mode
  • extended notification system to select recordings and tuner mode

1.0 initial release