Skip to main content

VIZIO SmartCast smart home integration, free and open source

VIZIO SmartCast integration for Gladys Assistant

VIZIO SmartCast TVs and sound bars, locally: power, volume, inputs, apps and remote keys.

Control your VIZIO SmartCast TVs and sound bars from Gladys, on your local network: power, volume, mute, inputs, apps, picture and sound modes, remote keys. No cloud, no VIZIO account: Gladys talks to the SmartCast API of each device directly (the API the VIZIO mobile app uses).

Developed without the hardware: feedback welcome. This integration was written from the documented protocol and from real answers of VIZIO TVs published by open-source projects, not tested on a real TV yet. Tell us what works and what does not: github.com/guim31/gladys-vizio/issues.

This integration is not affiliated with VIZIO, Inc. VIZIO and SmartCast are trademarks of their owners.

Prerequisites​

  • A VIZIO SmartCast TV (2016 and later) or sound bar, on the same local network as Gladys.
  • Gladys Assistant 5.1.0 or later.
  • On the TV, set the power mode to Quick Start (Menu, System, Power Mode). In Eco Mode, a TV in standby turns its network off: Gladys can neither see it nor turn it on, until it is turned on with its remote. The integration does not use Wake-on-LAN: VIZIO does not document it, and no report shows it waking a TV in Eco Mode.
  • Give each device a fixed IP address in your router (recommended).

Installation and configuration​

  1. In Gladys, open Integrations, then Install from GitHub, and install guim31/gladys-vizio.
  2. Turn your TVs and sound bars on. The integration looks for them on the network (mDNS, through Gladys) when it starts and at each Search in the Discovery tab.
  3. A device that is not found (another network, mDNS blocked): type its IP address in Addresses (optional), several separated by commas (192.168.1.30, 192.168.1.31).
  4. Sound bars need no pairing: they show up in the Discovery tab at once. TVs must be paired first (below).
  5. In the Discovery tab, add the devices to Gladys.

Options:

  • Favorite apps: the apps offered in the App list of each TV and by default in the shortcuts widget, by their SmartCast name (Netflix, YouTube, Prime Video, Disney+, Hulu, Apple TV+ by default, 12 at most). The names are those of the SmartCast catalog of pyvizio (150 apps: Netflix, Prime Video, Disney+, Hulu, YouTube, YouTube TV, Max as "HBO Max", Peacock, Paramount+, Plex, Pluto TV, Tubi, Apple TV+…); a name not in the catalog is reported in the integration status.
  • Refresh interval: 10, 15 or 30 seconds.
  • Volume step: change of each press on Volume + and Volume −.
  • Language of the feature names: the names given to the features when a device is added (they stay as they are afterwards), and the texts of the lists and of the scene events. French by default.

Pairing a TV​

A TV only obeys a client it knows: it shows a PIN, and gives a token once the PIN is typed. The integration keeps the token in its private storage (/data), never in the logs.

  1. Turn the TV on.
  2. In the configuration of the integration, run Start pairing. The TV shows a 4-digit PIN. With several TVs waiting for pairing, type the address of the one to pair in the action field.
  3. Type the PIN in the field of Enter the PIN and run it, within 5 minutes.
  4. The TV appears in the Discovery tab: add it.

The TV lists Gladys among its paired devices (named "Gladys"). A wrong PIN can be typed again while the TV still shows it. Pairing again replaces the token. After a factory reset of the TV, pair it again.

Test the connection looks for the devices, reads each of them, and tells for each what it finds: model, on or in standby, Eco mode, pairing needed, an address that does not answer.

Devices and features​

One device per TV or sound bar, identified by its serial number: a change of IP address (DHCP) is followed, the device stays the same.

TV​

FeatureWhat it does
PowerOn or standby; turns the TV on or off (Quick Start mode needed to turn it on).
Volume0 to 100, as on the TV.
Volume down / upButtons, by the volume step of the configuration.
MuteButton: mutes or unmutes (the state is shown by the widget and Now playing).
InputList of the TV's inputs, with the names set on the TV (SmartCast, HDMI-1, PS5…).
AppSmartCast Home, the favorite apps, and "Other" (an input, or an app not in the list).
Now playingText: the app (Netflix…), the input, or Off.
Picture modeList of the picture modes of the TV (Vivid, Calibrated, Game…), when it has them.
Channel down / upButtons, on TVs with a tuner.

Sound bar​

Power, Volume (0 to 31 on most sound bars, read from the device), Volume down, Volume up, Mute, Input (HDMI, Bluetooth, optical…), Now playing (the input), and Sound mode (the EQ of the sound bar: Music, Movie…) when it has one.

The feature names follow the Language of the feature names option: Power, Volume, Volume down, Volume up, Mute, Input, App, Now playing, Picture mode, Sound mode, Channel down, Channel up.

Dashboard widgets​

  • VIZIO remote: state of the device, what is playing, volume, and the Power, Volume −, Volume + and Mute buttons.
  • VIZIO shortcuts: four favorite apps or inputs, opened in one tap; the TV turns on first if needed. Type their names in the widget settings (Netflix, HDMI-1, PS5); all empty: the favorite apps of the configuration (the inputs on a sound bar). The one in front shows a check mark.
  • VIZIO keys: four remote keys of your choice (arrows by default; add a second widget for OK, Back, Home, Menu…). A sound bar only has some of them.

Each widget follows one device, chosen in its settings (the first one when empty).

Scene trigger​

TV: app or input changed fires when something new is in front, turning on included: an app (Netflix, YouTube…) or an input (a console over HDMI). Filters: the device, the kind (app or input) and the name, exactly as shown by the Now playing feature (Netflix, HDMI-1, PS5). It is seen within the refresh interval. Variables: the device name, the kind (app or input) and the name.

Power on and off need no trigger: use the state of the Power feature.

Scene actions​

  • Open an app on the TV: by its SmartCast name (Netflix, Prime Video, "disney plus" works too). Turns the TV on first if needed. Returns the name of the app opened.
  • Choose an input: by its name or the name set on the TV (HDMI-1, PS5). Turns the device on first if needed.
  • Send a remote control key: arrows, OK, Back, Home, Menu, Info, Play, Pause, Rewind, Fast forward, Volume, Mute, Channel, Last channel, Next input; repeated up to 10 times.

Scene examples​

  • Movie night: trigger TV: app or input changed, kind App, name Netflix → dim the living room lights to 20 % and close the shutters.
  • Game time: trigger TV: app or input changed, kind Input, name PS5 → set the picture mode to Game (feature Picture mode) and turn the ambient light on.
  • Good night: at 11:30 pm, if the TV Power is on → send a notification, then turn the TV off 15 minutes later.
  • Wake-up news: at 7 am on weekdays → Open an app on the TV YouTube TV, then set the volume to 15.

Refresh and network use​

The integration reads each device on its own timer, at the chosen interval: one request for the power state of a TV in standby; when it is on, two to four requests (power, input and app, sound settings, picture mode). A device that does not answer (Eco mode) costs one connection attempt per interval, and is not shown as an error. The states are sent to Gladys only when they change, and again every 6 hours. The inputs are read again every 30 minutes, the bounds and lists of the settings once a day.

The SmartCast API is local, without quota; its server is small, so the integration sends one request at a time to each device. Everything stays on your network: HTTPS on port 7345 or 9000, with the self-signed certificate of the device.

Troubleshooting​

  • No device found: the device must be on (or in Quick Start standby) and on the same network as Gladys. Otherwise, type its address in Addresses (optional), then run Test the connection.
  • "Pairing needed" in the integration status: run Start pairing with the TV on.
  • "The TV no longer accepts Gladys": the TV forgot the token (factory reset, firmware update): pair it again.
  • The TV does not turn on from Gladys: it is in Eco Mode; choose Quick Start on the TV.
  • Wrong PIN: type the PIN shown again, or run Start pairing again for a new one. After too many tries, the TV refuses pairing for a while.
  • An app does not open, or shows as "Unknown app": it is not in the SmartCast catalog, or its identifier changed. Tell us its name in an issue.
  • Detailed logs: start the container with LOG_LEVEL=debug.

Limitations​

  • Developed without the hardware: the requests follow pyvizio and vizaio, and the captures of a real TV they published, but this integration has not run against a real VIZIO device yet.
  • A TV in Eco Mode cannot be seen nor turned on while in standby.
  • The list of apps is the SmartCast catalog of pyvizio: a TV has no request listing its installed apps.
  • The mute state is shown, but Mute is a toggle button (SmartCast TVs treat every mute key as a toggle).
  • Picture mode and Sound mode depend on the firmware: they appear only when the device offers them.
  • VIZIO sells SmartCast devices in North America only.

Configuration settings​

These are the settings VIZIO SmartCast asks for in its configuration screen in Gladys.

SettingTypeRequiredDescription
Your VIZIO devicessectionNoSmartCast TVs and sound bars are found on your network. Pair each TV once with the two actions below. Set the TV power mode to Quick Start: in Eco mode, Gladys cannot turn it on.
Addresses (optional)stringNoOnly for a device the search does not find: its IP address, separated by commas. Give it a fixed address in your router.
Favorite appsstringNoThe apps of the App list of each TV and of the shortcuts widget, by their SmartCast name, separated by commas (12 at most).
OptionssectionNo
Refresh intervalselectNoHow often the devices are read. A device in Eco mode is not read.
Volume stepselectNoChange of each press on Volume + and Volume −.
Language of the feature namesselectNoNames given to the features when a device is added, and texts of the lists and scene events.

How to install VIZIO SmartCast in Gladys​

  1. In Gladys, open Integrations: VIZIO SmartCast appears in the catalog, next to the native integrations, with a community badge.
  2. Click Install. Gladys pulls the Docker image (ghcr.io/guim31/gladys-vizio:1.0.1), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration).
  3. Open the Configuration screen of the integration, fill in the settings, and save.
  4. You can also install it directly from its repository URL: https://github.com/guim31/gladys-vizio.

VIZIO SmartCast requires Gladys >=5.1.0. The catalog inside Gladys refreshes every hour, so a new version becomes available at most one hour after its release.

Not running Gladys yet? It is free and open source: follow the installation guide to get started.

About external integrations​

VIZIO SmartCast is an external integration: a community integration packaged as a Docker container and published on GitHub, that Gladys installs in one click and runs in a sandbox isolated from its core. It is published and maintained by guim31, not by the Gladys core team.

Subscribe to the Gladys Assistant newsletter

A few emails per month about new releases and project news. Sent by Pierre-Gilles Leymarie, founder of the project. Unsubscribe anytime 🙂