Enigma2 PVR client addon for Kodi. Enigma2 is a open source TV-receiver/DVR platform which Linux-based firmware (OS images) can be loaded onto many Linux-based set-top boxes (satellite, terrestrial, cable or a combination of these) from different manufacturers. This add-on leverages the OpenWebIf project to interact with the Enigma2 device via Restful APIs.
Multiple E2 devices can be configured via Kodi PVR since Kodi 20 (Nexus). To setup multiple devices simply visit the add-ons settings under Configure
, and choose new Add add-on configuration
.
Supports streaming of Live TV & Recordings with features such as Timeshifting, EPG, Timers and Autotimers. In addition the majority of Enigma2 devices support viewing and recording IPTV streams. The add-on supports IPTV by simply passing the URL to inputstream.ffmpegdirect, allowing a local timeshift feature similar to native Enigma2 streams.
Note: Some images do not use OpenWebIf as the default web interface. In these images some standard functionality may still work but is not guaranteed. Some features that may not function include:
Some features are only available with at least certain OpenWebIf versions:
1.3.0
: AutoTimers1.3.5
: Embedded EPG Genres, Tuner Details, Provider Name, Picon URLs1.3.6
: Editing Recordings1.3.7
: Backend Channel Numbers1.3.9
: Recording Sizes1.4.4
: Recursive Movie listing1.4.6
: Use internal OWF MovieList (avoids memory leak on some images)The contents of this README.md file are as follows:
git clone --branch master https://github.com/xbmc/xbmc.git
git clone https://github.com/kodi-pvr/pvr.vuplus.git
cd pvr.vuplus && mkdir build && cd build
cmake -DADDONS_TO_BUILD=pvr.vuplus -DADDON_SRC_PREFIX=../.. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../../xbmc/build/addons -DPACKAGE_ZIP=1 ../../xbmc/cmake/addons
make
The addon files will be placed in ../../xbmc/build/addons
so if you build Kodi from source and run it directly the addon will be available as a system addon.
As an alternative to step 4 the following command can be run whic is addon agnostic:
cmake -DADDONS_TO_BUILD=$(basename $(dirname $(pwd))) -DADDON_SRC_PREFIX=../.. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../../xbmc/addons -DPACKAGE_ZIP=1 ../../xbmc/cmake/addons
In order to build the addon on mac the steps are different to Linux and Windows as the cmake command above will not produce an addon that will run in kodi. Instead using make directly as per the supported build steps for kodi on mac we can build the tools and just the addon on it's own. Following this we copy the addon into kodi. Note that we checkout kodi to a separate directory as this repo will only only be used to build the addon and nothing else.
cd $HOME
git clone https://github.com/xbmc/xbmc xbmc-addon
git clone https://github.com/kodi-pvr/pvr.vuplus
cd $HOME/xbmc-addon/tools/depends
./bootstrap
./configure --host=x86_64-apple-darwin --with-platform=macos
make -j$(getconf _NPROCESSORS_ONLN)
cd $HOME/xbmc-addon
make -j$(getconf _NPROCESSORS_ONLN) -C tools/depends/target/binary-addons ADDONS="pvr.vuplus" ADDON_SRC_PREFIX=$HOME
Note that the steps in the following section need to be performed before the addon is installed and you can run it in Kodi.
cd $HOME/pvr.vuplus
./build-install-mac.sh ../xbmc-addon
If you would prefer to run the rebuild steps manually instead of using the above helper script check the appendix here
When reporting issues a debug log should always be supplied. You can use the following guide: Easy way to submit Kodi debug logs
For more detailed info on logging please see the appendix here
In Kodi 18.2 the level of settings shown will correspond to the level set in the main kodi settings UI: Basic
, Standard
, Advanced
and Expert
. From Kodi 19 it will be possible to change the settingds level from within the addon settings itself.
Within this tab the connection options need to be configured before it can be successfully enabled.
Connection check interval
will have the desired effect. Default is 30 seconds.Within this tab general options are configured.
1_1_1_
and end with _0_0_0
.Timers and Recordings
- Update all timers and recordings.Timers only
- Only update the timers. If it's important to not spin up the HDD on your STB use this option. The HDD should then only spin up when a timer event occurs.Disabled
- Never check for channel and group changes.Notify on UI and Log
- Display a notice in the UI and log the fact that a change was detectetd.Reload Channels and Groups
- Disconnect and reconnect with E2 device to reload channels only if a change is detected.Within this tab options that refer to channel data can be set. When changing bouquets you may need to clear the channel cache to the settings to take effect. You can do this by going to the following in Kodi settings: Settings->PVR & Live TV->General->Clear cache
.
Note that channel numbers can be set in the addon based on either:
If Kodi PVR is set to use the channel numbers from the backend the numbers will match those on your STB. If this is not enabled each unique instance of a channel will be given the next free number starting from 1 (i.e. the 17th unique channel will be channel 17). Backend channel numbers will only work for OpenWebIf 1.3.5 and later and they have been tested using ABM (AutoBouquetsMaker).
1:0:1:27F6:806:2:11A0000:0:0:0:
. On occasion depending on provider they can be extended with some text e.g. 1:0:1:27F6:806:2:11A0000:0:0:0::UTV
or 1:0:1:27F6:806:2:11A0000:0:0:0::UTV + 1
. If this option is enabled then all read service reference's will be read as standard. This is default behaviour. Functionality like autotimers will always convert to a standard reference.providerMappings.xml
.All bouquets
- Fetch all TV bouquets from the set-top box.Some bouquets
- Only fetch the bouquet specified in the next optionFavourites bouquet
- Only fetch the system bouquet for TV favourites.Custom bouquets
- Fetch a set of bouquets from the Set-top box whose names are loaded from an XML file.Some bouquets
is the selected fetch mode. Up to 5 can be chosen. If more than 5 are required the Custom bouquets
fetch mode should be used instead.Some bouquets
you need to specify a TV bouquet to be fetched from the set-top box. Please not that this is the bouquet-name as shown on the set-top box (i.e. "Favourites (TV)"). This setting is case-sensitive.customTVGroups-example.xml
. Details on how to customise can be found in the next section of the README.All bouquets
or Only one bouquet
depending on your Enigma2 image you may need to explicitly fetch favourites if you require them. The options are:
Disabled
- Don't explicitly fetch TV favourites.As first bouquet
- Explicitly fetch them as the first bouquet.As last bouquet
- Explicitly fetch them as the last bouquet.Last Scanned (TV)
in Kodi. For TV this group is excluded by default. Disable this option to exclude this group. Note that if no TV groups are loaded the Last Scanned group for TV will be loaded by default regardless of this setting.All bouquets
- Fetch all Radio bouquets from the set-top box.Some bouquets
- Only fetch the bouquet specified in the next optionFavourites bouquet
- Only fetch the system bouquet for Radio favourites.Custom bouquets
- Fetch a set of bouquets from the Set-top box whose names are loaded from an XML file.Some bouquets
is the selected fetch mode. Up to 5 can be chosen. If more than 5 are required the Custom bouquets
fetch mode should be used instead.Some bouquets
you need to specify a Radio bouquet to be fetched from the set-top box. Please not that this is the bouquet-name as shown on the set-top box (i.e. "Favourites (Radio)"). This setting is case-sensitive.customRadioGroups-example.xml
. Details on how to customise can be found in the next section of the README.All bouquets
or Only one bouquet
depending on your Enigma2 image you may need to explicitly fetch favourites if you require them. The options are:
Disabled
- Don't explicitly fetch Radio favourites.As first bouquet
- Explicitly fetch them as the first bouquet.As last bouquet
- Explicitly fetch them as the last bouquet.Last Scanned (Radio)
in Kodi. For Radio this group is excluded by default. Disable this option to show this group.Within this tab options that refer to EPG data can be set. Excluding logging missing genre text mappings all other options will require clearing the EPG cache to take effect. This can be done by going to Settings->PVR & Live TV->Guide->Clear cache
in Kodi after the addon restarts.
Information on customising the extraction and mapper configs can be found in the next section of the README.
English-ShowInfo.xml
.Sky-UK.xml
.Rytec-UK-Ireland.xml
.The following configuration is available on the Recordings tab of the addon settings.
Kodi instances
- Only use the value in kodi and will not affect last played on the E2 device.Kodi/E2 instances
- Use the value across kodi and the E2 device so they stay in sync. Last played will be synced with the E2 device once every 5-10 minutes per recording if the PVR menus are in use. Note that only a single kodi instance is required to have this option enabled.my recording.ts
the EDL file should be call my recording.edl
. Note: enabling this setting has no effect if the files are not present.Using Padding for Timers in Kodi PVR
Using padding for timers allows you to start a recording some time earlier and finish later in case the actual start and/or run time of a show is incorrect. It's important to note that Enigma2 devices allow you set a padding for all timers, both regular timers and autotimers but it only applies to timers created on the Enigma2 device directly. In the case of autotimers it does not matter if they are created from Kodi or directly on the Enigma2 device as new once off timers are generated on the device so will use this default device padding. It is not possible to set padding for autotimers directly in Kodi PVR at present. You can change these settings on your Enigma2 device as follows:
Menu
on the remote and go to Setup->Recordings, playback & timeshift->Recording & playback
Margin before recording (minutes)
Margin after recording (minutes)
If setting padding in Kodi PVR it's only supported on certain timer types, i.e. Once off time/channel based
, Repeating time/channel based
and One time guide-based
. As the Enigma2 device does not support padding per Timer the tags
field is used to store the padding set in Kodi PVR. If a padding value is not set for these timer types the addon will use the Enigma2 devices default padding value instead. So if you have set a value on the Enigma2 device, this can be overidden in the Kodi UI (note, the default from the Enigma2 device does not display in the Add Timer UI, it won't show until after the timer is created and only if no padding values are set).
Timer Types
The addon provides the following types of timers and timer rules that the user can create:
Once off timer (repeating)
.Record
when accessing an EPG entry. It will create a timer that starts and ends as per the EPG entry. If playing back a channel it will start from now until the end of the current show. If using OpenWebIf, for providers that only use short description (plot outline) the addon will retrieve the correct description if available and use it in both the timer and resulting recording.Once off timer (auto)
.In addition there are some timers that can only be created by the addon and are read only:
Repeating time/channel based
timer rule. Will contain padding that can't be modified the same as the parent timer rule.Auto guide-based
timer rule.Timer settings
The following are the settings in the Timers tab:
Menu
on the remote and go to Timers->AutoTimers
Menu
again and then select 6 Setup
yes
Include "AutoTimer" in tags
Include AutoTimer name in tags
Timeshifting allows for native Enigma2 live TV stream to be paused as well as moved back and forward from your current position similar to playing back a recording. The buffer is deleted each time a channel is changed or stopped.
Timeshifting is also available IPTV streams via inputstream.ffmpegdirect. Note that if your IPTV provider restricts the number of active streams each kodi instance viewing it will count as an active stream.
Disabled
- No timeshiftingOn Pause
- Timeshifting starts when a live stream is paused. E.g. you want to continue from where you were at after pausing.On Playback
- Timeshifting starts when a live stream is opened. E.g. You can go to any point in the stream since it was opened.addon_data/pvr.vuplus
folder in userdata. Note that if another directory is specified and it does not exist the default will be used instead.inputstream.ffmpegdirect
. Note that this feature only works On playback
and will ignore the timeshift mode used for regular channel playback.This category contains information and settings on/about the Enigma2 STB.
DISABLED
then the addon will send a Powerstate command to the set-top box when Kodi will be closed (or the addon will be deactivated).
Disabled
- No command sent when the addon exitsStandby
- Send the standby command on exitDeep standby
- Send the deep standby command on exit. Note, the set-top box will not respond to Kodi after this command is sent.Wakeup, then standby
- Similar to standby but first sends a wakeup command. Can be useful if you want to ensure all streams have stopped. Note: if you use CEC this could cause your TV to wake.Margin before recording
. It will be applied to the start of all new regular timers created including those created from Autotimers. Note that if a padding/margin is set on an Autotimer it will be custom for that Autotimer and will override this value.Margin after recording
. It will be applied to the end of all new regular timers created including those created from Autotimers. Note that if a padding/margin is set on an Autotimer it will be custom for that Autotimer and will override this value.Within this tab more uncommon and advanced options can be configured.
Settings->PVR & Live TV->Guide->Clear cache
for it to take effect.Enable debug logging in normal mode
both trace and debug will display without debug logging enabled. In this case both debug and trace log statements will display at NOTICE level.The various config files have examples allowing users to create their own, making it possible to support custom config, other languages and formats. Each different type of config file is detailed below. Best way to learn about them is to read the config files themselves. Each contains details of how the config file works.
All of the files listed below are overwritten each time the addon starts. Therefore if you are customising files please create new copies with different file names. Note: that only the files below are overwritten any new files you create will not be touched.
After adding and selecting new config files you will need to clear the EPG cache Settings->PVR & Live TV->Guide->Clear cache
for it to take effect in the case of EPG relatd config and for channel related config will need to clear the full cache Settings->PVR & Live TV->General->Clear cache
.
If you would like to support other formats/languages please raise an issue at the github project https://github.com/kodi-pvr/pvr.vuplus, where you can either create a PR or request your new configs be shipped with the addon.
There is one config file located here: userdata/addon_data/pvr.vuplus/genres/kodiDvbGenres.xml
. This simply contains the DVB genre IDs that Kodi supports. Can be a useful reference if creating your own configs. This file is also overwritten each time the addon restarts.
Config files are located in the userdata/addon_data/pvr.vuplus/channelGroups
folder.
The following files are currently available with the addon:
customTVGroups-example.xml
customRadioGroups-example.xml
Note that both these files are provided as examples and are overwritten each time the addon starts. Therefore you should make copies and use those for your custom config.
The format is quite simple, containing a number of channel group/bouquet names.
Config files are located in the userdata/addon_data/pvr.vuplus/providers
folder.
The following file is currently available with the addon:
providerMappings.xml
Note that the provided file is a working example but it is overwritten each time the addon starts. Therefore you should make copies and use those for your custom config.
The format is quite simple, containing a number of
Config files are located in the userdata/addon_data/pvr.vuplus/showInfo
folder.
The following files are currently available with the addon:
English-ShowInfo.xml
Note: the config file can contain as many pattern matches as are required. So if you need to support multiple languages in a single file that is possible. However there must be at least one
Config files are located in the userdata/addon_data/pvr.vuplus/genres/genreIdMappings
folder.
The following files are currently available with the addon:
AU-SAT.xml
Sky-IT.xml
Sky-NZ.xml
Sky-UK.xml
Note: that each source genre ID can be mapped to a DVB ID. However multiple source IDs can be mapped to the same DVB ID. Therefore there are exactly 256
Config files are located in the userdata/addon_data/pvr.vuplus/genres/genreRytecTextMappings
folder.
The following files are currently available with the addon:
Rytec-UK-Ireland.xml
Note: the config file can contain as many mappings as is required. Currently genres are extracted by looking for text between square brackets, e.g. [TV Drama], or for major, minor genres using a dot (.) to separate [TV Drama. Soap Opera]. The config file maps the text to a kodi DVB genre ID. If the full text cannot be matched it attempts to match just the major genre, i.e. "TV Drama" in the previous example. If a mapping cannot be found the text between the brackets will be used instead. However there will be no colouring in the Kodi EPG in this case.
The following steps can be followed manually instead of using the build-install-mac.sh
in the root of the addon repo after the initial addon build has been completed.
To rebuild the addon after changes
rm tools/depends/target/binary-addons/.installed-macosx*
make -j$(getconf _NPROCESSORS_ONLN) -C tools/depends/target/binary-addons ADDONS="pvr.vuplus" ADDON_SRC_PREFIX=$HOME
or
cd tools/depends/target/binary-addons/macosx*
make
Copy the addon to the Kodi addon directory on Mac
rm -rf "$HOME/Library/Application Support/Kodi/addons/pvr.vuplus"
cp -rf $HOME/xbmc-addon/addons/pvr.vuplus "$HOME/Library/Application Support/Kodi/addons"
Some of the most useful information in your log are the details output at the start of the log, both for Kodi and the addon.
The first 5 lines of the log give details on the exact kodi flavour and version you are running:
01:10:45.744 T:140736264741760 NOTICE: -----------------------------------------------------------------------
01:10:45.744 T:140736264741760 NOTICE: Starting Kodi (18.0-BETA2 Git:20180903-5d7e1dbd9c-dirty). Platform: OS X x86 64-bit
01:10:45.744 T:140736264741760 NOTICE: Using Debug Kodi x64 build
01:10:45.744 T:140736264741760 NOTICE: Kodi compiled Sep 5 2018 by Clang 9.1.0 (clang-902.0.39.2) for OS X x86 64-bit version 10.9.0 (1090)
01:10:45.745 T:140736264741760 NOTICE: Running on Apple Inc. MacBook10,1 with OS X 10.13.6, kernel: Darwin x86 64-bit version 17.7.0
Secondly all the information of the Enigma2 image, web interface version etc. is also output:
12:36:55.888 T:123145422725120 NOTICE: AddOnLog: Enigma2 Client: pvr.vuplus - Open - VU+ Addon Configuration options
12:36:55.888 T:123145422725120 NOTICE: AddOnLog: Enigma2 Client: pvr.vuplus - Open - Hostname: '192.168.1.201'
12:36:55.888 T:123145422725120 NOTICE: AddOnLog: Enigma2 Client: pvr.vuplus - Open - WebPort: '80'
12:36:55.888 T:123145422725120 NOTICE: AddOnLog: Enigma2 Client: pvr.vuplus - Open - StreamPort: '8001'
12:36:55.888 T:123145422725120 NOTICE: AddOnLog: Enigma2 Client: pvr.vuplus - Open Use HTTPS: 'false'
12:36:56.308 T:123145422725120 NOTICE: AddOnLog: Enigma2 Client: pvr.vuplus - LoadDeviceInfo - DeviceInfo
12:36:56.308 T:123145422725120 NOTICE: AddOnLog: Enigma2 Client: pvr.vuplus - LoadDeviceInfo - E2EnigmaVersion: 2019-01-03
12:36:56.308 T:123145422725120 NOTICE: AddOnLog: Enigma2 Client: pvr.vuplus - LoadDeviceInfo - E2ImageVersion: 5.2.022
12:36:56.309 T:123145422725120 NOTICE: AddOnLog: Enigma2 Client: pvr.vuplus - LoadDeviceInfo - E2DistroVersion: openvix
12:36:56.309 T:123145422725120 NOTICE: AddOnLog: Enigma2 Client: pvr.vuplus - LoadDeviceInfo - E2WebIfVersion: OWIF 1.3.5
12:36:56.309 T:123145422725120 NOTICE: AddOnLog: Enigma2 Client: pvr.vuplus - LoadDeviceInfo - E2DeviceName: Ultimo4K
Advanced
section.(If you have a fresh install of version 3.15.0 or later you can ignore this)
As the addon was upgraded over time some old settings are no longer required. These old settings can create a lot of extra logging on startup. To date there are four of these and they will present like this in your log:
23:17:22.696 T:3990016880 DEBUG: CSettingsManager: requested setting (extracteventinfo) was not found.
23:17:22.696 T:3990016880 DEBUG: CAddonSettings[pvr.vuplus]: failed to find definition for setting extracteventinfo. Creating a setting on-the-fly...
23:17:22.696 T:3990016880 DEBUG: CSettingsManager: requested setting (onegroup) was not found.
23:17:22.696 T:3990016880 DEBUG: CAddonSettings[pvr.vuplus]: failed to find definition for setting onegroup. Creating a setting on-the-fly...
23:17:22.696 T:3990016880 DEBUG: CSettingsManager: requested setting (onlyonegroup) was not found.
23:17:22.696 T:3990016880 DEBUG: CAddonSettings[pvr.vuplus]: failed to find definition for setting onlyonegroup. Creating a setting on-the-fly...
23:17:22.697 T:3990016880 DEBUG: CSettingsManager: requested setting (setpowerstate) was not found.
23:17:22.697 T:3990016880 DEBUG: CAddonSettings[pvr.vuplus]: failed to find definition for setting setpowerstate. Creating a setting on-the-fly...
If you see these in debug mode and would like to clean them up you can either:
Your settings.xml file can be found here: userdata/addon_data/pvr.vuplus/settings.xml