From 843a89816b5c29122abb797579442a9e47de6b3b Mon Sep 17 00:00:00 2001 From: Vlad Korniev Date: Tue, 11 Jul 2017 14:00:17 -0700 Subject: [PATCH] Vizio SmartCat TV support (#2906) * Vizio SmartCat TV support * Minor style changes --- .../_components/media_player.vizio.markdown | 93 ++++++++++++++++++ .../supported_brands/vizio-smartcast.png | Bin 0 -> 35296 bytes 2 files changed, 93 insertions(+) create mode 100644 source/_components/media_player.vizio.markdown create mode 100644 source/images/supported_brands/vizio-smartcast.png diff --git a/source/_components/media_player.vizio.markdown b/source/_components/media_player.vizio.markdown new file mode 100644 index 00000000000..b5bbaec40d6 --- /dev/null +++ b/source/_components/media_player.vizio.markdown @@ -0,0 +1,93 @@ +--- +layout: page +title: "Vizio SmartCast TV" +description: "Instructions how to integrate Vizio SmartCast TV into Home Assistant." +date: 2017-07-10 19:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: vizio-smartcast.png +ha_category: Media Player +featured: true +ha_release: 0.49 +ha_iot_class: "Local Polling" +--- + +The `vizio` component will allow you to control [SmartCast](https://www.vizio.com/smartcast-app) compatible TVs (2016+ models). + +## Pairing + +Before adding TV to Home Assistant you'll need to pair it manually, to do so follow these steps: + +Install the command-line tool using pip (you can choose to download it manually): + +```bash +$ pip3 install git+https://github.com/vkorn/pyvizio.git@master +$ pip3 install -I . +``` + +Make sure that your TV is on, as sometimes it won't show PIN code if it wasn't on during pairing initialization. +If you don't know IP address of your TV run following command: + +```bash +$ pyvizio --ip=0 --auth=0 discover +``` + +Initiate pairing: + +```bash +$ pyvizio --ip={ip} pair +``` + +Initiation will show you two different values: + +| Value | Description | +|:----------------|:---------------------| +| Challenge type | Usually it's should be `"1"`, if it's not the case for you, use 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 PIN code should be displayed at the top of your TV. With all these values, you can now finish pairing: + +```bash +$ pyvizio --ip={ip} pair_finish --token={challenge_token} --pin={tv_pin} +``` + +You will need authentication token returned by this command to configure Home Assistant. + +## Configuration + +To add your Vizio TV to your installation, add following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +media_player: + - platform: vizio + host: IP_ADDRESS + access_token: AUTH_TOKEN +``` + +Configuration variables: + +- **host** (*Required*): IP address of your TV. +- **access_token** (*Required*): Authentication token you've received in last step of the pairing process. + +## Notes and limitations + +### Turning TV on + +If you do have `Power Mode` of your TV configured to be `Eco Mode`, turning 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. + +### Sources + +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. It means that 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.` + +As an option, you could proxy all calls for example through NGINX. +

diff --git a/source/images/supported_brands/vizio-smartcast.png b/source/images/supported_brands/vizio-smartcast.png new file mode 100644 index 0000000000000000000000000000000000000000..a4b78ca45bf9157bd86f04c9441d970972642cc4 GIT binary patch literal 35296 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 literal 0 HcmV?d00001