Skip to main content

python-eufy-security

CI PyPi Version License Code Coverage Say Thanks

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

  1. Check for open features/bugs or initiate a discussion on one.
  2. Fork the repository.
  3. Install the dev environment: make init.
  4. Enter the virtual environment: source ./venv/bin/activate
  5. Code your new feature or bug fix.
  6. Write a test that covers your new functionality.
  7. Update README.md with any new documentation.
  8. Run tests and ensure 100% code coverage: make coverage
  9. Ensure you have no linting errors: make lint
  10. Ensure you have typed your code correctly: make typing
  11. 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)

Source distribution for python-eufy-security 0.3.1
File Size Uploaded
python-eufy-security-0.3.1.tar.gz 7.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for python-eufy-security 0.3.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page