Control TiVo box over telnet

It should work automatically if you get the overrides correct. In the overrides, define 101 as BBC One and 108 as BBC One HD. If everything is working as I intended, behind the scenes it will set hd_channel for 101 to be 108.

If it’s not doing that, let me know along with your overrides section. I can’t test with those specific channels because I don’t have 108, but I tried it with others.

Does not work for me.

In my “override” section I have them both

      enable: True
      override:
        101:
          name: BBC One
          package: Free-to-air
          is_hd: False
        104:
          name: Channel 4 HD
          package: Free-to-air
          is_hd: True
        108:
          name: BBC One HD
          package: Free-to-air
          is_hd: True

Lower down I also have them in the “channels” section

    channels:
      100:
        name: Virgin Media Previews
        package: Mix
      101:
        name: BBC One
        show: true
        package: Free-to-air
        hd_channel: 108
      102:
        name: BBC Two HD
        show: true
        package: Free-to-air
      103:
        name: ITV
        show: true
        package: Free-to-air
        hd_channel: 113
        plus_one: 114
      104:
        name: Channel 4 HD
        show: true
        package: Free-to-air
        plus_one: 142
      105:
        name: Channel 5
        show: true
        package: Free-to-air
        hd_channel: 150
        plus_one: 155
      106:
        name: E4
        show: true
        package: Player
        hd_channel: 145
        plus_one: 146
      107:
        name: BBC Four
        package: Free-to-air
        hd_channel: 163
      108:
        name: BBC One HD
        package: Free-to-air
        show: true

From the docs …

NB: If both tvchannellists and channels are configured, the site will be tried first and if this fails the local channel configuration will be used.

For the parsing of the web page on tvchannellists.com … I haven’t put any debug tracing in yet - but I wonder if the parsing has problems with the split rows … and 101 appearing twice with one flagged as HDTV and the other as SDTV.

<tr>
<td>101 <small>(Scot, Wales, NI)</small></td>
<td rowspan=“2”>BBC One HD</td>
<td rowspan=“2”>4 national variations. BBC iPlayer via the red button.</td>
<td rowspan=“2”>BBC</td>
<td rowspan=“2”>24 hours</td>
<td rowspan=“2” bgcolor=“Lime”>Player</td>
<td rowspan=“2” bgcolor=“lightgray”>1080i HDTV</td>
<td rowspan=“2”>2.0 PLII Digital / 5.1 AC3 Digital</td>
<td rowspan=“2”>2010/11/03
</td></tr>
<tr>
<td>108 <small>(Eng)</small>
</td></tr>
<tr>
<td>101 <small>(Eng)</small></td>
<td>BBC One [English region]</td>
<td>15 English regional variations; see also channels 851 and 861 (BBC One London). National versions of BBC One are on 862-864. BBC iPlayer via the red button.</td>
<td>BBC</td>
<td>24 hours</td>
<td bgcolor=“tan”>Free-to-air</td>
<td>16:9 SDTV</td>
<td>2.0 Stereo</td>
<td>2007/02/08
</td></tr>

Pushed a change. That should be working now.

The bit in the docs means that it is only if it can’t get any channels from the site (i.e. it is down or the table structure has been altered so much it can’t be used) that it will use the local channels.

It should be fairly tolerant of most changes and doesn’t care too much about split entries. It’ll use the first of those.

But anyway, give that a go.

Thanks, but it’s not really for them to worry about what someone else is scraping their site for. It’s really up to me to mirror any changes there. Hopefully they won’t make wholesale changes very often, although I do note that they don’t have a standard across the various listings.

Thanks - that change worked for me.
FYI - I am using the new style of custom_components/virgintivo/media_player.py and it works fine like that.

has anyone put together a nice hassio remote control for their tivo, like this very nice Kodi one? Kodi Remote

Sort of…

1 Like

That looks really cool, thanks for sharing!

Fix checked in for the problem with turning the box on from an off state. Hopefully that will work for you.

Also fixed a problem where the channel listings weren’t appearing for BBC One HD. Did a bit of tidying up on how that works while I was in there. Bound to have introduced some new bug :slight_smile:

1 Like

Brilliant! Updated and its working perfect.

Before I put in the new script I noticed that there was an informational log entry …

2019-03-19 10:06:32 WARNING (MainThread) [homeassistant.loader] Integrations need to be in their own folder. Change media_player/virgintivo.py to virgintivo/media_player.py. This will stop working soon.

So when I moved to the latest version of the script I deleted the media_player/virgintive.py file and folder and created a virgintivo folder and renamed the python script to media_player.py.

It all worked perfectly and I no longer get that info message … if you agree that its the correct thing to do, perhaps we could update the getting started comments in the readme.mid?

Thanks for fixing the bug - really appreciate it.

@Bertbert can I ask you another quick question please?

I’m trying to call the service to change the channel (triggered via google assistant voice command using IFTTT webhook).

I’m trying to call the service but I can’t get it to work … details below for the dev tools service call …

service: media_player.virgintivo_ircode
servicedata: {“entity_id”:“media_player.livingroomtivo”,“command”: “SETCH 101”}

my configuration.yaml is all good and works via the UI
media_player:

  • platform: virgintivo
    tivos:
    1:
    name: kitchentivo
    host: 192.168.0.28
    2:
    name: livingroomtivo
    host: 192.168.0.10
    tvchannellists:
    enable: True

I’m looking to send a service call to change to a specific channel, triggered by a google assistant command in IFTTT. All I have left to figure out is to send the service call from home assistant. Could you advise what I am doing wrong please? Just need an example of how to invoke a SETCH command - and how to ensure I send to the right tivo box when I have two set up.

The problem is that SETCH isn’t an ircode command. You’d need to call the select source command instead, e.g.

{
“entity_id”: “media_player.livingroomtivo”,
“source”: “ITV”
}

If it’s better for your automations to use channel number, I can add in a new service called virgintivo_setch.

1 Like

Brilliant! Didn’t realise I could do it the other way. I can totally use the service as you have shown. Thanks very much for getting back to me so quickly. Really appreciate that.

Has anyone had the issue where their TiVo shows that it’s on in homeassistant when it’s actually off? It’s only started happening recently.

Hmmm, you’re right. It’s happening for me too. Could be the fix I put in to allow turning on the box when it is off. Or it could be something changed on the box itself.

I’ll have a quick look tonight, although it’ll probably be the weekend before I get a proper chance to work it out.

2 Likes

Thankyou and keep up the great work! Love using this component, especially being able to skip adverts from my phone.

Has anyone else lost the virgin tivo entity since upgrading to 0.92 ?

Apparently so. I haven’t upgraded yet so I don’t know the details but it was raised as an issue on Github. I’ll do an upgrade tonight and see what is going on. Of course I said that about the Tivo showing as on when off problem, but never managed to get around to it. But honest I will at some point!

1 Like

Ok, looks like as of 0.92 all components need a manifest file. Stick this into the custom_components/virgintivo folder:

https://raw.githubusercontent.com/bertbert72/HomeAssistant_VirginTivo/master/custom_components/virgintivo/manifest.json

1 Like

Brilliant! Fixed everything for me. Thanks for fixing this so quickly.