Skip to content
This repository was archived by the owner on Aug 16, 2024. It is now read-only.

Commit 140a9fa

Browse files
authored
Merge pull request #63 from cpainchaud/main
fix for GetRec SetRec
2 parents 1c7c176 + bbbe1dd commit 140a9fa

File tree

2 files changed

+23
-10
lines changed

2 files changed

+23
-10
lines changed

reolink/camera_api.py

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,8 @@ def __init__(
113113
self._aiohttp_session: aiohttp.ClientSession = aiohttp.ClientSession(timeout=self._timeout,
114114
connector=aiohttp.TCPConnector(verify_ssl=False))
115115

116+
self._api_version_getrec: int = 0
117+
116118
self.refresh_base_url()
117119

118120
def enable_https(self, enable: bool):
@@ -300,6 +302,10 @@ def session_active(self):
300302
self._lease_time = None
301303
return False
302304

305+
@property
306+
def api_version_getrec(self):
307+
return self._api_version_getrec
308+
303309
def clear_token(self):
304310
"""Initialize the token and lease time."""
305311
self._token = None
@@ -537,6 +543,8 @@ def map_json_response(self, json_data): # pylint: disable=too-many-branches
537543

538544
push_data = None
539545
pushv20_data = None
546+
rec_data = None
547+
recv20_data = None
540548

541549
for data in json_data:
542550
try:
@@ -610,15 +618,19 @@ def map_json_response(self, json_data): # pylint: disable=too-many-branches
610618
self._ir_state = data["value"]["IrLights"]["state"] == "Auto"
611619

612620
elif data["cmd"] == "GetRec":
613-
self._recording_settings = data
614-
self._recording_state = (
615-
data["value"]["Rec"]["schedule"]["enable"] == 1
616-
)
621+
if self._api_version_getrec <= 1:
622+
self._api_version_getrec = 1
623+
self._recording_settings = data
624+
self._recording_state = (
625+
data["value"]["Rec"]["schedule"]["enable"] == 1
626+
)
617627
elif data["cmd"] == "GetRecV20":
618-
self._recording_settings = data
619-
self._recording_state = (
620-
data["value"]["Rec"]["enable"] == 1
621-
)
628+
if self._api_version_getrec <= 20:
629+
self._api_version_getrec = 20
630+
self._recording_settings = data
631+
self._recording_state = (
632+
data["value"]["Rec"]["enable"] == 1
633+
)
622634
elif data["cmd"] == "GetPtzPreset":
623635
self._ptz_presets_settings = data
624636
for preset in data["value"]["PtzPreset"]:
@@ -883,11 +895,12 @@ async def set_recording(self, enable):
883895
else:
884896
new_value = 0
885897

886-
if self._recording_settings["value"]["Rec"].get("enable") is not None:
898+
if self._api_version_getrec <= 1:
887899
body = [
888900
{"cmd": "SetRecV20", "action": 0, "param": self._recording_settings["value"]}
889901
]
890902
body[0]["param"]["Rec"]["enable"] = new_value
903+
891904
else:
892905
body = [
893906
{"cmd": "SetRec", "action": 0, "param": self._recording_settings["value"]}

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
setup(
44
name='reolink',
55
packages=['reolink'],
6-
version='0.0.39',
6+
version='0.0.40',
77
license='MIT',
88
description='Reolink camera package',
99
author='fwestenberg',

0 commit comments

Comments
 (0)