Philips Android TV component

According to the documentation, sending keys is not supported.

Sending keys are supported on next release (using the remote integration) or if you grab the pull request for ambilight control, where some things in regards to the toggling on/off should also be resolved somewhat.

1 Like

@pepe59 could you post the system (http://hostname:1925/1/system) endpoint on your device (redact the serial field)? I’m curious what version it is running.

If I enter the URL (http: // IP TV: 1925/1 / system) it will write:
Not found
The server did not find anything that matched the request URI
Technical details can be found here.
Continue your visit on our homepage.

Strange. They usually all respond to the v1 endpoint.

Check these:
http://hostname:1925/6/system
https://hostname:1926/6/system

Yes, if I used https: // IP TV: 1926/6 / system then it gave a lot of information. Which exactly do you want to know?

Preferable the whole set preferably. You can redact serial and country. You can om me of you feel like it is better.

That’s what we got

{"notifyChange":"http","menulanguage":"Czech","name":"Home tv","country":"Czech Republic","serialnumber_encrypted":"CohlcJZo7arzvoOYGWUOkfhOOX8Q0cnkXNL3tTM5mdk=\n","softwareversion_encrypted":"hV\/V9gYj5PhCxxdgCeq4NoFvm9NO9GXAO\/swwKGXG4SFGtvB7yOG1Ppmeqg78eXd\n","model_encrypted":"mSzvkcupB26XGzhImM8BXvVOpNbWMejSWwxuPlpYv3U=\n","deviceid_encrypted":"2yChvO4FjrVamUQRHeAu\/FfB\/tSdmZoAgxCnutmXsQw=\n","nettvversion":"9.0.0","epgsource":"broadcast","api_version":{"Major":6,"Minor":4,"Patch":0},"featuring":{"jsonfeatures":{"editfavorites":["TVChannels","SatChannels"],"recordings":["List","Schedule","Manage"],"ambilight":["LoungeLight","Hue","Ambilight","HueStreaming"],"menuitems":["Setup_Menu"],"textentry":["not_available"],"applications":["TV_Apps","TV_Games","TV_Settings"],"pointer":["not_available"],"inputkey":["key"],"activities":["intent"],"channels":["preset_string"],"mappings":["server_mapping"]},"systemfeatures":{"tvtype":"consumer","content":["dmr","pvr"],"tvsearch":"intent","pairing_type":"digest_auth_pairing","secured_transport":"true","companion_screen":"true"}},"os_type":"MSAF_2019_P"}

Odd. That seem like a standard model. So hdm2-4 give you correct hdmi number selected? Ie 3 goes to 3, 2 goes to 2?

Yes, if I enter (developer tools) the TV switches to VCR.

service: media_player.select_source
data:
  source: HDMI 1
target:
  entity_id: media_player.home_tv_2

Other HDMI 2,3,4 agree

If I switch from entity, it’s the same.

I am sorry. The source has been renamed from previous TV tests. I forgot about it. I’ve fixed it right now, and of course everything works fine. Excuse my stupidity once again.

Hah, i was about to ask :slight_smile:

A heads up for those that update with the latest update for the 2019/2020 tv’s. They changed how serial numbers are reported. Thus the ID is new (leading to new entity_ids). Also authentication information is lost inside the TV so you need to re-add the TV to homeassistant.

I’ve already noticed twice that the component lost track of my TV. The only thing that fixed it was to restart my TV. Restarting HA didn’t help. My model: 55POS9002.
Also turn_off turns the TV on if it is already off.

Hello, tried to test ambilight, received this log

First occurred: 12:43:50 (2 occurrences) 
Last logged: 12:43:50

Error adding entities for domain light with platform philips_js
Error while setting up philips_js platform for light
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 317, in async_add_entities
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 385, in _async_add_entity
    device_info = entity.device_info
  File "/config/custom_components/philips_js/light.py", line 191, in device_info
    "sw_version": self._system["softwareversion"],
KeyError: 'softwareversion'

Edited: I have compared media_player.py and light.py and replaced

    def device_info(self):
        """Return a device description for device registry."""
        return {
            "name": self._system["name"],
            "identifiers": {
                (DOMAIN, self._system["serialnumber"]),
            },
            "model": self._system["model"],
            "manufacturer": "Philips",
            "sw_version": self._system["softwareversion"],
        }

with

    def device_info(self):
        """Return a device description for device registry."""
        return {
            "name": self._system["name"],
            "identifiers": {
                (DOMAIN, self._unique_id),
            },
            "model": self._system.get("model"),
            "manufacturer": "Philips",
            "sw_version": self._system.get("softwareversion"),
        }

And it worked for me. Will add this as a commit

1 Like

HI @elupus I’ve just tried to switch one of my TVs to the official v6 supporting component however the Android apps no longer appear in the sources drop down (as they did with the custom component) is this expected? If so how would we fire up an app?

Thanks.

The media browser button. That is where you find channels too.

1 Like

Awesome thank you!

@elupus I just tried the new remote events. They seem a lot slower than the android learn events. Is this expected behavior? I’m using this with the Apple Homekit remote and the delay would be just too much.