Sholofly / lghorizon

Custom integration to control LG Horizon settop boxes for Ziggo(NL), Magenta(AT), UPC(CH), Virgin(GB, IE), Telenet(BE)
GNU General Public License v3.0
64 stars 15 forks source link
arris custom-component home-assistant humax lg-horizon magenta sunrise telenet virgin ziggo

LG Horizon Settop boxes for Ziggo(NL), Magenta(AT), UPC(CH, PL), Virgin(GB, IE), Telenet(BE)

hacs_badge
Buy Me A Coffee

WARNING: This component replaces the Arris DCX960 component and is in beta status

Description

A media player component for Home Assistant that controls each LG Horizon Settopbox in your account. After configuration you should see:

Supported countries and providers

Country Provider Box name Confirmed working
Netherlands Ziggo Mediabox Next, Mediabox Next mini yes
Austria Magenta Entertain box 4K yes
Switzerland UPC/Sunrise Switzerland Sunrise (IP)TV Box yes (For Sunrise users, use Mobile number as username. For former UPC users, use e-mailaddress as username)
Ireland Virgin Media 360 box yes
Belgium Telenet Telenet TV-Box yes
Great Britain Virgin Media Virgin TV 360 yes
Poland UPC Poland UPC TV Box yes

Prerequisites

HACS Installation

  1. Make sure you've installed HACS
  2. In the integrations tab, search for LG Horizon.
  3. Install the Integration. Please consider enabling beta versions to keep track of the latest (experimental) features.
  4. Configure the integration using the HA integration page, Search for LG Horizon.

Manual installation

  1. Open the directory (folder) for your HA configuration (where you find configuration.yaml).
  2. If you do not have a custom_components directory (folder) there, you need to create it.
  3. In the custom_components directory (folder) create a new folder called lghorizon.
  4. Download all the files from the custom_components/lghorizon/ directory (folder) in this repository.
  5. Place the files you downloaded in the new directory (folder) you created.
  6. Restart Home Assistant
  7. Configure the integration using the HA integration page, Search for LG Horizon.

Configuration (Example!)

  1. In HA Click on settings
  2. Click on Integrations
  3. Click on button 'Add integration'
  4. Search for 'LG Horizon' and click

Parameters

Parameter Required Description
Username yes Your provider username
Password yes Your provider password
Provider yes (default 'Ziggo') Your Provider
Identifier no (only for Telenet) Your account identifier (see below)
Refresh Token no (only for GB & CH) A JWT Token (see below)

Configuration Telenet multiple accounts

When you can't connect to your Telenet account it's possible that you have multiple accounts and you have to provide your account identifier. You can find your identifier by opening your browser in incognito mode and login to your telenet TV environment. After entering your credentials an account selection screen will popup: account selection

Configuration for Virgin(GB), Sunrise (CH), Telenet (BE) and BASE (be)

For the Virgin GB and the Sunrise CH integration the Password is not used, instead, you need JWT token. To get the JWT token you need to download a plugin and then login to your Virgin Box from a FireFox web browser as follows.

  1. Download the JWT Debugger plugin to get access to the tokens.

  2. Login to your Virgin box using Firefox as your web browser:

    GB: https://virgintvgo.virginmedia.com/ CH: https://www.sunrisetv.ch/ BE: Telenet TV-Box

  3. Open the JWT extension and copy the JWT token. account selection (You need to select “open JWT from”, then select “flutter.web_secure_storge…” as per the screen shot. You then need to copy the bit starting eyJ0... - make sure you get all of it - it is about 800 characters long.) NOTE: Keep this token secure/treat as a password - it gives full access to your virgin / sunrise box.

  4. Paste the JWT token into the Refresh Token parameter

Service to change channel

service: media_player.play_media
data:
  media_content_type: channel # 'channel' when media_content_id is channelnumber, 'app' when media_content_id is 'Netflix' or 'Videoland'
  media_content_id: "401" # Any channel number, 'Netflix' or 'Videoland'
target:
  entity_id: media_player.ziggo_beneden

Custom services

This service can be called to start a recording. Note that this shows a pop-up on screen and confirmation is required.

service: lghorizon.record
data:
  entity_id: media_player.ziggo_beneden

This service can be called to rewind or fast-forward. Note that this command can be called multiple times to speed up. To stop this action, you can call the standard media_player.play service on the same entity.

service: lghorizon.rewind
data:
  entity_id: media_player.ziggo_beneden

service: lghorizon.fast_forward
data:
  entity_id: media_player.ziggo_beneden

This service can be called to emulate a key press on the remote control.

service: lghorizon.remote_key_press
data:
  entity_id: media_player.ziggo_beneden
  remote_key: "MediaTopMenu"

Key commands

Disclaimer

This component is not provided, supported or maintained by any of the companies named above. They can change their hardware, software or web services at a way that can break this component. Fingers crossed!

Credits