Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

aonvif

Build Status PyPI Version Supported Python Versions License

ONVIF asynchronous client implementation in Python.

Installation

$ python -m pip install aonvif

Getting Started

Initialize an ONVIFCamera instance

from aonvif import ONVIFCamera
mycam = ONVIFCamera('192.168.0.2', 80, 'user', 'passwd')
await mycam.update_xaddrs()

Now, an ONVIFCamera instance is available. By default, a devicemgmt service is also available if everything is OK.

So, all operations defined in the WSDL document devicemgmt.wsdl are available.

Get information from your camera

# Get Hostname
resp = await mycam.devicemgmt.GetHostname()
print 'My camera`s hostname: ' + str(resp.Name)

# Get system date and time
dt = await mycam.devicemgmt.GetSystemDateAndTime()
tz = dt.TimeZone
year = dt.UTCDateTime.Date.Year
hour = dt.UTCDateTime.Time.Hour

Configure (Control) your camera

To configure your camera, there are two ways to pass parameters to service methods.

Dict

This is the simpler way:

params = {'Name': 'NewHostName'}
await device_service.SetHostname(params)

Type Instance

This is the recommended way. Type instance will raise an exception if you set an invalid (or non-existent) parameter.

params = mycam.devicemgmt.create_type('SetHostname')
params.Hostname = 'NewHostName'
await mycam.devicemgmt.SetHostname(params)

time_params = mycam.devicemgmt.create_type('SetSystemDateAndTime')
time_params.DateTimeType = 'Manual'
time_params.DaylightSavings = True
time_params.TimeZone.TZ = 'CST-8:00:00'
time_params.UTCDateTime.Date.Year = 2014
time_params.UTCDateTime.Date.Month = 12
time_params.UTCDateTime.Date.Day = 3
time_params.UTCDateTime.Time.Hour = 9
time_params.UTCDateTime.Time.Minute = 36
time_params.UTCDateTime.Time.Second = 11
await mycam.devicemgmt.SetSystemDateAndTime(time_params)

Use other services

ONVIF protocol has defined many services. You can find all the services and operations here. ONVIFCamera has support methods to create new services:

# Create ptz service
ptz_service = mycam.create_ptz_service()
# Get ptz configuration
await mycam.ptz.GetConfiguration()
# Another way
# await ptz_service.GetConfiguration()

Or create an unofficial service:

xaddr = 'http://192.168.0.3:8888/onvif/yourservice'
yourservice = mycam.create_onvif_service('service.wsdl', xaddr, 'yourservice')
await yourservice.SomeOperation()
# Another way
# await mycam.yourservice.SomeOperation()

ONVIF CLI

aonvif also provides a command line interactive interface: aonvif-cli, aonvif-cli is installed automatically.

Single command example

$ aonvif-cli devicemgmt GetHostname --user 'admin' --password '12345' --host '192.168.0.112' --port 80
True: {'FromDHCP': True, 'Name': hision}
$ onvif-cli devicemgmt SetHostname "{'Name': 'NewerHostname'}" --user 'admin' --password '12345' --host '192.168.0.112' --port 80
True: {}

Interactive mode

$ aonvif-cli -u 'admin' -a '12345' --host '192.168.0.112' --port 80
ONVIF >>> cmd
analytics   devicemgmt  events      imaging     media       ptz
ONVIF >>> cmd devicemgmt GetWsdlUrl
True: http://www.onvif.org/
ONVIF >>> cmd devicemgmt SetHostname {'Name': 'NewHostname'}
ONVIF >>> cmd devicemgmt GetHostname
True: {'Name': 'NewHostName'}
ONVIF >>> cmd devicemgmt SomeOperation
False: No Operation: SomeOperation

NOTE: Tab completion is supported for interactive mode.

Batch mode

$ vim batchcmds
$ cat batchcmds
cmd devicemgmt GetWsdlUrl
cmd devicemgmt SetHostname {'Name': 'NewHostname', 'FromDHCP': True}
cmd devicemgmt GetHostname
$ aonvif-cli --host 192.168.0.112 -u admin -a 12345 < batchcmds
ONVIF >>> True: http://www.onvif.org/
ONVIF >>> True: {}
ONVIF >>> True: {'FromDHCP': False, 'Name': NewHostname}

References

Metadata

Release files for aonvif 1.0.0rc8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aonvif 1.0.0rc8
File Size Uploaded Provenance Actions
aonvif-1.0.0rc8.tar.gz 306.2 kB Without provenance Details for aonvif-1.0.0rc8.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for aonvif 1.0.0rc8
File Interpreter ABI Platform Actions
aonvif-1.0.0rc8-py3-none-any.whl Python 3 none any Details for aonvif-1.0.0rc8-py3-none-any.whl

Total release size: 648.7 kB

Release files / aonvif-1.0.0rc8.tar.gz

Download URL aonvif-1.0.0rc8.tar.gz
Size 306.2 kB
Tags Source
SHA-256 checksum
How to use checksums
fb1456db92d717046765f55ade5dbf196bba8113838097bec71699c174871ddd
BLAKE2b-256 checksum
How to use checksums
511b87e966f114f1af14245b41cbf670b17c8e825481447a158a08e6b3f2401e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.3

Release files / aonvif-1.0.0rc8-py3-none-any.whl

Download URL aonvif-1.0.0rc8-py3-none-any.whl
Size 342.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
800945d2ffb3e3dec79f680f85c4e2e6607f87bf94c09ff088adca85df83eb5d
BLAKE2b-256 checksum
How to use checksums
7a7991f4b5f5bb7fd1356ccffc2e9a29394a6a9eaab74a4af4c42f4c384d751f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.3

Security for aonvif 1.0.0rc8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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