Vizio SmartCast TV

The vizio component will allow you to control SmartCast compatible TVs (2016+ models).


Before adding your TV to Home Assistant you’ll need to pair it manually. To do so follow these steps:

Install the command-line tool using pip (or you can choose to download it manually):

$ pip3 install git+[email protected]


$ pip3 install -I .

Make sure that your TV is on before continuing.

If you don’t know IP address of your TV run following command:

$ pyvizio --ip=0 --auth=0 discover

Enter the following command to initiate pairing:

$ pyvizio --ip={ip} pair

Initiation will show you two different values:

Value Description
Challenge type Usually it should be "1". If not, use the additional parameter --ch_type=your_type in the next step
Challenge token Token required to finalize pairing in the next step

Finally, at this point a PIN code should be displayed at the top of your TV. With all these values, you can now finish pairing:

$ pyvizio --ip={ip} pair_finish --token={challenge_token} --pin={tv_pin} 

You will need the authentication token returned by this command to configure Home Assistant.


To add your Vizio TV to your installation, add the following to your configuration.yaml file:

# Example configuration.yaml entry
  - platform: vizio
    host: IP_ADDRESS
    access_token: AUTH_TOKEN

Configuration variables:

  • host (Required): IP address of your TV.
  • access_token (Required): Authentication token you received in the last step of the pairing process.

Notes and limitations

Turning TV on

If the Power Mode of your TV is set to Eco Mode, turning the device ON won’t work.

Changing tracks

Changing tracks works like channels switching. If you have source other than regular TV it might end do nothing.


Source list shows all external devices connected to the TV through HDMI plus list of internal devices (TV mode, Chrome Cast, etc.).

Vizio SmartCast service is accessible through HTTPS with self-signed certificate. If you have low LOGLEVEL in your Home Assistant configuration, you’ll see a lot of warnings like this: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. You can adjust the log level for media_player components with the logger component, or if you need to keep a low log level for media_player you could proxy calls to your TV through an NGINX reverse proxy. If you want to only ignore only this specific python urllib3 SSL warning, you will need to run Home Assistant with the python flag -W or the environment variable PYTHONWARNINGS set to: ignore:Unverified HTTPS request is being made