Skip to content

xiaomi.vacuum.d101 制造商:xiaomi 型号 H40 固件:4.5.6_1077 扫拖机器人 设置失败,将重试: Incorrect AES key length (14 bytes) #733

@mmiamor

Description

@mmiamor

Checklist

  • I have updated the integration to the latest version available
  • I have checked if the vacuum/platform is already requested
  • I have sent raw map file to piotr.machowski.dev [at] gmail.com (Retrieving map; please provide your GitHub username in the email)

What vacuum model do you want to be supported?

xiaomi.vacuum.d101

What is its name?

H40

Available APIs

  • xiaomi
  • viomi
  • roidmi
  • dreame

Errors shown in the HA logs (if applicable)

Traceback (most recent call last):

  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 426, in _async_refresh

    self.data = await self._async_update_data()

                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 309, in _async_update_data

    return await self.update_method()

           ^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/config/custom_components/xiaomi_cloud_map_extractor/coordinator.py", line 37, in update_data

    return await self.connector.get_data()

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/config/custom_components/xiaomi_cloud_map_extractor/connector/__init__.py", line 88, in get_data

    await self._get_map()

  File "/config/custom_components/xiaomi_cloud_map_extractor/connector/__init__.py", line 191, in _get_map

    self._map_cache.additional_vacuum_data = self._vacuum_connector.additional_data()

                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^

  File "/config/custom_components/xiaomi_cloud_map_extractor/connector/vacuums/vacuum_xiaomi.py", line 159, in additional_data

    enc_key = gen_md5_key(

        self.model.replace("xiaomi", "mi"),

        str(self._device_id),

    )

  File "/usr/local/lib/python3.14/site-packages/vacuum_map_parser_xiaomi/aes_decryptor.py", line 91, in gen_md5_key

    encKey = aes_encrypt(originalWork.encode("latin1"), modelKey.encode("latin1"), iv)

  File "/usr/local/lib/python3.14/site-packages/vacuum_map_parser_xiaomi/aes_decryptor.py", line 18, in aes_encrypt

    cipher = AES.new(key, AES.MODE_CBC, iv)

  File "/usr/local/lib/python3.14/site-packages/Crypto/Cipher/AES.py", line 229, in new

    return _create_cipher(sys.modules[__name__], key, mode, *args, **kwargs)

  File "/usr/local/lib/python3.14/site-packages/Crypto/Cipher/__init__.py", line 52, in _create_cipher

    res = _create_cbc_cipher(factory, **kwargs)

  File "/usr/local/lib/python3.14/site-packages/Crypto/Cipher/_mode_cbc.py", line 274, in _create_cbc_cipher

    cipher_state = factory._create_base_cipher(kwargs)

  File "/usr/local/lib/python3.14/site-packages/Crypto/Cipher/AES.py", line 91, in _create_base_cipher

    raise ValueError("Incorrect AES key length (%d bytes)" % len(key))

ValueError: Incorrect AES key length (14 bytes)

Other info

Metadata

Metadata

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions