Hi there,
We have a nice UPC Horizon compatibility plugin but what about the new UPC TV Box ? It seems to be ip capable https://www.upc.ch/en/support/television/tv-box/
I would be ready to deep dive into it but before doing so just wanted to check if anybody started already ?


I would love to see this as well. In Netherlands they use the same box and there is already a plugin available : https://github.com/Sholofly/Ziggo_Mediabox_Next

I tried to use it with the UPC TV Box in Switzerland, but it is not working. Maybe it needs only some small tweaks to adapt the Servers etc.

I cannot code, but I could help with testing.

Regards René

Hi Rene I missed your answer. Thanks it looks super promising I will look at the code immediately

This guy is a genius :slight_smile: I made a very quick and dirty adaptation and it works ! Not really great since it is kind of emulating commands that would be sent thru the mobile/web clients so actions done with the remote control are not reflected but that’s very good already.
The adaptation don’t need to know how to code don’t worry
Edit ziggo_client.py
replace the three variable below with the following content
API_URL_SESSION = “https://web-api-prod-obo.horizon.tv/oesp/v3/CH/eng/web/session
API_URL_TOKEN = “https://web-api-prod-obo.horizon.tv/oesp/v3/CH/eng/web/tokens/jwt
DEFAULT_HOST = “obomsg.prod.ch.horizon.tv

Edit ziggo_mediabox_nextpy
replace these two variables
API_URL_LISTING_FORMAT = “https://web-api-prod-obo.horizon.tv/oesp/v3/CH/eng/web/listings/?byStationId={stationId}&byScCridImi={id}
API_URL_RECORDING_FORMAT = “https://web-api-prod-obo.horizon.tv/oesp/v3/CH/eng/web/listings/?byScCridImi={id}

Edit ziggo_next_container.py
replace this single value
API_URL_CHANNELS = “https://web-api-prod-obo.horizon.tv/oesp/v3/CH/eng/web/channels

Basically I just updated the APIS urls to point to swiss servers and it works.

1 Like

I quickly created a fork on gitbub to do these changes if you want to use this instead of making the changes :slight_smile:

1 Like

Great. Thanks for your effort. As we have fog in the middle of Switzerland it´s a perfect day to test. I will give it a try.


Works perfect. Many thanks.


Hi all

I am interested in using this component too as I have a UPC TV box (the most recent one in black color). I’ve copied the custom_components from ashmodai to the respective folder in Home assistant and tried to setup the config.yaml (username, password and countrycode)

I am struggling with the username and password. Do I have to open an account at Ziggo to use the integration with my UPC TV box or do I have to enter the credentials from myupc.ch?

I could not find any information on that. In order to open an account at Ziggo I must have a customer number, but how should I get one as I dont live in the Netherlands?

Kind regards and many thanks for any clarification


Hi Andrew,

you should not use this fork anymore. There is a HACS add-on called ziggonext that has now also the possibility use a country code for Switzerland.

So please have a look here and follow the instructions:

You use the username and password from https://www.upctv.ch, so like when you are watching TV in a web browser. I don’t remember if that is the same user and password as on myupc but I think it is the same.

Let me know if you succeeded or if you have any trouble.


Hi René

many thanks for the quick reply. yes, it works like a charm! I can confirm that you have to enter the credentials from myupc.ch.

this made my day :slight_smile:

1 Like

actually I still got a question regarding the component and I hope that its the right place to ask, otherwise I would open an issue within the original repository.

I wanted to use this integration to dim the light in my living room. if the media_player entity has the state playing it should dim the lights. if the state is paused it should rise the brightness a bit. the automation works so far, but it takes around 3-5 seconds (sometimes it doesnt work), to change the state of the media player.

I also have the feeling that the change from paused to playing depends on how long the live tv is paused. so if i pause live tv and resume (no live tv, just resume) for lets say 2 minutes it takes longer to change the state from paused to playing. If I jump from pause right to live TV it immediately changes.

is it possible to check if you encounter the same behaviour? I would be glad to help with testing any modifications, as I dont have any programming-skills.

update: it seems that it sometimes doesnt recognize the states. for example the media_player is paused, then I press play but it still stays on paused. if i pause and play another time it works.

Hi Andrew,

I can confirm the issues you face. It’s the same for me. Sometimes it runs well for weeks, sometimes it looses the connection to the box.

Another issue with ziggo next media player is that it doesn’t work in Google home. It’s visible in the Home app if configured but it always says it’s not reacting.

The component is getting better with each update and hopefully all of this will be solved one day.

Maybe you can rather use the state of your TV to determine if something is playing.