async def METHOD_NAME(
    self,
    attributes: list[int | str],
    allow_cache: bool = False,
    only_cache: bool = False,
    manufacturer: int | t.uint16_t | None = None,
):
    """Pass reading attributes to Xiaomi cluster if applicable."""
    successful_r, failed_r = {}, {}
    remaining_attributes = attributes.copy()
    # read system_mode from Xiaomi cluster (can be numeric or string)
    if ZCL_SYSTEM_MODE in attributes or "system_mode" in attributes:
        self.debug("Passing 'system_mode' read to Xiaomi cluster")
        if ZCL_SYSTEM_MODE in attributes:
            remaining_attributes.remove(ZCL_SYSTEM_MODE)
        if "system_mode" in attributes:
            remaining_attributes.remove("system_mode")
        successful_r, failed_r = await self.endpoint.opple_cluster.METHOD_NAME(
            [SYSTEM_MODE], allow_cache, only_cache, manufacturer
        )
        # convert Xiaomi system_mode to ZCL attribute
        if SYSTEM_MODE in successful_r:
            successful_r[ZCL_SYSTEM_MODE] = XIAOMI_SYSTEM_MODE_MAP[
                successful_r.pop(SYSTEM_MODE)
            ]
    # read remaining attributes from thermostat cluster
    if remaining_attributes:
        remaining_result = await super().METHOD_NAME(
            remaining_attributes, allow_cache, only_cache, manufacturer
        )
        successful_r.update(remaining_result[0])
        failed_r.update(remaining_result[1])
    return successful_r, failed_r