vivintpy
Python library for interacting with a Vivint security and smart home system.
This was built to support the Vivint for Home Assistant integration but should work outside of it too. Currently, it can be utilized via HACS and is available as a default integration.
Credit
This was inspired by the great work done by Mike Reibard to reverse engineer the Vivint Sky API and Ovidiu Stateina for the repository from which this is forked and expanded on.
Features
It currently has support for the following device types:
- alarm panels
- cameras
- door locks
- garage doors
- switches
- binary
- multilevel
- thermostats
- wireless sensors
- carbon monoxide
- door/window
- flood
- glass break
- motion
- smoke/fire
- etc
In addition, it integrates with PubNub to receive real-time updates for devices. This subscription stops receiving notifications around 15-20 minutes unless a call is made to the Vivint Sky API periodically. This might be related to the cookie expiration since it expires 20 minutes after the last API call was received. If another client connects, however, the notifications start to stream again for all currently connected clients.
Usage
See demo.py for a demonstration on how to use this library.
TODO:
- write a better readme
- write some documentation
- add advanced support for:
- thermostats
- add tests
❤️ Support Me
I maintain this python project in my spare time and provide it as-is, without guarantees. If you find it useful, consider supporting development:
- 💜 Sponsor me on GitHub
- ☕ Buy me a coffee / beer
- 💸 PayPal (direct support)
- ⭐ Star this project
- 📦 If you’d like to support in other ways, such as donating hardware for testing, feel free to reach out to me
If you don't already own a Vivint system, please consider using my referral code (35fr23sv) and get a free Doorbell Camera Pro from Vivint (as well as a tip to me in appreciation)! You can also call (855) 747-7199 and mention referral code 35fr23sv.
📈 Star History
Release files for vivintpy 2026.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vivintpy-2026.0.7.tar.gz | 124.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vivintpy-2026.0.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 248.8 kB
Release files / vivintpy-2026.0.7.tar.gz
| Download URL | vivintpy-2026.0.7.tar.gz |
|---|---|
| Size | 124.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
722779dcf395d53847452a710860bfb9ca475534753ba537b4451daa55b91a55
|
|
BLAKE2b-256 checksum How to use checksums |
57ec885c32480d74832912f3868ed9717f23f07506f8691c065e9d5c4a1454fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / vivintpy-2026.0.7-py3-none-any.whl
| Download URL | vivintpy-2026.0.7-py3-none-any.whl |
|---|---|
| Size | 124.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
525597e64930429fbd8afe58d380b556279790f42ca04108d251a6c54eeedefb
|
|
BLAKE2b-256 checksum How to use checksums |
40b3e28a7caf3b071b4004b8df467340fc4693f863292ba505436baf304dabad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|