Custom Component: SkyQ Media Player

great thanks, will do

Currently to turn on the decoder I use the “media_player.turn_on” service but, for some time this has not worked for me anymore, the decoder turns on and so does the TV, but no image is shown on the screen. My question is: is there another way to turn on the decoder? What is your method for this?

I’m using media_player.turn_on service to open Sky and turn on TV without issue so don’t think it’s a component issue.
Is your TV set to the correct hdmi input for the Sky box…would the no pic issue be as simple as that?

Yes all is set correctly, but strange is that the issue happens randomly and not always i try to turn on the decoder… I think it can depend on how the TV (Panasonic) is turned on by SkyQ because the mini media player shows correctly the program image the decoder is broadcasting… Only the TV screen is black.

Strange alright…
I’ve experienced a similar issue on a LG TV…if I’ve been watching something on input HDMI2 when the TV was turned off and next time I turn it on via turning on my SkyQ Box in HA (which would be on input HDMI1) everything turns on by the TV doesn’t switch to the correct HDMI input…same “issue” as you have in so far as TV is on, SkyQ is on but no picture (as wrong input) so it’s a TV issue for me not an issue with the component.

Don’t have a Panasonic TV myself but know there is a HA component for them…have you this configured? Maybe you can use a script in HA to turn on the TV first, set the HDMI input (to be sure) and then turn on the SkyQ Box…

(going slightly off topic here as it’s not related to this SkyQ component so apologies for that)

Sorry Maurizio: I see that you integrated all with Google Home.
Are you configured Google Home to change channel? If yes, how? Or better, do I need to import all the channels I want as switches in Google Home? I am trying to understand if there is a way to not export all these switches and create all the actions
Thanks

No, i did not created switches so i cannot change channels with google home, but there is a simple way to do this… Create the switches for the channels you want to control with google assistent… I think all is in the documentation of the integration.

Yes, it is: I created the switches…
The next steps are not clear, but no issue: I will investigate.

Thank you for your fast reply

1 Like

I have just released a new version which adds an indicator to show that the current programme being watched is being recorded. If the programme is being recorded, the 'skyq_media_type' attribute will show as 'liverecord'. This may affect some peoples automations if you utilise this state attribute.

1 Like

Could any one point me to the correct place to modify the IP addresses of my Q boxes please? I have had to change things in my home network, and the Q boxes are now on different fixed IPs.
I have looked in my configuration .yaml where I am sure I set it up originally but there is nothing in that file.
Thanks in advance for any pointers.

If you set it up via yaml, it will be wherever you have configured your media players. Maybe in an included file? If you setup via GUI, I’m afraid you will need to delete and re-add, since HA does not currently give the option to re-configure device identifiers such as IP (I think).

Ok thanks, perhaps I did not set up via yaml? as I can not see anything in media player. I will delete and re-add then. thanks

If you set them up via UI, then they will be visible in the Integrations configuration pane. If you didn’t they won’t :wink:

Hi, i just found this integration and immediately tried it.
It works like a charm, except for one thing.
My device becomes unavailable at night (because of stand by i suppose), but it remains no longer available unless i restart ha (it happens every morning)…
What am i missing?

Hi - Yes I’d expect it to go unavailable overnight, about 2.45-5.45, but it should just come back afterwards (or it least it does for me and no-one else has complained). You can turn on debug logging for custom_components.skyq and you should set the messages. It maybe Lovelace isn’t updating correctly (which I have heard of before), so check what the entity state is in developer tools, and if that is showing available but Lovelace is showing unavailable, then it is a frontend problem that I have no control over.

Thanks for your kind reply.
I looked at the entities, and the players i set in config.yaml are unavailable.
config.yaml :

  • platform: skyq
    name: ‘SkyQ Platinum’
    host: 192.168.1.100
    room: ‘Soggiorno’
    live_tv: True

  • platform: skyq
    name: ‘SkyQ Mini Camera’
    host: 192.168.1.102
    room: ‘Camera’
    live_tv: True

  • platform: skyq
    name: ‘SkyQ Mini Taverna’
    host: 192.168.1.101
    room: ‘Taverna’
    live_tv: True

When i restart HA they are available; during the night (stand by) they become unavailable; the strange thing is that when i look in the entities tab, i find the 3 players unavailable and 3 OTHER players (named as the others plus “_2”), and they are available. Obviously, if i change the name in ui_lovelace.yaml everything is ok, until i restart HA. then the “_2” players disappear and the ‘old’ return available… :thinking:

I (think) i turned on the debug : i set in config.yaml
logger:
default: debug
logs:
homeassistant.custom_components.skyq: debug

Sorry for the question, where do i find the logs?
In ‘Settings’->‘Registry’ ? (i translated from italian, where is ‘Impostazioni’->‘Registri’, i hope the names are the same)

I wouldn’t recommend using default: debug because then you will get debug logs for everything and will get overwhelmed. Something like this is better (use the </> in the tool bar at the top of the editor to surround your text with ``` so that it is formatted properly):-

logger:
  default: error
  logs:
    custom_components.skyq: debug

Logs are in the Configuration menu in the group with Server Controls. I’m not sure if you have to turn on Advanced Mode in your user account settings to make it visible.

For you configuration I wouldn’t put quotes round items, I’m not sure if that is causing the problem, but I don’t think it should. For your setup to achieve what you have configured, you only need:

- platform: skyq
  name: SkyQ Platinum
  host: 192.168.1.100

The room option is doing nothing in your configuration unless you enable generate_switches_for_channels. live_tv defaults to true.

Have a look at the logs and see if you see anything other than D0010M/E0010M/I0020M.

Ok, i modified the configuration like this:

- platform: skyq
  name: SkyQ Platinum
  host: 192.168.1.100

This morning i found the usual situation

This is what i found in the log :

Logger: custom_components.skyq.media_player
Source: custom_components/skyq/media_player.py:185 
Integration: Sky Q (documentation, issues) 
First occurred: 3:00:57 (3 occurrences) 
Last logged: 3:00:57

W0010M - Device is not available: SkyQ Mini Taverna
W0010M - Device is not available: SkyQ Platinum
W0010M - Device is not available: SkyQ Mini Camera

Then, at 5.00 :

Logger: homeassistant.helpers.entity
Source: custom_components/skyq/media_player.py:447 
First occurred: 5:01:42 (2 occurrences) 
Last logged: 5:02:32

Update for media_player.skyq_mini_taverna_2 fails
Update for media_player.skyq_mini_camera_2 fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 292, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 490, in async_device_update
    raise exc
  File "/config/custom_components/skyq/media_player.py", line 353, in async_update
    await self._async_updateState()
  File "/config/custom_components/skyq/media_player.py", line 447, in _async_updateState
    powerState = await self.hass.async_add_executor_job(self._remote.powerStatus)
  File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.8/site-packages/pyskyqremote/skyq_remote.py", line 92, in powerStatus
    self._setupRemote()
  File "/usr/local/lib/python3.8/site-packages/pyskyqremote/skyq_remote.py", line 486, in _setupRemote
    self._channels = self._getChannels()
  File "/usr/local/lib/python3.8/site-packages/pyskyqremote/skyq_remote.py", line 466, in _getChannels
    return channels["services"]
KeyError: 'services'

immediately followed by

Logger: custom_components.skyq.media_player
Source: custom_components/skyq/media_player.py:586 
Integration: Sky Q (documentation, issues) 
First occurred: 5:02:22 (3 occurrences) 
Last logged: 5:02:42

W0020M - Device is now available: SkyQ Mini Taverna
W0020M - Device is now available: SkyQ Platinum
W0020M - Device is now available: SkyQ Mini Camera

:no_mouth:

What if i try to remove and reinstall…?
Is there anything i have to pay special attention to…?

[Added later]
Whoops, i had a doubt :

You can use HACS by adding this repository as a custom Integration repository in HACS settings, *[u]or[/u]* install the component manually:

Put the files from /custom_components/skyq/ in your folder <config directory>/custom_components/skyq/

I added the repository in Hacs, then i copied the folder in my config directory.
Was it correct, or do one thing excluded the other…?

I’d be interested what you get when you access this URL because you shouldn’t get that error and not sure if that is causing an issue. http://192.168.1.100:9006/as/services. You should get a long list of channels starting something like. If it doesn’t look like this let me know. I assume you are in Italy, so I have problems diagnosing some issues since things are slightly different in Italy compared to UK.

{
   "documentId" : "595",
   "services" : [
      {
         "c" : "101",
         "dvbtriplet" : "2.2048.10353",
         "schedule" : true,
         "servicetype" : "DSAT",
         "servicetypes" : [ "DSAT" ],
         "sf" : "sd",
         "sg" : 12,
         "sid" : "2153",
         "sk" : 2153,
         "t" : "BBC One South",
         "xsg" : 3
      },

That said, you can set this up via the UI, (via Configuration/Integrations), but that shouldn’t make any difference. I’m interested that the new entities are created via the ‘Media Player’ (Lettore multimediale) integration directly, not via Sky Q. So I’d probably delete from config.yaml, reboot and add via UI.

You assume well, i’m from Italy, sorry i forgot to specify.
That’s what i found at that URL :

{
   "documentId" : "2729",
   "services" : [
      {
         "c" : "100",
         "dvbtriplet" : "64511.5800.3519",
         "schedule" : true,
         "servicetype" : "DSAT",
         "servicetypes" : [ "DSAT" ],
         "sf" : "hd",
         "sg" : 21,
         "sid" : "519",
         "sk" : 519,
         "t" : "Sky TG24 HD",
         "xsg" : 1
      },

at the EOF

   ],
   "version" : 2
}

I noticed the new entities were of the ‘media player’ kind, instead of the ‘sky q’ one.
I’ll try what you suggest
:+1: