Skip to content

Commit d1536ee

Browse files
Foscam Integration with Legacy Model Compatibility (home-assistant#156226)
Co-authored-by: Joost Lekkerkerker <[email protected]>
1 parent 8a926ad commit d1536ee

File tree

1 file changed

+21
-13
lines changed

1 file changed

+21
-13
lines changed

homeassistant/components/foscam/coordinator.py

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -116,20 +116,28 @@ def gather_all_configs(self) -> FoscamDeviceInfo:
116116
is_open_wdr = None
117117
is_open_hdr = None
118118
reserve3 = product_info.get("reserve4")
119-
reserve3_int = int(reserve3) if reserve3 is not None else 0
120-
supports_wdr_adjustment_val = bool(int(reserve3_int & 256))
121-
supports_hdr_adjustment_val = bool(int(reserve3_int & 128))
122-
if supports_wdr_adjustment_val:
123-
ret_wdr, is_open_wdr_data = self.session.getWdrMode()
124-
mode = is_open_wdr_data["mode"] if ret_wdr == 0 and is_open_wdr_data else 0
125-
is_open_wdr = bool(int(mode))
126-
elif supports_hdr_adjustment_val:
127-
ret_hdr, is_open_hdr_data = self.session.getHdrMode()
128-
mode = is_open_hdr_data["mode"] if ret_hdr == 0 and is_open_hdr_data else 0
129-
is_open_hdr = bool(int(mode))
130-
119+
model = product_info.get("model")
120+
model_int = int(model) if model is not None else 7002
121+
if model_int > 7001:
122+
reserve3_int = int(reserve3) if reserve3 is not None else 0
123+
supports_wdr_adjustment_val = bool(int(reserve3_int & 256))
124+
supports_hdr_adjustment_val = bool(int(reserve3_int & 128))
125+
if supports_wdr_adjustment_val:
126+
ret_wdr, is_open_wdr_data = self.session.getWdrMode()
127+
mode = (
128+
is_open_wdr_data["mode"] if ret_wdr == 0 and is_open_wdr_data else 0
129+
)
130+
is_open_wdr = bool(int(mode))
131+
elif supports_hdr_adjustment_val:
132+
ret_hdr, is_open_hdr_data = self.session.getHdrMode()
133+
mode = (
134+
is_open_hdr_data["mode"] if ret_hdr == 0 and is_open_hdr_data else 0
135+
)
136+
is_open_hdr = bool(int(mode))
137+
else:
138+
supports_wdr_adjustment_val = False
139+
supports_hdr_adjustment_val = False
131140
ret_sw, software_capabilities = self.session.getSWCapabilities()
132-
133141
supports_speak_volume_adjustment_val = (
134142
bool(int(software_capabilities.get("swCapabilities1")) & 32)
135143
if ret_sw == 0

0 commit comments

Comments
 (0)