{ "info": { "author": "Vlad Korniev", "author_email": "vladimir.kornev@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Programming Language :: Python :: 3" ], "description": "## Description\n\nSimple cli and API implementation for Vizio SmartCast TVs and Sound Bars. Mainly created for \nintegration with [HASS](http://home-assistant.io). Note that some of the interaction commands are not supported by \nsound bars.\n\n## Installation\n\nEither through pip\n\n```\npip3 install git+https://github.com/vkorn/pyvizio.git@master\n```\n\nor checkout repo and run \n\n```\npip3 install -I .\n```\n\n## CLI Usage\n\nTo avoid repeating IP (`--ip`), Auth (`--auth`), and Device Type (`--device_type`) params in each CLI call, you can add them to environment variables as `VIZIO_IP`, `VIZIO_AUTH`, and `VIZIO_DEVICE_TYPE` respectively\n\n`--device-type` options are `tv` and `soundbar`. If the parameter is not included, the device type is assumed to be `tv`. Note that TVs always require a pairing process to get an auth token. Sound Bars may not always need an auth token but YMMV based on your particular model.\n\n### Find your device\n\nFirst, find your device (yeah, I'm too lazy to add another cli group)\n```\npyvizio --ip=0 discover\n```\n\nand note it's IP address. If using your IP address by itself does not lead to success, you may need to append `:9000` or `:7345` to it when using it as a parameter in future commands. \n\n### Pairing\n\n> For a Sounnd Bar, it is unclear how the device would notify you of a valid auth token, so it's best to first skip the pairing process entirely, specify `--device_type=soundbar`, and try commands like `volume-current` to see if you have any success. If not, and if specifying different ports as mentioned above doesn't work, you will need to find a way to get the auth token during this process.\n\nUsing your device's IP address, request pairing procedure:\n\n```\npyvizio --ip={ip} --device_type={device_type} pair\n```\n\nFor TVs, lookup the PIN code on your TV, and note challenge token in console. It's not clear how you would obtain an auth token for a Sound Bar. \n\n> Better to have device turned on as it's \"forgetting\" PIN sometimes if it was \nturned off prior to pairing command\n\nUsing these dafa finalize pairing procedure\n```\npyvizio --ip={ip} --device_type={device_type} pair-finish --token={challenge_token} --pin={_pin} \n```\nIf everything done correctly, you should see new connected device named `Python Vizio` \nin Vizio SmartCast mobile APP \n\n\n> For a TV, you'll need auth code for any further commands. If you are interacting with a Sound Bar, and skipped the pairing process, you don't need to include the `--auth` parameter in any of the following calls since you don't have an auth code.\n\n### Turning on/off\n\n```\npyvizio --ip={ip} --device_type={device_type} --auth={auth_code} power {on|off|toggle}\n```\n\nTo get current power state simply call\n\n```\npyvizio --ip={ip} --device_type={device_type} --auth={auth_code} power-get\n``` \n\n### Volume operations\n\nYou could change volume\n\n```\npyvizio --ip={ip} --device_type={device_type} --auth={auth_code} volume {up|down} amount\n```\n\nand get current level (0-100)\n\n```\npyvizio --ip={ip} --device_type={device_type} --auth={auth_code} volume-current\n```\n\nIn addition mute command is available\n\n```\npyvizio --ip={ip} --device_type={device_type} --auth={auth_code} mute {on|off|toggle}\n```\n\n### Switching channels\n```\npyvizio --ip={ip} --device_type={device_type} --auth={auth_code} channel {up|down|prev} amount\n```\n\n### Input sources\n\nYou can get current source \n\n```\npyvizio --ip={ip} --device_type={device_type} --auth={auth_code} input-get\n```\n\nList all connected devices\n\n```\npyvizio --ip={ip} --device_type={device_type} --auth={auth_code} input-list\n```\n\nAnd using `Name` column from this list, you can switch input:\n\n```\npyvizio --ip={ip} --device_type={device_type} --auth={auth_code} input --name={name}\n```\n\nOther options is to circle through all inputs\n```\npyvizio --ip={ip} --device_type={device_type} --auth={auth_code} input-next\n``` \n\n## Contribution\n\nThanks for great research uploaded [here](https://github.com/exiva/Vizio_SmartCast_API) and \nabsolutely awesome SSDP discovery [snippet](https://gist.github.com/dankrause/6000248)", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/vkorn/pyvizio", "keywords": "vizio smartcast", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "pyvizio", "package_url": "https://pypi.org/project/pyvizio/", "platform": "", "project_url": "https://pypi.org/project/pyvizio/", "project_urls": { "Homepage": "https://github.com/vkorn/pyvizio" }, "release_url": "https://pypi.org/project/pyvizio/0.0.7/", "requires_dist": null, "requires_python": "", "summary": "Python library for interfacing with Vizio SmartCast TVs and Sound Bars (2016+ models)", "version": "0.0.7" }, "last_serial": 4974895, "releases": { "0.0.2": [ { "comment_text": "", "digests": { "md5": "071904edf958f6fcda561db3ab95754d", "sha256": "c8292a38465ab636fd7f6868326b74b06596bd0dfa3783e89933f6473b65939e" }, "downloads": -1, "filename": "pyvizio-0.0.2.tar.gz", "has_sig": false, "md5_digest": "071904edf958f6fcda561db3ab95754d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7028, "upload_time": "2017-07-09T11:26:56", "url": "https://files.pythonhosted.org/packages/87/c4/f06bf7fc9a7a9faf5ce50383568d40ae2a246938f4e3cdb56234c1db8103/pyvizio-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "ecb83c5b5652704567bd240d23668500", "sha256": "852b0def8dea69178c6c574f3ab8eae66c6dc5de8cd8c24094ee83c9cfa5a7e5" }, "downloads": -1, "filename": "pyvizio-0.0.3.tar.gz", "has_sig": false, "md5_digest": "ecb83c5b5652704567bd240d23668500", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8034, "upload_time": "2018-04-28T16:44:54", "url": "https://files.pythonhosted.org/packages/bb/2a/f7e5fd97de451b99e36ea5950be60b15be4d5dfdf1c225c69ba837bd4f8b/pyvizio-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "84644aac0b573f3cfa19c608c6dbdd47", "sha256": "f4a953d4b4072f56474847936410a91ada95fe6a4092a2aea2d66fffe184e432" }, "downloads": -1, "filename": "pyvizio-0.0.4.tar.gz", "has_sig": false, "md5_digest": "84644aac0b573f3cfa19c608c6dbdd47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8336, "upload_time": "2018-12-04T05:25:08", "url": "https://files.pythonhosted.org/packages/2e/29/e8ffa1b0ec6c8fd49981fe7a0924a2874fdccc0ce42f984bc92400f850d3/pyvizio-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "37a2293ebea4e9bfa40def8280cb6a6b", "sha256": "718cdb5eba213cc1ab33bcc7a71c0b4350b2fbdb0335308868c704dd794ef7ea" }, "downloads": -1, "filename": "pyvizio-0.0.5.tar.gz", "has_sig": false, "md5_digest": "37a2293ebea4e9bfa40def8280cb6a6b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11952, "upload_time": "2019-03-22T01:42:41", "url": "https://files.pythonhosted.org/packages/1e/4b/53d58bee603041d3ce4f2bc7816befff704d56d29bafb6d1c23ea3d27f37/pyvizio-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "6ac00dc7876dddcc7c7eb7c3d1344440", "sha256": "4cf91830bb281f71c0c7de18bd63e08b96b6a9c564086000e06f8196a5d17146" }, "downloads": -1, "filename": "pyvizio-0.0.6.tar.gz", "has_sig": false, "md5_digest": "6ac00dc7876dddcc7c7eb7c3d1344440", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11975, "upload_time": "2019-03-22T01:51:45", "url": "https://files.pythonhosted.org/packages/50/e4/396e5051c3cbfbc06ef955bc4d1e0760fafc51885f731ced36b49fb1383c/pyvizio-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "03a6456564254724baa0a5605bd0f406", "sha256": "cf0b9f2e16dd92a0692c7dd96b03c3c3d3a58905f2f4a71486aca49feacd5a7a" }, "downloads": -1, "filename": "pyvizio-0.0.7.tar.gz", "has_sig": false, "md5_digest": "03a6456564254724baa0a5605bd0f406", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12029, "upload_time": "2019-03-23T02:02:44", "url": "https://files.pythonhosted.org/packages/35/3f/e83e095df5e0207b02d7b4f08ddbcdaf688d982f47edb080dcf643588622/pyvizio-0.0.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "03a6456564254724baa0a5605bd0f406", "sha256": "cf0b9f2e16dd92a0692c7dd96b03c3c3d3a58905f2f4a71486aca49feacd5a7a" }, "downloads": -1, "filename": "pyvizio-0.0.7.tar.gz", "has_sig": false, "md5_digest": "03a6456564254724baa0a5605bd0f406", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12029, "upload_time": "2019-03-23T02:02:44", "url": "https://files.pythonhosted.org/packages/35/3f/e83e095df5e0207b02d7b4f08ddbcdaf688d982f47edb080dcf643588622/pyvizio-0.0.7.tar.gz" } ] }