Automatic integrate all Xiaomi devices to HomeAssistant via miot-spec, support Wi-Fi, BLE, ZigBee devices. 小米米家智能家居设备接入Hass集成
This report presents the forensic synthetic code analysis of al-one/hass-xiaomi-miot, a Python project with 6,046 GitHub stars. SynthScan v2.0 examined 40,743 lines of code across 106 source files, recording 329 pattern matches distributed across 8 syntactic categories. The overall adjusted score of 8.4 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 329 distinct pattern matches across 8 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_cloud_auth_verify.py | 16 | async def test_verify_ticket_missing_url_raises_micloud(hass): | CODE |
| LOW | tests/test_cloud_auth_verify.py | 23 | async def test_verify_ticket_missing_identity_session_raises_micloud(hass): | CODE |
| LOW | tests/test_cloud_auth_verify.py | 36 | async def test_verify_ticket_non_zero_each_method_raises_verification(hass): | CODE |
| LOW | tests/test_cloud_auth_verify.py | 48 | async def test_verify_ticket_success_returns_data(hass): | CODE |
| LOW | tests/test_cloud_auth_verify.py | 61 | async def test_verify_ticket_no_supported_method_raises_micloud(hass): | CODE |
| LOW | tests/test_cloud_auth_verify.py | 71 | async def test_verify_ticket_pins_trust_false_and_payload(hass): | CODE |
| LOW | tests/conftest.py | 17 | def auto_enable_custom_integrations(enable_custom_integrations): | CODE |
| LOW | tests/test_cnhdm_airrtc_wkq01.py | 28 | def test_exact_model_converter_mapping(make_device, load_miot_spec): | CODE |
| LOW | tests/test_cnhdm_airrtc_wkq01.py | 75 | def test_parent_entity_metadata_and_identity(make_device, load_miot_spec): | CODE |
| LOW | tests/test_cnhdm_airrtc_wkq01.py | 159 | def test_air_conditioner_modes_and_ventilation_preset(make_device, load_miot_spec): | CODE |
| LOW | tests/test_cnhdm_airrtc_wkq01.py | 171 | def test_floor_heating_power_state_and_partial_updates(make_device, load_miot_spec): | CODE |
| LOW | tests/test_cnhdm_airrtc_wkq01.py | 209 | async def test_floor_heating_writes_only_assigned_properties(make_device, load_miot_spec): | CODE |
| LOW | tests/test_cnhdm_airrtc_wkq01.py | 234 | async def test_air_conditioner_writes_only_assigned_properties(make_device, load_miot_spec): | CODE |
| LOW | tests/test_cnhdm_airrtc_wkq01.py | 277 | def test_fresh_air_speed_mapping(make_device, load_miot_spec): | CODE |
| LOW | tests/test_cnhdm_airrtc_wkq01.py | 299 | async def test_fresh_air_write_matrix(make_device, load_miot_spec): | CODE |
| LOW | tests/test_cnhdm_airrtc_wkq01.py | 359 | async def test_registry_preserves_air_conditioner_identity_across_reload( | CODE |
| LOW | tests/test_reauth_flow.py | 27 | async def test_reauth_unsupported_sid_aborts(flow_cls): | CODE |
| LOW | tests/test_reauth_flow.py | 46 | async def test_reauth_default_xiaomiio_when_init_data_omits_sid(flow_cls): | CODE |
| LOW | tests/test_reauth_flow.py | 67 | def test_async_remove_is_callback(flow_cls): | CODE |
| LOW | tests/test_reauth_flow.py | 72 | async def test_async_remove_clears_candidate(flow_cls): | CODE |
| LOW | tests/test_reauth_flow.py | 87 | async def test_reauth_password_invalid_auth_returns_invalid_auth(flow_cls): | CODE |
| LOW | tests/test_reauth_flow.py | 115 | async def test_reauth_password_need_verify_routes_to_verify(flow_cls): | CODE |
| LOW | tests/test_reauth_flow.py | 148 | async def test_reauth_password_wrong_account_aborts(flow_cls): | CODE |
| LOW | tests/test_reauth_flow.py | 177 | async def test_reauth_verify_empty_ticket_keeps_form_with_need_verify(flow_cls): | CODE |
| LOW | tests/test_reauth_flow.py | 198 | async def test_reauth_verify_verification_error_keeps_form(flow_cls): | CODE |
| LOW | tests/test_reauth_flow.py | 218 | async def test_reauth_verify_micoapi_sts_retry_runs_once(flow_cls): | CODE |
| LOW | tests/test_reauth_flow.py | 258 | async def test_reauth_verify_micoapi_second_sts_returns_unknown(flow_cls): | CODE |
| LOW | tests/test_reauth_flow.py | 287 | async def test_reauth_captcha_empty_keeps_form(flow_cls): | CODE |
| LOW | tests/test_reauth_flow.py | 312 | async def test_reauth_captcha_replaced_image_stays_with_need_captcha(flow_cls): | CODE |
| LOW | tests/test_reauth_flow.py | 339 | async def test_reauth_captcha_auth_error_without_challenge_returns_password(flow_cls): | CODE |
| LOW | tests/test_reauth_flow.py | 363 | async def test_persist_xiaomiio_updates_entry_invalidates_and_reloads(flow_cls): | CODE |
| LOW | tests/test_reauth_flow.py | 430 | async def test_persist_unchanged_with_listeners_skips_reload(flow_cls): | CODE |
| LOW | tests/test_reauth_flow.py | 484 | async def test_persist_micoapi_does_not_store_micoapi_tokens_in_entry(flow_cls): | CODE |
| LOW | tests/test_reauth_flow.py | 534 | async def test_persist_store_failure_returns_save_failed(flow_cls): | CODE |
| LOW | tests/test_reauth_flow.py | 574 | async def test_reauth_password_form_exposes_only_tip(flow_cls): | CODE |
| LOW | tests/test_reauth_flow.py | 585 | async def test_reauth_verify_form_exposes_only_tip_and_url(flow_cls): | CODE |
| LOW | tests/test_reauth_flow.py | 599 | async def test_reauth_captcha_form_exposes_only_tip_and_image(flow_cls): | CODE |
| LOW | tests/test_hass_entry_cloud.py | 31 | async def test_first_get_cloud_creates_xiaomiio(entry, hass): | CODE |
| LOW | tests/test_hass_entry_cloud.py | 44 | async def test_concurrent_get_cloud_xiaomiio_only_creates_once(entry, hass): | CODE |
| LOW | tests/test_hass_entry_cloud.py | 63 | async def test_get_cloud_micoapi_runs_single_probe(entry, hass): | CODE |
| LOW | tests/test_hass_entry_cloud.py | 76 | async def test_get_cloud_micoapi_caches_terminal_none(entry, hass): | CODE |
| LOW | tests/test_hass_entry_cloud.py | 96 | async def test_imic_com_has_no_micoapi_probe(entry, hass): | CODE |
| LOW | tests/test_hass_entry_cloud.py | 109 | async def test_get_cloud_string_sid_coerced(entry, hass): | CODE |
| LOW | tests/test_hass_entry_cloud.py | 121 | async def test_cloud_property_returns_xiaomiio_slot(entry, hass): | CODE |
| LOW | tests/test_hass_entry_cloud.py | 134 | async def test_get_cloud_login_false_skips_login(entry, hass): | CODE |
| LOW | tests/test_hass_entry_cloud.py | 146 | async def test_async_change_sid_delegates_to_async_get_cloud(entry, hass): | CODE |
| LOW | tests/test_hass_entry_cloud.py | 158 | async def test_async_unload_clears_clouds_map(entry, hass): | CODE |
| LOW | tests/test_hass_entry_cloud.py | 175 | async def test_auth_failed_xiaomiio_loaded_starts_reauth(entry, hass): | CODE |
| LOW | tests/test_hass_entry_cloud.py | 186 | async def test_auth_failed_micoapi_loaded_starts_reauth(entry, hass): | CODE |
| LOW | tests/test_hass_entry_cloud.py | 197 | async def test_auth_failed_string_sid_coerced(entry, hass): | CODE |
| LOW | tests/test_hass_entry_cloud.py | 208 | async def test_auth_failed_imicom_does_not_start(entry, hass): | CODE |
| LOW | tests/test_hass_entry_cloud.py | 219 | async def test_auth_failed_setup_progress_only_micoapi(entry, hass): | CODE |
| LOW | tests/test_hass_entry_cloud.py | 232 | async def test_auth_failed_unloaded_returns_silently(hass): | CODE |
| LOW | tests/test_hass_entry_cloud.py | 244 | async def test_auth_failed_setup_progress_xiaomiio_does_not_start(entry, hass): | CODE |
| LOW⚡ | tests/test_cloud_auth_login.py | 31 | async def test_async_login_attempt_does_not_register_session(hass): | CODE |
| LOW⚡ | tests/test_cloud_auth_login.py | 40 | async def test_async_login_ownerless_registers_session(hass): | CODE |
| LOW⚡ | tests/test_cloud_auth_login.py | 49 | async def test_async_login_owner_bound_skips_session(hass): | CODE |
| LOW⚡ | tests/test_cloud_auth_login.py | 59 | async def test_async_login_failure_returns_false(hass): | CODE |
| LOW⚡ | tests/test_cloud_auth_login.py | 69 | async def test_too_many_logins_raises_micloud_exception(hass): | CODE |
| LOW⚡ | tests/test_cloud_auth_login.py | 79 | async def test_login_verify_fe_skip_url_returns_success(hass): | CODE |
| 108 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | custom_components/xiaomi_miot/cover.py | 64 | CODE | |
| LOW | custom_components/xiaomi_miot/cover.py | 139 | CODE | |
| LOW | custom_components/xiaomi_miot/sensor.py | 44 | CODE | |
| LOW | custom_components/xiaomi_miot/sensor.py | 73 | CODE | |
| LOW | custom_components/xiaomi_miot/sensor.py | 133 | CODE | |
| LOW | custom_components/xiaomi_miot/sensor.py | 202 | CODE | |
| LOW | custom_components/xiaomi_miot/sensor.py | 268 | CODE | |
| LOW | custom_components/xiaomi_miot/alarm_control_panel.py | 76 | CODE | |
| LOW | custom_components/xiaomi_miot/fan.py | 73 | CODE | |
| LOW | custom_components/xiaomi_miot/fan.py | 133 | CODE | |
| LOW | custom_components/xiaomi_miot/fan.py | 167 | CODE | |
| LOW | custom_components/xiaomi_miot/light.py | 72 | CODE | |
| LOW | custom_components/xiaomi_miot/remote.py | 96 | CODE | |
| LOW | custom_components/xiaomi_miot/remote.py | 143 | CODE | |
| LOW | custom_components/xiaomi_miot/humidifier.py | 46 | CODE | |
| LOW | custom_components/xiaomi_miot/media_player.py | 92 | CODE | |
| LOW | custom_components/xiaomi_miot/media_player.py | 411 | CODE | |
| LOW | custom_components/xiaomi_miot/media_player.py | 615 | CODE | |
| LOW | custom_components/xiaomi_miot/media_player.py | 850 | CODE | |
| LOW | custom_components/xiaomi_miot/__init__.py | 472 | CODE | |
| LOW | custom_components/xiaomi_miot/__init__.py | 474 | CODE | |
| LOW | custom_components/xiaomi_miot/__init__.py | 881 | CODE | |
| LOW | custom_components/xiaomi_miot/__init__.py | 1181 | CODE | |
| LOW | custom_components/xiaomi_miot/vacuum.py | 41 | CODE | |
| LOW | custom_components/xiaomi_miot/vacuum.py | 118 | CODE | |
| LOW | custom_components/xiaomi_miot/vacuum.py | 259 | CODE | |
| LOW | custom_components/xiaomi_miot/camera.py | 59 | CODE | |
| LOW | custom_components/xiaomi_miot/camera.py | 366 | CODE | |
| LOW | custom_components/xiaomi_miot/camera.py | 409 | CODE | |
| LOW | custom_components/xiaomi_miot/camera.py | 469 | CODE | |
| LOW | custom_components/xiaomi_miot/text.py | 48 | CODE | |
| LOW | custom_components/xiaomi_miot/binary_sensor.py | 43 | CODE | |
| LOW | custom_components/xiaomi_miot/binary_sensor.py | 161 | CODE | |
| LOW | custom_components/xiaomi_miot/binary_sensor.py | 219 | CODE | |
| LOW | custom_components/xiaomi_miot/binary_sensor.py | 317 | CODE | |
| LOW | custom_components/xiaomi_miot/water_heater.py | 136 | CODE | |
| LOW | custom_components/xiaomi_miot/climate.py | 121 | CODE | |
| LOW | custom_components/xiaomi_miot/climate.py | 164 | CODE | |
| LOW | custom_components/xiaomi_miot/climate.py | 248 | CODE | |
| LOW | custom_components/xiaomi_miot/climate.py | 341 | CODE | |
| LOW | custom_components/xiaomi_miot/climate.py | 408 | CODE | |
| LOW | custom_components/xiaomi_miot/device_tracker.py | 42 | CODE | |
| LOW | custom_components/xiaomi_miot/config_flow.py | 74 | CODE | |
| LOW | custom_components/xiaomi_miot/config_flow.py | 162 | CODE | |
| LOW | custom_components/xiaomi_miot/config_flow.py | 201 | CODE | |
| LOW | custom_components/xiaomi_miot/config_flow.py | 785 | CODE | |
| LOW | custom_components/xiaomi_miot/core/hass_entity.py | 113 | CODE | |
| LOW | custom_components/xiaomi_miot/core/device.py | 399 | CODE | |
| LOW | custom_components/xiaomi_miot/core/device.py | 828 | CODE | |
| LOW | custom_components/xiaomi_miot/core/device.py | 961 | CODE | |
| LOW | custom_components/xiaomi_miot/core/device.py | 1053 | CODE | |
| LOW | custom_components/xiaomi_miot/core/device.py | 1126 | CODE | |
| LOW | custom_components/xiaomi_miot/core/miio2miot.py | 57 | CODE | |
| LOW | custom_components/xiaomi_miot/core/miio2miot.py | 112 | CODE | |
| LOW | custom_components/xiaomi_miot/core/miio2miot.py | 173 | CODE | |
| LOW | custom_components/xiaomi_miot/core/utils.py | 24 | CODE | |
| LOW | custom_components/xiaomi_miot/core/xiaomi_cloud.py | 465 | CODE | |
| LOW | custom_components/xiaomi_miot/core/xiaomi_cloud.py | 592 | CODE | |
| LOW | custom_components/xiaomi_miot/core/miot_spec.py | 291 | CODE | |
| LOW | custom_components/xiaomi_miot/core/miot_spec.py | 460 | CODE | |
| 3 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_cnhdm_airrtc_wkq01.py | 11 | CODE | |
| LOW | tests/test_cnhdm_airrtc_wkq01.py | 11 | CODE | |
| LOW | tests/test_cnhdm_airrtc_wkq01.py | 11 | CODE | |
| LOW | tests/test_hass_entry_cloud.py | 12 | CODE | |
| LOW | tests/test_cloud_auth_step1.py | 2 | CODE | |
| LOW | tests/test_cloud_auth_step1.py | 3 | CODE | |
| LOW | tests/test_cloud_auth_step2.py | 3 | CODE | |
| LOW | tests/test_cloud_auth_step2.py | 4 | CODE | |
| LOW | tests/test_cloud_auth_owner.py | 5 | CODE | |
| LOW | tests/test_cloud_auth_types.py | 4 | CODE | |
| LOW | custom_components/xiaomi_miot/time.py | 9 | CODE | |
| LOW | custom_components/xiaomi_miot/cover.py | 12 | CODE | |
| LOW | custom_components/xiaomi_miot/sensor.py | 19 | CODE | |
| LOW | custom_components/xiaomi_miot/alarm_control_panel.py | 10 | CODE | |
| LOW | custom_components/xiaomi_miot/fan.py | 11 | CODE | |
| LOW | custom_components/xiaomi_miot/light.py | 16 | CODE | |
| LOW | custom_components/xiaomi_miot/remote.py | 4 | CODE | |
| LOW | custom_components/xiaomi_miot/remote.py | 17 | CODE | |
| LOW | custom_components/xiaomi_miot/number.py | 11 | CODE | |
| LOW | custom_components/xiaomi_miot/humidifier.py | 12 | CODE | |
| LOW | custom_components/xiaomi_miot/media_player.py | 38 | CODE | |
| LOW | custom_components/xiaomi_miot/__init__.py | 36 | CODE | |
| LOW | custom_components/xiaomi_miot/__init__.py | 38 | CODE | |
| LOW | custom_components/xiaomi_miot/vacuum.py | 13 | CODE | |
| LOW | custom_components/xiaomi_miot/switch.py | 11 | CODE | |
| LOW | custom_components/xiaomi_miot/camera.py | 27 | CODE | |
| LOW | custom_components/xiaomi_miot/button.py | 9 | CODE | |
| LOW | custom_components/xiaomi_miot/text.py | 9 | CODE | |
| LOW | custom_components/xiaomi_miot/binary_sensor.py | 15 | CODE | |
| LOW | custom_components/xiaomi_miot/select.py | 11 | CODE | |
| LOW | custom_components/xiaomi_miot/water_heater.py | 15 | CODE | |
| LOW | custom_components/xiaomi_miot/climate.py | 30 | CODE | |
| LOW | custom_components/xiaomi_miot/device_tracker.py | 14 | CODE | |
| LOW | custom_components/xiaomi_miot/core/hass_entity.py | 13 | CODE | |
| LOW | custom_components/xiaomi_miot/core/hass_entity.py | 17 | CODE | |
| LOW | custom_components/xiaomi_miot/core/coordinator.py | 9 | CODE | |
| LOW | custom_components/xiaomi_miot/core/device.py | 34 | CODE | |
| LOW | custom_components/xiaomi_miot/core/device_customizes.py | 25 | CODE | |
| LOW | custom_components/xiaomi_miot/core/__init__.py | 1 | CODE | |
| LOW | custom_components/xiaomi_miot/core/__init__.py | 1 | CODE | |
| LOW | custom_components/xiaomi_miot/core/__init__.py | 2 | CODE | |
| LOW | custom_components/xiaomi_miot/core/__init__.py | 3 | CODE | |
| LOW | custom_components/xiaomi_miot/core/__init__.py | 3 | CODE | |
| LOW | custom_components/xiaomi_miot/core/utils.py | 13 | CODE | |
| LOW | custom_components/xiaomi_miot/core/converters.py | 6 | CODE | |
| LOW | custom_components/xiaomi_miot/core/converters.py | 7 | CODE | |
| LOW | custom_components/xiaomi_miot/core/converters.py | 7 | CODE | |
| LOW | custom_components/xiaomi_miot/core/converters.py | 7 | CODE | |
| LOW | custom_components/xiaomi_miot/core/const.py | 6 | CODE | |
| LOW | custom_components/xiaomi_miot/core/const.py | 6 | CODE | |
| LOW | custom_components/xiaomi_miot/core/const.py | 7 | CODE | |
| LOW | custom_components/xiaomi_miot/core/const.py | 8 | CODE | |
| LOW | custom_components/xiaomi_miot/core/const.py | 77 | CODE | |
| LOW | custom_components/xiaomi_miot/core/const.py | 86 | CODE | |
| LOW | custom_components/xiaomi_miot/core/const.py | 92 | CODE | |
| LOW | custom_components/xiaomi_miot/core/const.py | 109 | CODE | |
| LOW | custom_components/xiaomi_miot/core/const.py | 88 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_media_player_micoapi.py | 33 | except Exception as exc: | CODE |
| LOW | custom_components/xiaomi_miot/fan.py | 201 | except Exception: | CODE |
| MEDIUM | custom_components/xiaomi_miot/fan.py | 196 | def _proactive_update(now): | CODE |
| LOW | custom_components/xiaomi_miot/remote.py | 209 | except Exception as exc: | CODE |
| LOW | custom_components/xiaomi_miot/media_player.py | 361 | except Exception as exc: | CODE |
| LOW | custom_components/xiaomi_miot/__init__.py | 289 | except Exception as exc: | CODE |
| LOW | custom_components/xiaomi_miot/__init__.py | 300 | except Exception: | CODE |
| LOW | custom_components/xiaomi_miot/__init__.py | 428 | except Exception as exc: | CODE |
| LOW | custom_components/xiaomi_miot/__init__.py | 511 | except Exception as exc: | CODE |
| LOW | custom_components/xiaomi_miot/config_flow.py | 517 | except Exception: | CODE |
| LOW | custom_components/xiaomi_miot/config_flow.py | 622 | except Exception: | CODE |
| LOW | custom_components/xiaomi_miot/config_flow.py | 630 | except Exception: | CODE |
| LOW | custom_components/xiaomi_miot/config_flow.py | 699 | except Exception: | CODE |
| LOW | custom_components/xiaomi_miot/config_flow.py | 738 | except Exception: | CODE |
| LOW | custom_components/xiaomi_miot/config_flow.py | 761 | except Exception: | CODE |
| MEDIUM | custom_components/xiaomi_miot/config_flow.py | 735 | def _persist_and_reload(self, candidate): | CODE |
| LOW | custom_components/xiaomi_miot/core/hass_entity.py | 184 | except Exception: | CODE |
| LOW | custom_components/xiaomi_miot/core/device.py | 113 | except Exception: | CODE |
| LOW | custom_components/xiaomi_miot/core/utils.py | 35 | except Exception: | CODE |
| LOW | custom_components/xiaomi_miot/core/hass_entry.py | 149 | except Exception: | CODE |
| LOW | custom_components/xiaomi_miot/core/xiaomi_cloud.py | 83 | except Exception: | CODE |
| LOW | custom_components/xiaomi_miot/core/xiaomi_cloud.py | 267 | except Exception: | CODE |
| LOW | custom_components/xiaomi_miot/core/xiaomi_cloud.py | 301 | except Exception: | CODE |
| LOW | custom_components/xiaomi_miot/core/xiaomi_cloud.py | 644 | except Exception as exc: | CODE |
| LOW | custom_components/xiaomi_miot/core/xiaomi_cloud.py | 677 | except Exception as exc: | CODE |
| LOW | custom_components/xiaomi_miot/core/xiaomi_cloud.py | 840 | except Exception as exc: | CODE |
| LOW | custom_components/xiaomi_miot/core/xiaomi_cloud.py | 867 | except Exception: | CODE |
| MEDIUM | custom_components/xiaomi_miot/core/xiaomi_cloud.py | 77 | def __init__(self, hass, username, password, country=None, sid=None, hass_entry= | CODE |
| LOW | custom_components/xiaomi_miot/core/mini_miio.py | 106 | except Exception: | CODE |
| LOW | custom_components/xiaomi_miot/core/mini_miio.py | 153 | except Exception as e: | CODE |
| LOW | custom_components/xiaomi_miot/core/mini_miio.py | 191 | except Exception: | CODE |
| LOW | custom_components/xiaomi_miot/core/mini_miio.py | 234 | except Exception as e: | CODE |
| LOW | custom_components/xiaomi_miot/core/mini_miio.py | 266 | except Exception: | CODE |
| LOW | custom_components/xiaomi_miot/core/mini_miio.py | 320 | except Exception as e: | CODE |
| LOW | custom_components/xiaomi_miot/core/mini_miio.py | 347 | except Exception: | CODE |
| LOW | scripts/mcp-tools.py | 22 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | custom_components/xiaomi_miot/system_health.py | 40 | CODE | |
| LOW | custom_components/xiaomi_miot/core/miio2miot.py | 171 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | custom_components/xiaomi_miot/core/device.py | 93 | # Check if token is valid hexadecimal, otherwise try extra.token | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | custom_components/xiaomi_miot/core/__init__.py | 5 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | custom_components/xiaomi_miot/core/miio2miot_specs.py | 1461 | 'setter': 'set_tempe_setup', | COMMENT |