diff --git a/blinkpy/camera.py b/blinkpy/camera.py index 8823d7e..269d14c 100644 --- a/blinkpy/camera.py +++ b/blinkpy/camera.py @@ -77,12 +77,31 @@ class BlinkCamera: return self._cached_video return None + @property + def arm(self): + """Return arm status of camera.""" + return self.motion_enabled + + @arm.setter + def arm(self, value): + """Set camera arm status.""" + if value: + return api.request_motion_detection_enable( + self.sync.blink, self.network_id, self.camera_id + ) + return api.request_motion_detection_disable( + self.sync.blink, self.network_id, self.camera_id + ) + def snap_picture(self): """Take a picture with camera to create a new thumbnail.""" return api.request_new_image(self.sync.blink, self.network_id, self.camera_id) def set_motion_detect(self, enable): """Set motion detection.""" + _LOGGER.warning( + "Method is deprecated as of v0.16.0 and will be removed in a future version. Please use the BlinkCamera.arm property instead." + ) if enable: return api.request_motion_detection_enable( self.sync.blink, self.network_id, self.camera_id diff --git a/tests/test_cameras.py b/tests/test_cameras.py index 01064bf..33738f3 100644 --- a/tests/test_cameras.py +++ b/tests/test_cameras.py @@ -144,6 +144,15 @@ class TestBlinkCameraSetup(unittest.TestCase): self.assertEqual(self.camera.clip, None) self.assertEqual(self.camera.video_from_cache, None) + def test_camera_arm_status(self, mock_resp): + """Test arming and disarming camera.""" + self.camera.motion_enabled = None + self.assertFalse(self.camera.arm) + self.camera.motion_enabled = False + self.assertFalse(self.camera.arm) + self.camera.motion_enabled = True + self.assertTrue(self.camera.arm) + @mock.patch("blinkpy.camera.api.request_motion_detection_enable") @mock.patch("blinkpy.camera.api.request_motion_detection_disable") def test_motion_detection_enable_disable(self, mock_dis, mock_en, mock_rep):