A custom Home Assistant integration to control TiVo devices via telnet, with support for customizable favorite channel buttons.
- Control your TiVo using button and switch entities in Home Assistant
- Define up to 20 favorite channels
- Clean integration with the Home Assistant UI
Before using this integration, you must enable remote access on your TiVo:
- On your TiVo remote, press the TiVo button
- Navigate to Settings & Messages β Settings β Network β View Network Details
- Ensure Allow Network Remote Control is set to Yes
- Note the IP address shown here for use during integration setup
Once done, continue below:
- Download the latest release ZIP or clone this repo into your Home Assistant
custom_componentsdirectory:
cd config/custom_components
git clone https://github.com/Timman70/hass-tivo-
Restart Home Assistant
-
Go to Settings β Devices & Services β Add Integration, search for TiVo, and configure your device:
- Enter the device name and IP address
- Set up to 20 favorite channels by name and channel number
Each favorite channel is exposed as a button entity like:
button.living_room_espn
button.master_bedroom_abc
You can use these in dashboards, scripts, or automations to tune to specific channels.
Note: Entities now support unique IDs and can be renamed or disabled in the UI.
Common TiVo commands (like UP, PLAY, GUIDE, etc.) are exposed as switch entities, such as:
switch.living_room_up
switch.living_room_guide
They send commands via telnet to your TiVo when toggled on.
To change channel names or numbers after setup:
- Go to Settings > Devices & Services
- Find the TiVo integration
- Click β― > Configure
- Update your favorite channel labels and numbers
- Click Submit
After submitting, click β― > Reload to apply the changes and update the entities in the UI.
Each channel is exposed as a button entity (e.g., button.officetivo_hbo) that sends the new channel number to the TiVo when pressed.
- A TiVo device with network access and port
31339open for telnet control - Home Assistant 2023.5+ recommended
alias: Watch ESPN
trigger:
- platform: state
entity_id: input_boolean.watch_espn
to: "on"
action:
- service: button.press
target:
entity_id: button.living_room_espnMaintained by Timman70