Skip to content

Commit 9cfcc6e

Browse files
author
Ted Roberts
committed
Fix type error in device status parsing (v0.2.9)
- Add type checking before int/float conversions - Handle API fields that may return dict instead of number
1 parent d14f7bf commit 9cfcc6e

2 files changed

Lines changed: 6 additions & 6 deletions

File tree

custom_components/novastar_h/api.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -438,20 +438,20 @@ async def async_get_device_status_info(
438438
}
439439
if data and isinstance(data, dict):
440440
temp = data.get("backboardTemperature")
441-
if temp is not None:
441+
if temp is not None and isinstance(temp, (int, float)):
442442
result["temperature"] = float(temp)
443443
temp_status = data.get("temp")
444-
if temp_status is not None:
444+
if temp_status is not None and isinstance(temp_status, (int, float)):
445445
result["temp_status"] = int(temp_status)
446446
device_status = data.get("status")
447-
if device_status is not None:
447+
if device_status is not None and isinstance(device_status, (int, float)):
448448
result["device_status"] = int(device_status)
449449
signal_status = data.get("iSignal")
450-
if signal_status is not None:
450+
if signal_status is not None and isinstance(signal_status, (int, float)):
451451
result["signal_status"] = int(signal_status)
452452
fan_list = data.get("fanList")
453453
if fan_list is not None and isinstance(fan_list, list):
454-
result["fan_status"] = [int(f) for f in fan_list]
454+
result["fan_status"] = [int(f) for f in fan_list if isinstance(f, (int, float))]
455455
return result
456456

457457
async def async_get_temperature_info(

custom_components/novastar_h/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@
2121
}
2222
],
2323
"zeroconf": ["_novastar._tcp.local."],
24-
"version": "0.2.8"
24+
"version": "0.2.9"
2525
}

0 commit comments

Comments
 (0)