Skip to content

Commit

Permalink
fix async issues and pullpoint subscription
Browse files Browse the repository at this point in the history
  • Loading branch information
hunterjm committed Apr 26, 2019
1 parent 330d151 commit faacf46
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 5 deletions.
3 changes: 2 additions & 1 deletion examples/events.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@


async def run():
mycam = ONVIFCamera('192.168.1.10', 8899, 'admin', 'admin') #, no_cache=True)
mycam = ONVIFCamera('192.168.3.7', 80, 'hass', 'peek4boo') #, no_cache=True)
await mycam.update_xaddrs()
event_service = mycam.create_events_service()
properties = await event_service.GetEventProperties()
Expand All @@ -14,6 +14,7 @@ async def run():
pullpoint = mycam.create_pullpoint_service()
req = pullpoint.create_type('PullMessages')
req.MessageLimit=100
req.Timeout = 30
messages = await pullpoint.PullMessages(req)
print(messages)

Expand Down
12 changes: 9 additions & 3 deletions onvif/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,11 @@ def __init__(self, xaddr, user, passwd, url,
# Indicate wether password digest is needed
self.encrypt = encrypt
self.dt_diff = dt_diff
self.create_type = lambda x: self.zeep_client.get_element('ns0:' + x)()

namespace = binding_name[binding_name.find('{')+1:binding_name.find('}')]
available_ns = self.zeep_client.namespaces
ns = list(available_ns.keys())[list(available_ns.values()).index(namespace)] or 'ns0'
self.create_type = lambda x: self.zeep_client.get_element(ns + ':' + x)()

@classmethod
@safe_func
Expand Down Expand Up @@ -217,7 +221,8 @@ async def update_xaddrs(self):
self.dt_diff = None
self.devicemgmt = self.create_devicemgmt_service()
if self.adjust_time :
cdate = await self.devicemgmt.GetSystemDateAndTime().UTCDateTime
sys_date = await self.devicemgmt.GetSystemDateAndTime()
cdate = sys_date.UTCDateTime
cam_date = dt.datetime(cdate.Date.Year, cdate.Date.Month, cdate.Date.Day, cdate.Time.Hour, cdate.Time.Minute, cdate.Time.Second)
self.dt_diff = cam_date - dt.datetime.utcnow()
self.devicemgmt.dt_diff = self.dt_diff
Expand All @@ -238,7 +243,8 @@ async def update_xaddrs(self):
with self.services_lock:
try:
self.event = self.create_events_service()
self.xaddrs['http://www.onvif.org/ver10/events/wsdl/PullPointSubscription'] = await self.event.CreatePullPointSubscription().SubscriptionReference.Address._value_1
pullpoint = await self.event.CreatePullPointSubscription()
self.xaddrs['http://www.onvif.org/ver10/events/wsdl/PullPointSubscription'] = pullpoint.SubscriptionReference.Address._value_1
except:
pass

Expand Down
2 changes: 1 addition & 1 deletion onvif/version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.1.1
0.1.2

0 comments on commit faacf46

Please sign in to comment.