Skip to content

Commit

Permalink
Update cloud_fix.py
Browse files Browse the repository at this point in the history
  • Loading branch information
azerty9971 committed Jan 27, 2025
1 parent 1e2449e commit 2a72916
Showing 1 changed file with 9 additions and 11 deletions.
20 changes: 9 additions & 11 deletions custom_components/xtend_tuya/multi_manager/shared/cloud_fix.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,11 @@ def _fix_unaligned_function_or_status_range(device: XTDevice):
if config_item := device.local_strategy[dp_id].get("config_item"):
if value_descr := config_item.get("valueDesc"):
ls_value, _ = CloudFixes.get_value_descr_dict(value_descr)
if ls_value:
if ls_value is not None:
sr_value, _ = CloudFixes.get_value_descr_dict(device.status_range[status].values)
fix_dict = CloudFixes.compute_aligned_valuedescr(ls_value, sr_value, {})
for fix_code in fix_dict:
if ls_value:
ls_value[fix_code] = fix_dict[fix_code]
ls_value[fix_code] = fix_dict[fix_code]
config_item["valueDesc"] = json.dumps(ls_value)
status_pop.append(status)
for status in status_pop:
Expand All @@ -75,12 +74,11 @@ def _fix_unaligned_function_or_status_range(device: XTDevice):
if config_item := device.local_strategy[dp_id].get("config_item"):
if value_descr := config_item.get("valueDesc"):
ls_value, _ = CloudFixes.get_value_descr_dict(value_descr)
if ls_value:
if ls_value is not None:
fn_value, _ = CloudFixes.get_value_descr_dict(device.function[function].values)
fix_dict = CloudFixes.compute_aligned_valuedescr(ls_value, fn_value, {})
for fix_code in fix_dict:
if ls_value:
ls_value[fix_code] = fix_dict[fix_code]
ls_value[fix_code] = fix_dict[fix_code]
config_item["valueDesc"] = json.dumps(ls_value)
function_pop.append(function)
for function in function_pop:
Expand Down Expand Up @@ -318,39 +316,39 @@ def _align_valuedescr(device: XTDevice):
def compute_aligned_valuedescr(value1: dict, value2: dict, value3: dict) -> dict:
return_dict: dict = {}
maxlen_list: list = CloudFixes._get_field_of_valuedescr(value1, value2, value3, "maxlen")
if len(maxlen_list) > 1:
if len(maxlen_list) > 0:
maxlen_cur = int(maxlen_list[0])
for maxlen in maxlen_list:
maxlen = int(maxlen)
if maxlen > maxlen_cur:
maxlen_cur = maxlen
return_dict["maxlen"] = maxlen_cur
min_list: list = CloudFixes._get_field_of_valuedescr(value1, value2, value3, "min")
if len(min_list) > 1:
if len(min_list) > 0:
min_cur = int(min_list[0])
for min in min_list:
min = int(min)
if min < min_cur:
min_cur = min
return_dict["min"] = min_cur
max_list: list = CloudFixes._get_field_of_valuedescr(value1, value2, value3, "max")
if len(max_list) > 1:
if len(max_list) > 0:
max_cur = int(max_list[0])
for max in max_list:
max = int(max)
if max > max_cur:
max_cur = max
return_dict["max"] = max_cur
scale_list: list = CloudFixes._get_field_of_valuedescr(value1, value2, value3, "scale")
if len(scale_list) > 1:
if len(scale_list) > 0:
scale_cur = int(scale_list[0])
for scale in scale_list:
scale = int(scale)
if scale > scale_cur:
scale_cur = scale
return_dict["scale"] = scale_cur
step_list: list = CloudFixes._get_field_of_valuedescr(value1, value2, value3, "step")
if len(step_list) > 1:
if len(step_list) > 0:
step_cur = int(step_list[0])
for step in step_list:
step = int(step)
Expand Down

0 comments on commit 2a72916

Please sign in to comment.