Synology + Xiaomi Gatway - can`t load module PyXiaomiGateway

Hello,

I have problem with run Xiaomi Gateway on Synology NAS (DS214play).

2017-10-03 11:30:56 ERROR (MainThread) [homeassistant.setup] Error during setup of component xiaomi_aqara
Traceback (most recent call last):
File “/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/homeassistant/setup.py”, line 194, in _async_setup_component
component.setup, hass, processed_config)
File “/volume1/@appstore/py3k/usr/local/lib/python3.5/asyncio/futures.py”, line 358, in iter
yield self # This tells Task to wait for completion.
File “/volume1/@appstore/py3k/usr/local/lib/python3.5/asyncio/tasks.py”, line 290, in _wakeup
future.result()
File “/volume1/@appstore/py3k/usr/local/lib/python3.5/asyncio/futures.py”, line 274, in result
raise self._exception
File “/volume1/@appstore/py3k/usr/local/lib/python3.5/concurrent/futures/thread.py”, line 55, in run
result = self.fn(*self.args, **self.kwargs)
File “/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/homeassistant/components/xiaomi_aqara.py”, line 87, in setup
from PyXiaomiGateway import PyXiaomiGateway
File “/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/PyXiaomiGateway/init.py”, line 9, in
from Crypto.Cipher import AES
ImportError: No module named ‘Crypto’

I can`t install a pyCrypto, this is the log:

python3.5 -m pip install pyCrypto
Collecting pyCrypto
Using cached pycrypto-2.6.1.tar.gz
Installing collected packages: pyCrypto
Running setup.py install for pyCrypto … error
Complete output from command /usr/local/bin/python3.5 -u -c “import setuptools, tokenize;file=‘/tmp/pip-build-q20ut8cu/pyCrypto/setup.py’;f=getattr(tokenize, ‘open’, open)(file);code=f.read().replace(‘\r\n’, ‘\n’);f.close();exec(compile(code, file, ‘exec’))” install --record /tmp/pip-krdsg6rx-record/install-record.txt --single-version-externally-managed --compile:
running install
running build
running build_py
creating build
creating build/lib.linux-i686-3.5
creating build/lib.linux-i686-3.5/Crypto
copying lib/Crypto/pct_warnings.py → build/lib.linux-i686-3.5/Crypto
copying lib/Crypto/init.py → build/lib.linux-i686-3.5/Crypto
creating build/lib.linux-i686-3.5/Crypto/Hash
copying lib/Crypto/Hash/MD5.py → build/lib.linux-i686-3.5/Crypto/Hash
copying lib/Crypto/Hash/SHA256.py → build/lib.linux-i686-3.5/Crypto/Hash
copying lib/Crypto/Hash/hashalgo.py → build/lib.linux-i686-3.5/Crypto/Hash
copying lib/Crypto/Hash/SHA512.py → build/lib.linux-i686-3.5/Crypto/Hash
copying lib/Crypto/Hash/HMAC.py → build/lib.linux-i686-3.5/Crypto/Hash
copying lib/Crypto/Hash/MD2.py → build/lib.linux-i686-3.5/Crypto/Hash
copying lib/Crypto/Hash/RIPEMD.py → build/lib.linux-i686-3.5/Crypto/Hash
copying lib/Crypto/Hash/MD4.py → build/lib.linux-i686-3.5/Crypto/Hash
copying lib/Crypto/Hash/SHA.py → build/lib.linux-i686-3.5/Crypto/Hash
copying lib/Crypto/Hash/SHA384.py → build/lib.linux-i686-3.5/Crypto/Hash
copying lib/Crypto/Hash/SHA224.py → build/lib.linux-i686-3.5/Crypto/Hash
copying lib/Crypto/Hash/init.py → build/lib.linux-i686-3.5/Crypto/Hash
creating build/lib.linux-i686-3.5/Crypto/Cipher
copying lib/Crypto/Cipher/Blowfish.py → build/lib.linux-i686-3.5/Crypto/Cipher
copying lib/Crypto/Cipher/DES3.py → build/lib.linux-i686-3.5/Crypto/Cipher
copying lib/Crypto/Cipher/ARC2.py → build/lib.linux-i686-3.5/Crypto/Cipher
copying lib/Crypto/Cipher/AES.py → build/lib.linux-i686-3.5/Crypto/Cipher
copying lib/Crypto/Cipher/blockalgo.py → build/lib.linux-i686-3.5/Crypto/Cipher
copying lib/Crypto/Cipher/PKCS1_v1_5.py → build/lib.linux-i686-3.5/Crypto/Cipher
copying lib/Crypto/Cipher/CAST.py → build/lib.linux-i686-3.5/Crypto/Cipher
copying lib/Crypto/Cipher/XOR.py → build/lib.linux-i686-3.5/Crypto/Cipher
copying lib/Crypto/Cipher/ARC4.py → build/lib.linux-i686-3.5/Crypto/Cipher
copying lib/Crypto/Cipher/DES.py → build/lib.linux-i686-3.5/Crypto/Cipher
copying lib/Crypto/Cipher/init.py → build/lib.linux-i686-3.5/Crypto/Cipher
copying lib/Crypto/Cipher/PKCS1_OAEP.py → build/lib.linux-i686-3.5/Crypto/Cipher
creating build/lib.linux-i686-3.5/Crypto/Util
copying lib/Crypto/Util/number.py → build/lib.linux-i686-3.5/Crypto/Util
copying lib/Crypto/Util/py3compat.py → build/lib.linux-i686-3.5/Crypto/Util
copying lib/Crypto/Util/randpool.py → build/lib.linux-i686-3.5/Crypto/Util
copying lib/Crypto/Util/RFC1751.py → build/lib.linux-i686-3.5/Crypto/Util
copying lib/Crypto/Util/Counter.py → build/lib.linux-i686-3.5/Crypto/Util
copying lib/Crypto/Util/winrandom.py → build/lib.linux-i686-3.5/Crypto/Util
copying lib/Crypto/Util/_number_new.py → build/lib.linux-i686-3.5/Crypto/Util
copying lib/Crypto/Util/init.py → build/lib.linux-i686-3.5/Crypto/Util
copying lib/Crypto/Util/asn1.py → build/lib.linux-i686-3.5/Crypto/Util
creating build/lib.linux-i686-3.5/Crypto/Random
copying lib/Crypto/Random/random.py → build/lib.linux-i686-3.5/Crypto/Random
copying lib/Crypto/Random/_UserFriendlyRNG.py → build/lib.linux-i686-3.5/Crypto/Random
copying lib/Crypto/Random/init.py → build/lib.linux-i686-3.5/Crypto/Random
creating build/lib.linux-i686-3.5/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/FortunaAccumulator.py → build/lib.linux-i686-3.5/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/FortunaGenerator.py → build/lib.linux-i686-3.5/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/SHAd256.py → build/lib.linux-i686-3.5/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/init.py → build/lib.linux-i686-3.5/Crypto/Random/Fortuna
creating build/lib.linux-i686-3.5/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/rng_base.py → build/lib.linux-i686-3.5/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/fallback.py → build/lib.linux-i686-3.5/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/init.py → build/lib.linux-i686-3.5/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/posix.py → build/lib.linux-i686-3.5/Crypto/Random/OSRNG
creating build/lib.linux-i686-3.5/Crypto/SelfTest
copying lib/Crypto/SelfTest/init.py → build/lib.linux-i686-3.5/Crypto/SelfTest
copying lib/Crypto/SelfTest/st_common.py → build/lib.linux-i686-3.5/Crypto/SelfTest
creating build/lib.linux-i686-3.5/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_DES3.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_CAST.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_pkcs1_oaep.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/common.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_DES.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_XOR.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_Blowfish.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_ARC2.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_AES.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_ARC4.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_pkcs1_15.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/init.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Cipher
creating build/lib.linux-i686-3.5/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA512.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA224.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_MD4.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/common.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_MD5.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_RIPEMD.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA384.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_HMAC.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_MD2.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/init.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA256.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Hash
creating build/lib.linux-i686-3.5/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_AllOrNothing.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_KDF.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_chaffing.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_rfc1751.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/init.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Protocol
creating build/lib.linux-i686-3.5/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_importKey.py → build/lib.linux-i686-3.5/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_RSA.py → build/lib.linux-i686-3.5/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_DSA.py → build/lib.linux-i686-3.5/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/init.py → build/lib.linux-i686-3.5/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_ElGamal.py → build/lib.linux-i686-3.5/Crypto/SelfTest/PublicKey
creating build/lib.linux-i686-3.5/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/test__UserFriendlyRNG.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/test_rpoolcompat.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/test_random.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/init.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Random
creating build/lib.linux-i686-3.5/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/test_SHAd256.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/test_FortunaGenerator.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/test_FortunaAccumulator.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/init.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Random/Fortuna
creating build/lib.linux-i686-3.5/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_posix.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_winrandom.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_fallback.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_nt.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_generic.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/init.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Random/OSRNG
creating build/lib.linux-i686-3.5/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_Counter.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_winrandom.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_number.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_asn1.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/init.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Util
creating build/lib.linux-i686-3.5/Crypto/SelfTest/Signature
copying lib/Crypto/SelfTest/Signature/test_pkcs1_pss.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Signature
copying lib/Crypto/SelfTest/Signature/test_pkcs1_15.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Signature
copying lib/Crypto/SelfTest/Signature/init.py → build/lib.linux-i686-3.5/Crypto/SelfTest/Signature
creating build/lib.linux-i686-3.5/Crypto/Protocol
copying lib/Crypto/Protocol/AllOrNothing.py → build/lib.linux-i686-3.5/Crypto/Protocol
copying lib/Crypto/Protocol/Chaffing.py → build/lib.linux-i686-3.5/Crypto/Protocol
copying lib/Crypto/Protocol/KDF.py → build/lib.linux-i686-3.5/Crypto/Protocol
copying lib/Crypto/Protocol/init.py → build/lib.linux-i686-3.5/Crypto/Protocol
creating build/lib.linux-i686-3.5/Crypto/PublicKey
copying lib/Crypto/PublicKey/_slowmath.py → build/lib.linux-i686-3.5/Crypto/PublicKey
copying lib/Crypto/PublicKey/pubkey.py → build/lib.linux-i686-3.5/Crypto/PublicKey
copying lib/Crypto/PublicKey/RSA.py → build/lib.linux-i686-3.5/Crypto/PublicKey
copying lib/Crypto/PublicKey/DSA.py → build/lib.linux-i686-3.5/Crypto/PublicKey
copying lib/Crypto/PublicKey/_DSA.py → build/lib.linux-i686-3.5/Crypto/PublicKey
copying lib/Crypto/PublicKey/ElGamal.py → build/lib.linux-i686-3.5/Crypto/PublicKey
copying lib/Crypto/PublicKey/_RSA.py → build/lib.linux-i686-3.5/Crypto/PublicKey
copying lib/Crypto/PublicKey/init.py → build/lib.linux-i686-3.5/Crypto/PublicKey
creating build/lib.linux-i686-3.5/Crypto/Signature
copying lib/Crypto/Signature/PKCS1_PSS.py → build/lib.linux-i686-3.5/Crypto/Signature
copying lib/Crypto/Signature/PKCS1_v1_5.py → build/lib.linux-i686-3.5/Crypto/Signature
copying lib/Crypto/Signature/init.py → build/lib.linux-i686-3.5/Crypto/Signature
Skipping optional fixer: buffer
Skipping optional fixer: idioms
Skipping optional fixer: set_literal
Skipping optional fixer: ws_comma
running build_ext
running build_configure
checking for gcc… no
checking for cc… no
checking for cl.exe… no
configure: error: in /tmp/pip-build-q20ut8cu/pyCrypto': configure: error: no acceptable C compiler found in $PATH See config.log’ for more details
Traceback (most recent call last):
File “”, line 1, in
File “/tmp/pip-build-q20ut8cu/pyCrypto/setup.py”, line 456, in
core.setup(**kw)
File “/volume1/@appstore/py3k/usr/local/lib/python3.5/distutils/core.py”, line 148, in setup
dist.run_commands()
File “/volume1/@appstore/py3k/usr/local/lib/python3.5/distutils/dist.py”, line 955, in run_commands
self.run_command(cmd)
File “/volume1/@appstore/py3k/usr/local/lib/python3.5/distutils/dist.py”, line 974, in run_command
cmd_obj.run()
File “/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/setuptools/command/install.py”, line 61, in run
return orig.install.run(self)
File “/volume1/@appstore/py3k/usr/local/lib/python3.5/distutils/command/install.py”, line 539, in run
self.run_command(‘build’)
File “/volume1/@appstore/py3k/usr/local/lib/python3.5/distutils/cmd.py”, line 313, in run_command
self.distribution.run_command(command)
File “/volume1/@appstore/py3k/usr/local/lib/python3.5/distutils/dist.py”, line 974, in run_command
cmd_obj.run()
File “/volume1/@appstore/py3k/usr/local/lib/python3.5/distutils/command/build.py”, line 135, in run
self.run_command(cmd_name)
File “/volume1/@appstore/py3k/usr/local/lib/python3.5/distutils/cmd.py”, line 313, in run_command
self.distribution.run_command(command)
File “/volume1/@appstore/py3k/usr/local/lib/python3.5/distutils/dist.py”, line 974, in run_command
cmd_obj.run()
File “/tmp/pip-build-q20ut8cu/pyCrypto/setup.py”, line 251, in run
self.run_command(cmd_name)
File “/volume1/@appstore/py3k/usr/local/lib/python3.5/distutils/cmd.py”, line 313, in run_command
self.distribution.run_command(command)
File “/volume1/@appstore/py3k/usr/local/lib/python3.5/distutils/dist.py”, line 974, in run_command
cmd_obj.run()
File “/tmp/pip-build-q20ut8cu/pyCrypto/setup.py”, line 278, in run
raise RuntimeError(“autoconf error”)
RuntimeError: autoconf error
----------------------------------------
Command “/usr/local/bin/python3.5 -u -c “import setuptools, tokenize;file=‘/tmp/pip-build-q20ut8cu/pyCrypto/setup.py’;f=getattr(tokenize, ‘open’, open)(file);code=f.read().replace(‘\r\n’, ‘\n’);f.close();exec(compile(code, file, ‘exec’))” install --record /tmp/pip-krdsg6rx-record/install-record.txt --single-version-externally-managed --compile” failed with error code 1 in /tmp/pip-build-q20ut8cu/pyCrypto/

I was tray use similar to this one - Error starting Home Assistant on Synology for first time - #8 by molano but this not help.

Has anyone a clue how to resolve this?

You need a c compiler. I am not sure how to install that on a Synology

hi,
I managed to install the module manually, using Synology “Debian Chroot” package. I build the ‘cryptography’ module, it was similar to the post below:

Blockquote Error starting Home Assistant on Synology for first time - #8 by molano

Pay attention to follow all the steps to setup “Debian Chroot” properly.