Metadata-Version: 2.4 Name: onvif-zeep-async Version: 4.1.1 Summary: Async Python Client for ONVIF Camera Home-page: http://github.com/hunterjm/python-onvif-zeep-async Author: Cherish Chen Author-email: sinchb128@gmail.com Maintainer: sinchb Maintainer-email: sinchb128@gmail.com License: MIT Keywords: ONVIF,Camera,IPC Requires-Python: >=3.10 License-File: LICENSE Requires-Dist: aiohttp>=3.12.9 Requires-Dist: httpx<1.0.0,>=0.19.0 Requires-Dist: zeep[async]<5.0.0,>=4.2.1 Requires-Dist: ciso8601>=2.1.3 Requires-Dist: yarl>=1.10.0 Dynamic: author Dynamic: author-email Dynamic: description Dynamic: home-page Dynamic: keywords Dynamic: license Dynamic: license-file Dynamic: maintainer Dynamic: maintainer-email Dynamic: requires-dist Dynamic: requires-python Dynamic: summary python-onvif-zeep-async ======================= .. image:: https://codecov.io/gh/openvideolibs/python-onvif-zeep-async/branch/async/graph/badge.svg :target: https://codecov.io/gh/openvideolibs/python-onvif-zeep-async :alt: codecov ONVIF Client Implementation in Python 3 Documentation ------------- * `Source code and issue tracker `_ * `PyPI package `_ Dependencies ------------ `zeep[async] `_ >= 4.1.0, < 5.0.0 `httpx `_ >= 0.19.0, < 1.0.0 Install python-onvif-zeep-async ------------------------------- **From Source** You should clone this repository and run setup.py:: cd python-onvif-zeep-async && python setup.py install Alternatively, you can run:: pip install --upgrade onvif-zeep-async Getting Started --------------- Initialize an ONVIFCamera instance ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :: from onvif import ONVIFCamera mycam = ONVIFCamera('192.168.0.2', 80, 'user', 'passwd', '/etc/onvif/wsdl/') 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:: /etc/onvif/wsdl/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() References ---------- * `ONVIF Offical Website `_ * `Operations Index `_ * `ONVIF Develop Documents `_ * `Foscam Python Lib `_