python-eufy-security
This is an experimental Python library for Eufy Security devices (cameras, doorbells, etc.).
Python Versions
The library is currently supported on
- Python 3.6
- Python 3.7
- Python 3.8
Installation
pip install python-eufy-security
Account Information
Because of the way the Eufy Security private API works, an email/password combo cannot work with both the Eufy Security mobile app and this library. It is recommended to use the mobile app to create a secondary "guest" account with a separate email address and use it with this library.
Usage
Everything starts with an:
aiohttp ClientSession:
import asyncio
from aiohttp import ClientSession
async def main() -> None:
"""Create the aiohttp session and run the example."""
async with ClientSession() as websession:
# YOUR CODE HERE
asyncio.get_event_loop().run_until_complete(main())
Login and get to work:
import asyncio
from aiohttp import ClientSession
from eufy_security import async_login
async def main() -> None:
"""Create the aiohttp session and run the example."""
async with ClientSession() as websession:
# Create an API client:
api = await async_login(EUFY_EMAIL, EUFY_PASSWORD, websession)
# Loop through the cameras associated with the account:
for camera in api.cameras.values():
print("------------------")
print("Camera Name: %s", camera.name)
print("Serial Number: %s", camera.serial)
print("Station Serial Number: %s", camera.station_serial)
print("Last Camera Image URL: %s", camera.last_camera_image_url)
print("Starting RTSP Stream")
stream_url = await camera.async_start_stream()
print("Stream URL: %s", stream_url)
print("Stopping RTSP Stream")
stream_url = await camera.async_stop_stream()
asyncio.get_event_loop().run_until_complete(main())
Check out example.py, the tests, and the source files themselves for method
signatures and more examples.
Contributing
- Check for open features/bugs or initiate a discussion on one.
- Fork the repository.
- Install the dev environment:
make init. - Enter the virtual environment:
source ./venv/bin/activate - Code your new feature or bug fix.
- Write a test that covers your new functionality.
- Update
README.mdwith any new documentation. - Run tests and ensure 100% code coverage:
make coverage - Ensure you have no linting errors:
make lint - Ensure you have typed your code correctly:
make typing - Submit a pull request!
Metadata
Release files for python-eufy-security 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| python-eufy-security-0.3.1.tar.gz | 7.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| python_eufy_security-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.4 kB
Release files / python-eufy-security-0.3.1.tar.gz
| Download URL | python-eufy-security-0.3.1.tar.gz |
|---|---|
| Size | 7.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
55074e6ac07be20cb97573d1667fe710ef38343368855d181ad17ec5e084ddbb
|
|
BLAKE2b-256 checksum How to use checksums |
1bbd5f06496684b9229c220c66ac3e4e851c3b31b2d5d0b4ff1fb36d12f45308
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.0.0b7 CPython/2.7.17 Darwin/19.3.0
|
Release files / python_eufy_security-0.3.1-py3-none-any.whl
| Download URL | python_eufy_security-0.3.1-py3-none-any.whl |
|---|---|
| Size | 8.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c2175fb2cdc3c8643599d6567de7ac2e7fb19a5739eb86cf766376734d59ea58
|
|
BLAKE2b-256 checksum How to use checksums |
9554bf36f1f0a18a4f75416832c6d63605335f65602b5ef912385e2e9c527992
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.0.0b7 CPython/2.7.17 Darwin/19.3.0
|