Sky Q set-top box custom media_player component

Guys where do i place the port number 49160?
Thanks

Looks like the latest update (Q060.000.29.00L) has killed this. No longer works on port 49153 or 49160 - sky box drops the connection straight away, that’s on my 2tb silver box, looking at my mini though that’s on the same version and still works fine and responds ok on port 49153.

Rebooted my 2tb silver box and working fine on 49153 so looks like they have moved it back??

Hi, Is there any chance of the skyq.py file being made available again?
Many Thanks

I second that. Would be great to play around with.

Very interested in the status of this component / availability of skyq.py too. This looks like a great enhancement to HomeAssistant.

2 Likes

I’ve tried to follow this thread and install the bits and bobs mentioned, but when checking my config i get:

2018-02-21 21:17:03 ERROR (MainThread) [homeassistant.loader] Error loading custom_components.media_player.skyq. Make sure all dependencies are installed

what are all of the dependancies needed? ive installed pytz, ws4py & xmltodict

EDIT: ahh, its telling me ws4py isnt installed, but ive just done it!?

core-ssh:~# pip3 install ws4py
Requirement already satisfied: ws4py in /usr/lib/python3.6/site-packages
core-ssh:~#

I had to install ws4py.

It was then complaining about xml.parsers.expat.ExpatError for me, and adding an import xml at line 20 fixed it.

Working beautifully now. It’s a great addition to Home Assistant but it’s a shame that Sky don’t expose more functionality (e.g. control).

@dandowftm I’m pretty new to HomeAssistant, but isn’t that core-ssh: prompt that you have Hass.io? My understanding is that you can’t install python dependencies independently like that with Hassio, but instead would have to package up a Hassio add-on (as described at https://home-assistant.io/developers/hassio/addon_tutorial/).

Hi, yeah I think thats the case. I’m new to it all too, but did read yesterday that if I install hassbian rather than Hassio I can do it this way, does that sound correct?

Yes, I believe you’re correct. The server on which I have skyq.py working is actually set up as development server, as I want to try developing some custom components for HomeAssistant - but I believe Hassbian would be similar from an ‘installing python dependencies’ perspective.

Thank-you very much :smiley:

Nice one!
That way I can have other stuff such as nas running of the Pi too!

I would love this to work in hass.io… I have spare Pi 3’s and only want to use one to run home assistant so the pre built distro is great for me. I have a binary sensor working that tells me when the SkyQ is on or off but that’s about it… I am interested in going further to get this working but can someone point me in the right direction?

1 Like

How did you get a binary sensor working with SkyQ?

@coedy

So, firstly I made sure both my boxes have a static IP (mac address assignment on my router) and then -

In binarysensor.yaml

#Sky Q Power Binary Sensor

And in my switches.yaml

#switch 5 SkyQ Downstairs

  • platform: template
    switches:
    sky_q_living_room:
    value_template: “{{ is_state(‘binary_sensor.sky_q_living_room_power_status’, ‘on’) }}”
    turn_on:
    service: script.sky_q_living_room_power
    turn_off:
    service: script.sky_q_living_room_power

#switch 6 SkyQ Upstairs

  • platform: template
    switches:
    sky_q_bedroom:
    value_template: “{{ is_state(‘binary_sensor.sky_q_bedroom_power_status’, ‘on’) }}”
    turn_on:
    service: script.sky_q_bedroom_power
    turn_off:
    service: script.sky_q_bedroom_power

Side note - I have all my sensors/switches etc in a folder called includes and then individual files for each type and have includes statements in my configuration.yaml -

camera: !include includes/cameras.yaml
group: !include includes/groups.yaml
automation: !include includes/automations.yaml
script: !include includes/scripts.yaml
light: !include includes/lights.yaml
switch: !include includes/switches.yaml
media_player: !include includes/media_players.yaml
zone: !include includes/zones.yaml
shell_command: !include includes/shell_commands.yaml
sensor: !include includes/sensors.yaml
binary_sensor: !include includes/binarysensor.yaml

I haven’t actually tested/checked these in a while and I’m not at home to test them but they did always work before. You can’t the boxes on or off with this, it’s only an indicator of it’s status. A good way to test is browse to your boxes IP and then the following page - http://192.168.1.26:9006/as/system/information if you get an xml page with info and it changes when the box is on or off then it should still work!

2 Likes

Awesome! Just tested and it still works! I’ll get these added tomorrow if I get chance but pinging the address gets me the XML.

I wasnt worried about controlling them via home assistant directly, just check if they are on which this is perfect for!
I can then try controlling them by using my broadlink RM pro but my issue was home assistant not knowing if the box was on or not, so thanks a lot!

@wars

Any chance you’d be able to write a bit of a how to guide for someone that is VERY new to all things Home Assistant. My previous experience is very slim and I’m looking to progress.

Could you perhaps explain your setup in a little more detail? how do you create a new binarysensor.yaml to be read by the configuration.yaml

probably very obvious to everybody else but some of us are still new to this :joy:

Thanks for all help recived

Hi @wonkydog

Sorry for the delay in replying.

Creating the new binarysensor.yaml and any other .yaml files you want is easy. So long as you have a comment in your configuration.yaml to include them so, for example -

at the bottom of my configuration.yaml I have the following

camera: !include includes/cameras.yaml
group: !include includes/groups.yaml
automation: !include includes/automations.yaml
script: !include includes/scripts.yaml
light: !include includes/lights.yaml
switch: !include includes/switches.yaml
media_player: !include includes/media_players.yaml
zone: !include includes/zones.yaml
shell_command: !include includes/shell_commands.yaml
sensor: !include includes/sensors.yaml
binary_sensor: !include includes/binarysensor.yaml

I have created a new folder called includes and placed the above files in each. This leaves your config file a lot emptier and easy to manage. Does that make sense, I can explain further if you want.

What else would you like to know?

Thanks for the reply @wars

Ive been playing around and I’m glad to say I’m slowly picking things up.

From your post above I’ve managed to put the following into my configuration.yaml (for simplicity for now)

binarysensor:
  - platform: rest
    resource: http://192.168.0.3:9006/as/system/information
    name: SkyQ Living Room Power Status
    device_class: power
    value_template: ‘{% if (value_json.activeStandby == False) %}on{% else %}off{% endif %}’


switch:
  - platform: template
    switches:
      sky_q_living_room:
        value_template: “{{ is_state(‘binary_sensor.sky_q_living_room_power_status’, ‘on’) }}”
        turn_on:
          service: script.sky_q_living_room_power
        turn_off:
          service: script.sky_q_living_room_power

Does that look correct to you? The skyQ status is not showing and I get an error on load up telling me that the binary sensor and switch code is incorrect.

Running home assistant on hass.io and haven’t installed anything else? maybe thats the problem?

Thanks for your help!