Last channel function added. Use the previous track button for it. I’ve made the next track button into a toggle for the +1 functionality, i.e. once to switch to the +1 channel, a second to switch back to normal.
HI there,
I’m new to the HA setup, I only installed this yesterday on Windows 10 to test out the feasibility before I go down the PI route.
I have tried to install your plugin, and I am getting the following error:
2018-07-15 08:54:08 INFO (MainThread) [homeassistant.setup] Setting up media_player
2018-07-15 08:54:08 ERROR (MainThread) [homeassistant.setup] Error during setup of component media_player
Traceback (most recent call last):
File “c:\users\xxx\appdata\local\programs\python\python37\lib\site-packages\homeassistant\setup.py”, line 146, in _async_setup_component
component.setup, hass, processed_config) # type: ignore
AttributeError: module ‘custom_components.media_player’ has no attribute ‘setup’
I have installed the plugin in the C:\Users\xxx\AppData\Roaming.homeassistant\custom_components\media_player folder, which I assume is the right thing to do.
I’m pretty sure this will be something I’ve done wrong, but if you have any pointers that would be helpful!
Can you show us your configuration? It looks like it is trying to use a component called “media_player” which makes me think something isn’t right in there.
Sure, I’ve truncated it after BBC1 as that is just pasted from your config file anyway:
homeassistant:
Name of the location where Home Assistant is running
name: Home
Location required to calculate the time the sun rises and sets
latitude: 0
longitude: 0
Impacts weather/sunrise data (altitude above sea level in meters)
elevation: 0
metric for Metric, imperial for Imperial
unit_system: metric
Pick yours from here:
time_zone: UTC
Customization file
customize: !include customize.yaml
Show links to resources in log and frontend
introduction:
Enables the frontend
frontend:
Enables configuration UI
config:
http:
Secrets are defined in the file secrets.yaml
api_password: !secret http_password
Uncomment this if you are using SSL/TLS, running in Docker container, etc.
base_url: example.duckdns.org:8123
Checks for available updates
Note: This component will send some information about your system to
the developers to assist with development of Home Assistant.
updater:
Optional, allows Home Assistant developers to focus on popular components.
include_used_components: true
Discover some devices automatically
discovery:
Allows you to issue voice commands from the frontend in enabled browsers
conversation:
Enables support for tracking state changes over time
history:
View all events in a logbook
logbook:
Enables a map showing the location of tracked devices
map:
Track the sun
sun:
Weather prediction
sensor:
- platform: yr
Text to speech
tts:
- platform: google
Cloud
cloud:
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
switch:
platform: telnet
switches:
tivo_guide:
resource: “192.168.0.10”
port: 31339
command_on: “IRCODE GUIDE”
command_off: “IRCODE GUIDE”
command_state: “”
value_template: “”
name: Guide
tivo_info:
resource: “192.168.0.10”
port: 31339
command_on: “IRCODE INFO”
command_off: “IRCODE INFO”
command_state: “”
value_template: “”
name: Info
media_player:
-
platform: braviatv
host: 192.168.0.212
name: KitchenTV -
platform: virgintivo
default_is_show: false
default_is_hd: true
scan_interval: 1
tivos:
1:
name: Virgin V6
host: 192.168.0.10
force_hd: true
2:
name: Virgin Tivo
host: 192.168.0.10
3:
name: Virgin Pretend
host: 192.168.0.10
guide:
picture_refresh: 30
channels:
100:
name: Virgin Media Previews
101:
name: BBC One
show: true
hd_channel: 108
Indentation is significant. Could you post your config again, this time using the preformatted text tags?
Sure, I hadn’t noticed that it had affected the formatting!
homeassistant:
# Name of the location where Home Assistant is running
name: Home
# Location required to calculate the time the sun rises and sets
latitude: 0
longitude: 0
# Impacts weather/sunrise data (altitude above sea level in meters)
elevation: 0
# metric for Metric, imperial for Imperial
unit_system: metric
# Pick yours from here: http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
time_zone: UTC
# Customization file
customize: !include customize.yaml
# Show links to resources in log and frontend
introduction:
# Enables the frontend
frontend:
# Enables configuration UI
config:
http:
# Secrets are defined in the file secrets.yaml
# api_password: !secret http_password
# Uncomment this if you are using SSL/TLS, running in Docker container, etc.
# base_url: example.duckdns.org:8123
# Checks for available updates
# Note: This component will send some information about your system to
# the developers to assist with development of Home Assistant.
# For more information, please see:
# https://home-assistant.io/blog/2016/10/25/explaining-the-updater/
updater:
# Optional, allows Home Assistant developers to focus on popular components.
# include_used_components: true
# Discover some devices automatically
discovery:
# Allows you to issue voice commands from the frontend in enabled browsers
conversation:
# Enables support for tracking state changes over time
history:
# View all events in a logbook
logbook:
# Enables a map showing the location of tracked devices
map:
# Track the sun
sun:
# Weather prediction
sensor:
- platform: yr
# Text to speech
tts:
- platform: google
# Cloud
cloud:
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
switch:
platform: telnet
switches:
tivo_guide:
resource: "192.168.0.10"
port: 31339
command_on: "IRCODE GUIDE"
command_off: "IRCODE GUIDE"
command_state: ""
value_template: ""
name: Guide
tivo_info:
resource: "192.168.0.10"
port: 31339
command_on: "IRCODE INFO"
command_off: "IRCODE INFO"
command_state: ""
value_template: ""
name: Info
media_player:
- platform: braviatv
host: 192.168.0.212
name: KitchenTV
- platform: virgintivo
default_is_show: false
default_is_hd: true
scan_interval: 1
tivos:
1:
name: Virgin V6
host: 192.168.0.10
force_hd: true
2:
name: Virgin Tivo
host: 192.168.0.10
3:
name: Virgin Pretend
host: 192.168.0.10
guide:
picture_refresh: 30
channels:
100:
name: Virgin Media Previews
101:
name: BBC One
show: true
hd_channel: 108
Use berts full example on github - I made the same mistake by only using a few channels but used his full example and it worked.
Oh yeh, I had seen that, but I am using the whole channel list, I have just truncated what I have posted so that it saves posting the whole lot!
Looks ok, although you’ll probably want to remove Tivos 2 and 3. Which means it might be the folder structure. I’m not using this on Windows, but I’ll assume that the path you posted is where Windows puts this stuff. In which case, I’m guessing that under custom_components, you’ve created a file called media_player.py? If so, that’s not right. Your structure should be
custom_components\media_player\virgintivo.py
If that’s not what is wrong, I dunno…
Hi.
Where do i type this command?
sudo apt-get install telnetd
I installed using hass io and when i SSH into the pi it says the command is invalid as i don’t think it is actually connected to the pi’s terminal. Thanks
sudo apt-get install telnet*
Ssh on to your pi. Think you had a typo above,
Hi Bertbert,
No, I do have the correct file path (custom_components\media_player\virgintivo.py), but I don’t know if it’s a WIndows-ism, or a Python version issue?
However, I tried copying the virgintivo.py file into the main components folder, and it works fine. I know this will cause me issues with upgrades etc, but it allows me to have a play.
Not sure what causes the issue with the fact it’s in the custom_components folder, but thanks for your help so far!
Glad you’ve got it sorted for now. Hopefully when you stick it on your Pi, it’ll work ok in the custom components folder.
A few bugfixes and a new function to allow override of the HD auto switching, e.g. when you want to view a regional programme on the SD channel that’s not on the HD one. Just switch back to the SD channel within a few seconds of the HD auto switch and it will now remain on the SD version. As requested by my better half…
Hey, so I’m using this without issue and loving it so thanks for your efforts. One thing though is that if I switch the box to standby my log file up with this error: ‘Virgin V6: timeout on connection, will retry’. Is there any way I can suppress this?
See if that works better for you. It should now just show the failure once when it first happens. It won’t show it again until the Tivo is switched on and off again.
Changed the default behaviour to be that the component disconnects from the Tivo between commands. There doesn’t seem to be any great advantage in staying permanently connected and given that there can only be one telnet session at a time, probably better if I don’t hog it. I only had it like that because the Tivo documentation implied more than one client could be connected at a time listening for updates.
To reinstate the previous behaviour, just use keep_connected: true in your configuration file.
Thank you. This is great.
One thing I have noticed, not sure if it’s due to the latest version, but when watching something recorded in ‘my shows’ the widget in the overview screen shows the box as off. It comes back on if I skip the recording and go back to live tv.
Not a massive problem, but thought you should know.
It’s not new but unfortunately I don’t know if there is anything I can do about it. The Tivo reacts the same whether it is off or playing a recording. In both cases it doesn’t give any response on the telnet session. If anybody knows of a way to differentiate them I can add it in.
Just looking at the TiVo TCP guide.
The only thing I could suggest would be to send a ‘SETCH’ command just after you get a disconnect. If the box is on but just not in live mode it should return ‘CH_FAILED NO_LIVE’. If the box is truly off then you should get nothing back.
Could cause funky behaviour if the box actually responds and changes the channel though.