A web interface for Kodi written in Elm for GSoC 2020 based on chorus2 by jez500. Inside the src directory you'll find. Colors.elm - palette for user interface Components - all ui elements. Kodi is an Open Source Media platform with tons of Settings for user preference. By choosing a Skin within Kodi, you will have a sleek looking interface that is pleasing to the eye. Upon opening Kodi you will notice the default look the application has. This is the interface or “Skin” Kodi provides.
- Kodi Web Interface Add Source
- Kodi Web Interface Not Working
- Web Interface Kodi App
- Web Interface Kodi Download
The kodi
platform allows you to control a Kodi multimedia system from Home Assistant.
The preferred way to set up the Kodi platform is by through discovery, which requires an enabled web interface on your Kodi installation.
There is currently support for the following device types within Home Assistant:
Configuration
The Kodi media player is configured through the integrations screen. If your Kodi is discovered, you’ll see it there and can click to set it up.If you do not see your device, you can click on the +
button and choose Kodi.The flow will guide you through the setup. Most of the settings are advanced, and the defaults should work.
If you previously had Kodi configured through configuration.yaml
, it’s advisable to remove it, and configure from the UI.If you do not remove it, your configuration will be imported with the following limitations:
- Your turn on/off actions will not be imported. This functionality is now available through device triggers.
- You may have duplicate entities.
- Kodi must be on when Home Assistant is loading for the first time for the configuration to be imported.
Turning On/Off
You can customize your turn on and off actions through automations. Simply use the relevant Kodi device triggers and your automation will be called to perform the turn_on
or turn_off
sequence; see the Kodi turn on/off samples section for scripts that can be used.
These automations can be configured through the UI (see Device Triggers for automations). If you prefer YAML, you’ll need to get the device ID from the UI automation editor. Automations would be of the form:
Services
Service kodi.add_to_playlist
Add music to the default playlist (i.e., playlistid=0).
Service data attribute | Optional | Description |
---|---|---|
entity_id | no | Name(s) of the Kodi entities where to add the media. |
media_type | yes | Media type identifier. It must be one of SONG or ALBUM. |
media_id | no | Unique Id of the media entry to add (songid or albumid ). If not defined, media_name and artist_name are needed to search the Kodi music library. |
media_name | no | Optional media name for filtering media. Can be ‘ALL’ when media_type is ‘ALBUM’ and artist_name is specified, to add all songs from one artist. |
artist_name | no | Optional artist name for filtering media. |
Service kodi.call_method
Call a Kodi JSON-RPC API method with optional parameters. Results of the Kodi API call will be redirected in a Home Assistant event: kodi_call_method_result
.
Service data attribute | Optional | Description |
---|---|---|
entity_id | no | Name(s) of the Kodi entities where to run the API method. |
method | yes | Name of the Kodi JSON-RPC API method to be called. |
any other parameter | no | Optional parameters for the Kodi API call. |
Event triggering
When calling the kodi.call_method
service, if the Kodi JSON-RPC API returns data, when received by Home Assistant it will fire a kodi_call_method_result
event on the event bus with the following event_data
:
Kodi turn on/off samples



The following scripts can be used in automations for turning on/off your Kodi instance; see Turning on/off. You could also simply use these sequences directly in the automations without creating scripts.
Turn on Kodi with Wake on LAN
Kodi Web Interface Add Source
With this configuration, when calling media_player/turn_on
on the Kodi device, a magic packet will be sent to the specified MAC address. To use this service, first you need to configuration the wake_on_lan
integration in Home Assistant, which is achieved simply by adding wake_on_lan:
to your configuration.yaml
.
Turn off Kodi with API calls
Here are the equivalent ways to configure each of the old options to turn off Kodi (quit
, hibernate
, suspend
, reboot
, or shutdown
):
- Quit method
- Hibernate method
- Suspend method
- Reboot method
- Shutdown method
Turn on and off the TV with the Kodi JSON-CEC Add-on
For Kodi devices running 24/7 attached to a CEC capable TV (OSMC / OpenElec and systems alike running in Rasperry Pi’s, for example), this configuration enables the optimal way to turn on/off the attached TV from Home Assistant while Kodi is always active and ready:
This example and the following requires to have the script.json-cec plugin installed on your Kodi player. It’ll also expose the endpoints standby, toggle and activate without authentication on your Kodi player. Use this with caution.
Kodi services samples
Simple script to turn on the PVR in some channel as a time function
Simple script to play a smart playlist
Trigger a Kodi video library update
Notifications
The kodi
notifications platform allows you to send messages to your Kodi multimedia system from Home Assistant.
To add Kodi to your installation, add the following to your configuration.yaml
file:
Configuration Variables
Name displayed in the frontend. The notifier will bind to the service notify.NOTIFIER_NAME
.
The host name or address of the device that is running Kodi.
The HTTP port number.
Connect to Kodi with HTTPS. Useful if Kodi is behind an SSL proxy.
The XBMC/Kodi HTTP username.
The XBMC/Kodi HTTP password.
Script example
Message variables

Configuration Variables
Title that is displayed on the message.
Message to be displayed.
Configure message properties
Kodi comes with 3 default icons: info
, warning
and error
, a URL to an image is also valid.
10000
ms)Length in milliseconds the message stays on screen.
To use notifications, please see the getting started with automation page.
The kodi
platform allows you to control a Kodi multimedia system from Home Assistant.
The preferred way to set up the Kodi platform is by through discovery, which requires an enabled web interface on your Kodi installation.
There is currently support for the following device types within Home Assistant:
Configuration
The Kodi media player is configured through the integrations screen. If your Kodi is discovered, you’ll see it there and can click to set it up.If you do not see your device, you can click on the +
button and choose Kodi.The flow will guide you through the setup. Most of the settings are advanced, and the defaults should work.
If you previously had Kodi configured through configuration.yaml
, it’s advisable to remove it, and configure from the UI.If you do not remove it, your configuration will be imported with the following limitations:
- Your turn on/off actions will not be imported. This functionality is now available through device triggers.
- You may have duplicate entities.
- Kodi must be on when Home Assistant is loading for the first time for the configuration to be imported.
Turning On/Off
You can customize your turn on and off actions through automations. Simply use the relevant Kodi device triggers and your automation will be called to perform the turn_on
or turn_off
sequence; see the Kodi turn on/off samples section for scripts that can be used.
These automations can be configured through the UI (see Device Triggers for automations). If you prefer YAML, you’ll need to get the device ID from the UI automation editor. Automations would be of the form:
Services
Kodi Web Interface Not Working
Service kodi.add_to_playlist
Add music to the default playlist (i.e., playlistid=0).
Service data attribute | Optional | Description |
---|---|---|
entity_id | no | Name(s) of the Kodi entities where to add the media. |
media_type | yes | Media type identifier. It must be one of SONG or ALBUM. |
media_id | no | Unique Id of the media entry to add (songid or albumid ). If not defined, media_name and artist_name are needed to search the Kodi music library. |
media_name | no | Optional media name for filtering media. Can be ‘ALL’ when media_type is ‘ALBUM’ and artist_name is specified, to add all songs from one artist. |
artist_name | no | Optional artist name for filtering media. |
Service kodi.call_method
Call a Kodi JSON-RPC API method with optional parameters. Results of the Kodi API call will be redirected in a Home Assistant event: kodi_call_method_result
.
Service data attribute | Optional | Description |
---|---|---|
entity_id | no | Name(s) of the Kodi entities where to run the API method. |
method | yes | Name of the Kodi JSON-RPC API method to be called. |
any other parameter | no | Optional parameters for the Kodi API call. |
Event triggering
When calling the kodi.call_method
service, if the Kodi JSON-RPC API returns data, when received by Home Assistant it will fire a kodi_call_method_result
event on the event bus with the following event_data
:
Kodi turn on/off samples
The following scripts can be used in automations for turning on/off your Kodi instance; see Turning on/off. You could also simply use these sequences directly in the automations without creating scripts.
Turn on Kodi with Wake on LAN
With this configuration, when calling media_player/turn_on
on the Kodi device, a magic packet will be sent to the specified MAC address. To use this service, first you need to configuration the wake_on_lan
integration in Home Assistant, which is achieved simply by adding wake_on_lan:
to your configuration.yaml
.
Turn off Kodi with API calls
Here are the equivalent ways to configure each of the old options to turn off Kodi (quit
, hibernate
, suspend
, reboot
, or shutdown
):
- Quit method
- Hibernate method
- Suspend method
- Reboot method
- Shutdown method
Turn on and off the TV with the Kodi JSON-CEC Add-on
For Kodi devices running 24/7 attached to a CEC capable TV (OSMC / OpenElec and systems alike running in Rasperry Pi’s, for example), this configuration enables the optimal way to turn on/off the attached TV from Home Assistant while Kodi is always active and ready:
This example and the following requires to have the script.json-cec plugin installed on your Kodi player. It’ll also expose the endpoints standby, toggle and activate without authentication on your Kodi player. Use this with caution.
Kodi services samples
Simple script to turn on the PVR in some channel as a time function
Simple script to play a smart playlist
Trigger a Kodi video library update
Notifications
The kodi
notifications platform allows you to send messages to your Kodi multimedia system from Home Assistant.
To add Kodi to your installation, add the following to your configuration.yaml
file:
Configuration Variables
Name displayed in the frontend. The notifier will bind to the service notify.NOTIFIER_NAME
.
The host name or address of the device that is running Kodi.
The HTTP port number.
Connect to Kodi with HTTPS. Useful if Kodi is behind an SSL proxy.
The XBMC/Kodi HTTP username.
The XBMC/Kodi HTTP password.
Script example
Message variables
Configuration Variables
Title that is displayed on the message.
Message to be displayed.
Configure message properties
Kodi comes with 3 default icons: info
, warning
and error
, a URL to an image is also valid.
10000
ms)Web Interface Kodi App
Length in milliseconds the message stays on screen.
Web Interface Kodi Download
To use notifications, please see the getting started with automation page.
