From 1fe2a9caaffee401ed7ab5d83b39f07a2be3fb03 Mon Sep 17 00:00:00 2001 From: jlippold Date: Sat, 24 Jun 2017 09:03:24 -0400 Subject: [PATCH 1/2] adds support for stickup & floodlight cams --- README.rst | 6 +++++- ring_doorbell/__init__.py | 24 +++++++++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 345a1c0c..69c6f9c4 100644 --- a/README.rst +++ b/README.rst @@ -65,11 +65,15 @@ Listing devices linked to your account myring.doorbells [] + # All stickup cams + myring.stickup_cams + [] + Playing with the attributes --------------------------- .. code-block:: python - for dev in list(myring.chimes + myring.doorbells): + for dev in list(myring.stickup_cams + myring.chimes + myring.doorbells): # refresh data dev.update() diff --git a/ring_doorbell/__init__.py b/ring_doorbell/__init__.py index 4d875044..4508d4e0 100644 --- a/ring_doorbell/__init__.py +++ b/ring_doorbell/__init__.py @@ -207,6 +207,7 @@ def devices(self): """Return all devices.""" devs = {} devs['chimes'] = self.chimes + devs['stickup_cams'] = self.stickup_cams devs['doorbells'] = self.doorbells return devs @@ -215,6 +216,11 @@ def __devices(self, device_type): lst = [] url = API_URI + DEVICES_ENDPOINT try: + if device_type == 'stickup_cams': + req = self.query(url).get('stickup_cams') + for member in list((obj['description'] for obj in req)): + lst.append(RingStickUpCam(self, member)) + if device_type == 'chime': req = self.query(url).get('chimes') for member in list((obj['description'] for obj in req)): @@ -239,6 +245,11 @@ def chimes(self): """Return a list of RingDoorChime objects.""" return self.__devices('chime') + @property + def stickup_cams(self): + """Return a list of RingStickUpCam objects.""" + return self.__devices('stickup_cams') + @property def doorbells(self): """Return a list of RingDoorBell objects.""" @@ -395,7 +406,6 @@ def test_sound(self): self._ring.query(url, method='POST') return True - class RingDoorBell(RingGeneric): """Implementation for Ring Doorbell.""" @@ -652,3 +662,15 @@ def volume(self, value): self._ring.query(url, extra_params=params, method='PUT') self.update() return True + +class RingStickUpCam(RingDoorBell): + """Implementation for Ring RingStickUpCam.""" + + def __init__(self, ring, name): + super(RingDoorBell, self).__init__() + self._attrs = None + self._ring = ring + self.debug = self._ring.debug + self.family = 'stickup_cams' + self.name = name + self.update() \ No newline at end of file From 6aa6042e603ddc9a73e381c0b049d7fdf891d9bf Mon Sep 17 00:00:00 2001 From: jlippold Date: Sat, 24 Jun 2017 09:07:18 -0400 Subject: [PATCH 2/2] fixes whitespace violations --- ring_doorbell/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ring_doorbell/__init__.py b/ring_doorbell/__init__.py index 4508d4e0..85e8eca2 100644 --- a/ring_doorbell/__init__.py +++ b/ring_doorbell/__init__.py @@ -663,6 +663,7 @@ def volume(self, value): self.update() return True + class RingStickUpCam(RingDoorBell): """Implementation for Ring RingStickUpCam.""" @@ -673,4 +674,4 @@ def __init__(self, ring, name): self.debug = self._ring.debug self.family = 'stickup_cams' self.name = name - self.update() \ No newline at end of file + self.update()