feat: exclude unsupported model (#1205)

* feat: ignore unsupported models (#933)

* fix: remove unnecessary logs
This commit is contained in:
Li Shuzhen
2025-06-30 11:12:58 +08:00
committed by GitHub
parent fd57e7c565
commit 6069eaaba8
5 changed files with 16 additions and 7 deletions

View File

@ -85,6 +85,11 @@ SUPPORTED_PLATFORMS: list = [
'water_heater', 'water_heater',
] ]
UNSUPPORTED_MODELS: list = [
'chuangmi.ir.v2',
'xiaomi.router.rd03'
]
DEFAULT_CLOUD_SERVER: str = 'cn' DEFAULT_CLOUD_SERVER: str = 'cn'
CLOUD_SERVERS: dict = { CLOUD_SERVERS: dict = {
'cn': '中国大陆', 'cn': '中国大陆',

View File

@ -59,6 +59,7 @@ import aiohttp
# pylint: disable=relative-beyond-top-level # pylint: disable=relative-beyond-top-level
from .common import calc_group_id from .common import calc_group_id
from .const import ( from .const import (
UNSUPPORTED_MODELS,
DEFAULT_OAUTH2_API_HOST, DEFAULT_OAUTH2_API_HOST,
MIHOME_HTTP_API_TIMEOUT, MIHOME_HTTP_API_TIMEOUT,
OAUTH2_AUTH_URL) OAUTH2_AUTH_URL)
@ -573,6 +574,10 @@ class MIoTHttpClient:
# were implemented. # were implemented.
_LOGGER.info('ignore miwifi.* device, cloud, %s', did) _LOGGER.info('ignore miwifi.* device, cloud, %s', did)
continue continue
if model in UNSUPPORTED_MODELS:
_LOGGER.info('ignore unsupported model %s, cloud, %s',
model, did)
continue
device_infos[did] = { device_infos[did] = {
'did': did, 'did': did,
'uid': device.get('uid', None), 'uid': device.get('uid', None),

View File

@ -1207,10 +1207,9 @@ class MIoTPropertyEntity(Entity):
self._attr_available = miot_device.online self._attr_available = miot_device.online
_LOGGER.info( _LOGGER.info(
'new miot property entity, %s, %s, %s, %s, %s, %s, %s', 'new miot property entity, %s, %s, %s, %s, %s',
self.miot_device.name, self._attr_name, spec.platform, self.miot_device.name, self._attr_name, spec.platform,
spec.device_class, self.entity_id, self._value_range, spec.device_class, self.entity_id)
self._value_list)
@property @property
def device_info(self) -> Optional[DeviceInfo]: def device_info(self) -> Optional[DeviceInfo]:

View File

@ -68,7 +68,7 @@ from paho.mqtt.client import (
# pylint: disable=relative-beyond-top-level # pylint: disable=relative-beyond-top-level
from .common import MIoTMatcher from .common import MIoTMatcher
from .const import MIHOME_MQTT_KEEPALIVE from .const import UNSUPPORTED_MODELS, MIHOME_MQTT_KEEPALIVE
from .miot_error import MIoTErrorCode, MIoTMipsError from .miot_error import MIoTErrorCode, MIoTMipsError
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -1365,6 +1365,9 @@ class MipsLocalClient(_MipsClient):
if name is None or urn is None or model is None: if name is None or urn is None or model is None:
self.log_error(f'invalid device info, {did}, {info}') self.log_error(f'invalid device info, {did}, {info}')
continue continue
if model in UNSUPPORTED_MODELS:
self.log_info(f'unsupported model, {model}, {did}')
continue
device_list[did] = { device_list[did] = {
'did': did, 'did': did,
'name': name, 'name': name,

View File

@ -44,9 +44,6 @@ urn:miot-spec-v2:device:motion-sensor:0000A014:xiaomi-pir1:
services: services:
- '1' - '1'
- '5' - '5'
urn:miot-spec-v2:device:router:0000A036:xiaomi-rd03:
services:
- '*'
urn:miot-spec-v2:device:thermostat:0000A031:tofan-wk01: urn:miot-spec-v2:device:thermostat:0000A031:tofan-wk01:
services: services:
- '2' - '2'