/py-beward

Library written in Python 3.x that exposes the Beward devices as Python objects.

Primary LanguagePythonMIT LicenseMIT

Please ⭐ this repo if you find it useful

py-beward

PyPI version PyPI Python version Maintained

Project Maintenance Support me on Patreon

Python API for Beward Cameras and Doorbells. This is used in Home Assistant component but should be generic enough that can be used elsewhere.

Installation

pip install beward

Usage example

Discovery devices:

from beward import Beward


for dev in Beward.discovery().values():
    print(f"Found device \"{dev.name}\" at http://{dev.host_ip}:{dev.http_port}")

Initialize one device and listen for events:

import time

from beward import Beward
from beward.const import ALARM_ONLINE, ALARM_MOTION, ALARM_SENSOR


def handler(device, timestamp, alarm, state):
    print('Handling alarm "%s". State: %d' % (alarm, state))


DEVICE_HOST = '192.168.1.100'
DEVICE_USER = 'admin'
DEVICE_PASS = 'password'

bwd = Beward.factory(DEVICE_HOST, DEVICE_USER, DEVICE_PASS, stream=1)
bwd.add_alarms_handler(handler)
bwd.listen_alarms(alarms=(ALARM_ONLINE, ALARM_MOTION, ALARM_SENSOR))

print('Live image URL:', bwd.live_image_url)
print('RTSP live video URL:', bwd.rtsp_live_video_url)
print('Live image:', bwd.camera_image())

for decade in range(10):
    print('Time: %ds' % (decade * 10))
    time.sleep(10)
print('Bye')

Contributions are welcome!

This is an active open-source project. We are always open to people who want to use the code or contribute to it.

We have set up a separate document containing our contribution guidelines.

Thank you for being involved! 😍

Authors & contributors

The original setup of this library is by Andrey "Limych" Khrolenok.

For a full list of all authors and contributors, check the contributor's page.

This project was created and is updated using the Py-Blueprint template. You can use this template to maintain your own projects.

License

creative commons Attribution-NonCommercial-ShareAlike 4.0 International License

See separate license file for full text.