diff --git a/reolink/camera_api.py b/reolink/camera_api.py index e21fd34..3efc74a 100644 --- a/reolink/camera_api.py +++ b/reolink/camera_api.py @@ -57,6 +57,7 @@ def __init__( self._email_state = None self._ir_state = None self._daynight_state = None + self.__backlight_state = None self._recording_state = None self._audio_state = None self._rtsp_port = None @@ -162,6 +163,11 @@ def daynight_state(self): """Return the daynight state.""" return self._daynight_state + @property + def backlight_state(self): + """Return the backlight state.""" + return self._backlight_state + @property def recording_state(self): """Return the recording state.""" @@ -266,6 +272,9 @@ async def get_switch_capabilities(self): if self._daynight_state is not None: capabilities.append("dayNight") + if self._backlight_state is not None: + capabilities.append("backLight") + if self._email_state is not None: capabilities.append("email") @@ -472,6 +481,7 @@ async def map_json_response(self, json_data): # pylint: disable=too-many-branch elif data["cmd"] == "GetIsp": self._isp_settings = data self._daynight_state = data["value"]["Isp"]["dayNight"] + self._backlight_state = data["value"]["Isp"]["backLight"] elif data["cmd"] == "GetIrLights": self._ir_settings = data @@ -692,6 +702,23 @@ async def set_daynight(self, value): return await self.send_setting(body) + async def set_backlight(self, value): + """Set the backlight parameter.""" + if not self._isp_settings: + _LOGGER.error("Actual ISP settings not available") + return False + + if value not in ["BackLightControl", "DynamicRangeControl", "Off"]: + _LOGGER.error("Invalid input: %s", value) + return False + + new_value = value + + body = [{"cmd": "SetIsp", "action": 0, "param": self._isp_settings["value"]}] + body[0]["param"]["Isp"]["backLight"] = new_value + + return await self.send_setting(body) + async def set_recording(self, enable): """Set the recording parameter.""" if not self._recording_settings: diff --git a/setup.py b/setup.py index d3a6da5..fc87e2d 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ setup( name = 'reolink', packages = ['reolink'], - version = '0.0.16', + version = '0.0.17', license='MIT', description = 'Reolink camera package', author = 'fwestenberg',