Philips TV (2016+) Binding

thanks for the quick fix !! binding is working on a 55POS9002

org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.philipstv [242]

Unresolved requirement: Require-Capability: osgi.extender; filter:="(&(osgi.extender=osgi.component)(version>=1.4.0)(!(version>=2.0.0)))"

at org.eclipse.osgi.container.Module.start(Module.java:444) [?:?]

at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) [?:?]

at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) [9:org.apache.felix.fileinstall:3.6.4]

at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) [9:org.apache.felix.fileinstall:3.6.4]

at org.apache.felix.fileinstall.internal.DirectoryWatcher.startAllBundles(DirectoryWatcher.java:1221) [9:org.apache.felix.fileinstall:3.6.4]

at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:515) [9:org.apache.felix.fileinstall:3.6.4]

at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) [9:org.apache.felix.fileinstall:3.6.4]

at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) [9:org.apache.felix.fileinstall:3.6.4]

Hi,
I followed the installation guide, but I get this error. Can someone help me?

Thanks in advance.

Kind regards
Ben

@jackydec glad to hear that, enjoy!

@SnapDrive which OH Version are you running on? This is quite a strange error, never encountered this one before. A quick research revealed that feature:install scr in the openhab console might help (https://stackoverflow.com/questions/40790543/unresolved-requirement-osgi-component). This should actually be already provided by your openhab installation.

I had Version 2.3, I now updated to 2.5 now the Binding starts, but when I want to connect my TV and enter the Pin following error come:

'philipstv:tv:F00DBABE_AA5E_BABA_DADA_70af24ac2483' changed from OFFLINE (HANDLER_INITIALIZING_ERROR): Could not successfully finish pairing process with the TV. to OFFLINE (CONFIGURATION_ERROR): Error occurred during retrieval of credentials.

So at least the binding runs - the logs should actually state more information about what went wrong? Which exact TV model you’re owning?

The given username/password combination is invalid.

What can I do, when I get this error?
Thanks in advance.

So you have come further? This means you’ll have to remove your tv thing once again to restart the credential retrieval. Your TV is rejecting the user+pw combination.

I already removed the thing. But the same thing happend.

What tv model are we talking about? What does a call in your browser to http://192.168.0.129:1925/6/system (replace the IP with the one from your TV) return?

Hi,
I have model 43PUS7354/12 auto-discovery does work, but shows my TV twice. When I connect I don’t get the pairing code :frowning: little help please :slight_smile:

Thanks!

Hey Maarten,

what does the log say? There should be more information about what’s going on.
Also what does a call in your browser to http://192.168.0.129:1925/6/system (replace the IP with the one from your TV) return?

Regarding two shown things: It shouldn’t make any difference for the usage - seems like your tv exposes two UPnP devices which matches the bindings criteria.

Hi,

Thanks for the quick response!

Log:
2019-11-21 12:18:39.300 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing ‘philipstv:tv:F00DBABE_AA5E_BABA_DADA_000000005FD0’ to inbox.
2019-11-21 12:18:48.748 [INFO ] [tv.internal.handler.PhilipsTvHandler] - Pairing code for tv authentication is missing. Starting initial pairing process. Please provide manually the pairing code shown on the tv at the configuration of the tv thing.

Return browser: HTTP ERROR 500

Hmm ok, could you also try again the call in your browser with http://192.168.0.129:1925/system (without the 6 in the path)?

Same result :frowning:

OK, I guess that’s because you own a 2019 model and they’re using the new Android 9. My best guess is, that they’ve changed something which breaks the API usage of my binding… since it’s new there aren’t really any information about that on the internet yet. You could try again exchanging 1925 with 1926 or a 7 instead of 6 in the path… The HTTP ERROR 500 indicates the call is getting somehow processed, but not successfully.
Did you try out the Philips TV Remote Android App? Would be interesting if it works and if you needed to enter a PIN.
If we would at least somehow know which jointspace version is being used / the information from the /system path, we would get further…

App doesn’t work either. Tried different combinations for the path all with the same result (error 500) If I change the port 1925 to 1926 or something different it just says connection refused…

I send an email to the developers of the app if they know more. Maybe they have an solution.

Interesting, I’ve downloaded the user manual for your tv and the App is mentioned there.
Let’s see what they will answer, I’m interested in supporting 2019er TV models aswell. It’s too bad that they are not publishing their APIs anymore like they used to did years ago.

Does this binding support checking if the TV is currently on or not? I am currently doing that with a python script by requesting /6/powerstate every second which requires more CPU than using a native binding would. If it says OFF or there is no response for 5 consecutive requests I update to OFF.

Also: When sending ON Power command and the TV is already on it should stay on and not turn off (I achieved this in my script aswell by checking the current status and ignoring the command if it is the same as the current status).

Yes, the Binding will recognize if the tv turned off or is turned on.

Regarding your second question: what do you mean by “sending ON if tv is turned on will let the tv stay ON”? Would you expect that it might turn off because of this? If so: no, sending power ON to a tv that is already turned on doesn’t have any impact

Thanks for your answer. Unfortunately the ON/OFF detection doesn’t work at all, even though I set refreshRate to 1 so it should poll once per second. I turn the TV on using the remote and it stays off in openHAB. Also after sending an OFF command the thing goes offline immediately, even though the TV is still reachable.

I would expect the following:
TV is turned off, Binding recognizes this and changes power to OFF, Thing stays online as the connection is still working until the TV really turns itself off (there is like a minute between the TV going off and the network being shut down), Remote turns on the TV and the binding recognizes this again and changes power to ON. Unfortunately there doesn’t seem to be any polling going on here at the moment so changes in powerstate are not detected.