Philips TV > 2016 support

Hi there

On the old forum:
some people (incl me) had problems to control Philips tv’s newer then 2016
some said that is was impossible coz philips wouldn’t support jointspace anymore. But that is not correct. Since then jointspace is activated by default. The error message “forbidden” shows when you are doing it wrong :slight_smile:

But i managed to control it finaly. I have the Philips 43PUS6262/12 and some features i allready have working.

i can at least put the tv in standby mode with this:

flowcard: POST JSON
1st field:
2nd field: { "key": "Standby" }

now you know how you can control your newer philips tv and i bet the rest of the commands can be figured out by anyone. i hope you will share them because this is till now the only one which i got working.


Hi All,

I have a Philips 49pus7101/12 from March 2016 and can tell you that Jointspace will not work on this model on port 1925 , i also think some later models?!

But in the past i have searched for other methods to control the TV and found some interesting stuff.

Before i had Homey i did some testing with Openhab on an RaspPi.
Below is a copy of some thing i have founded and tested.

I found on website some python code.
With this code the controls works.

First you need to us the command pair to pair the TV with the server, when you do this the TV generates a code that you need to enter in the python code…
When that is done, a new user and pass is shown and with this user and pass you can conrol you TV.

Some notes from site
The API is roughly the same as JointSpace ( ) with the following differences:

-Uses HTTPS over port 1926
-Uses /6/ instead of /1/ as the API path
-All calls have to have digest auth to be successful
-An initial pairing to determine the user/pass is required
-Channel and Source methods aren’t available
-Channel status and changes are performed using a different protocol that isn’t described here.

The tool here will do the initial pairing. The credentials can then be used in a standard way (digest) in other tools

Orignal link to openhab forum :

Maybe this will help in futher development in a working Homey App for the new models ( Without IR)



Oepsie my mistake :relieved: sorry voor the dutch

Always good for sharing information for other people who have time and the skills and willing to make a app for it.

Not really sure if it helps but I also found this Repo;
Not that many commands… Your site looks promising!

Is there someone on this forum who could take a look to see what the possibilities of these resources are?

Please check my screenshot… at least that is working.


I think you’ll be happy to hear that I’m currently working on a Homey app for Philips tv’s that supports 2016 models and up.

The most difficult part is behind me (digest auth on node combined with Philips tv is a nightmare). I’ve managed to get the pairing process working and I’m now able to call authed endpoints (which is basically all on the newer models).

I’ll be putting an initial version on github soon, will post a link here when it’s up.

I myself don’t have any channels installed on my Philips tv, so if there’s anyone who does and wants to help me test that part, that would be great.


That is awesome!
Can you also switch from (fe) HDMI1 to HDMI2 with 1 action?

Not sure if that is still supported, I think they removed selecting a source from the JointSpace API in v6 because this does no longer work:

But maybe there’s another way, you’re able to send an intent with an action to your tv, maybe it’s possible to open the native android app and pass along hmd2 as an action? I’m still looking into what all the calls are that I can implement. The process is a bit tedious because there’s no documentation whatsoever on v6. Everything I’ve done so far has been reverse engineering and copying stuff from other implementations such as

A short overview of the functionality that I’ve managed to succesfully test so far:


  • system info
  • applications (installed android tv apps)
  • channels
  • ambilight (current configuration; follow video/audio/etc and the type relax/intense/etc)
  • current activity (the currently opened app)
  • audio (level, muted)
  • powerstate (on/standby)


  • post key (a key from remote .e.g. CursorUp, Confirm or Standby)
  • launch activity (send an intent to open an application)
  • ambilight
  • audio (set volumne, mute, unmute)
  • powerstate
  • wake on lan

See bullit 4, set source. Does that mean that it is possible or is this the old way?

This article references the old (v1) implementation. An easy way to see what api version a specific call is, is by looking at the integer at the start of the path, e.g.:

v1 will have a uri like this:

v6 will have a uri like this:

I was thinking though… with the app that I’m making now you could in theory change the source by sending the following commands:

POST /6/input/key { "key": "Source" }
POST /6/input/key { "key": "CursorDown" }
POST /6/input/key { "key": "CursorDown" }
POST /6/input/key { "key": "CursorDown" }
POST /6/input/key { "key": "CursorDown" }
POST /6/input/key { "key": "Submit" }

Not the nicest way… but still better than doing it manually.

Oh… Geel… that explains a lot!!

Hi @lucasvdh,
Great work, happy to test the new Philips tv app for you.

1 Like

Published an initial version at lucasvdh/

I’ll submit an alpha version of the app soon. If you want to test the alpha version, DM me your email address so I can add you to the testers.

An alpha version of the app is now available here:

I’ve only had time to implement the on/off feature. I’ll try to implement more features, triggers and actions soon.

1 Like

2 posts were merged into an existing topic: Philips TV Testing

@Mickel_Luiten I’ve you’ve got nodejs locally I could provide you a debug script so you can see at which step the pairing process fails. Let me know.

@lucasvdh, please do with a little explenation.
I have nodejs running on my laptop also for athom-cli
tomorrow evening i have soms time to try out out.

@Mickel_Luiten I’ve just pushed a new test script to the git repository with which you should be able to debug the pairing process more thoroughly.

You can run the test script like this:

~ $ git clone\
 && cd\
 && git checkout alpha\
 && cd tests
Cloning into ''...
remote: Enumerating objects: 5887, done.
remote: Counting objects: 100% (5887/5887), done.
remote: Compressing objects: 100% (3247/3247), done.
remote: Total 5887 (delta 2229), reused 5816 (delta 2158), pack-reused 0
Receiving objects: 100% (5887/5887), 4.52 MiB | 3.90 MiB/s, done.
Resolving deltas: 100% (2229/2229), done.
Switched to a new branch 'alpha'
~ $ node pairing.js