Python Plugin: Domoticz-TinyTUYA-Plugin (Cloud)

Python and python framework

Moderator: leecollings

reinestein
Posts: 17
Joined: Friday 01 April 2022 8:52
Target OS: NAS (Synology & others)
Domoticz version: 2023.1
Contact:

Re: Python Plugin: Domoticz-TinyTUYA-Plugin (Cloud)

Post by reinestein »

I remembered I had encountered problems with both devices before (https://github.com/Xenomes/Domoticz-Tin ... issues/161). I removed the selector switches and clicked update. Now this problem is back:

2025-05-29 09:20:48.663 Error: (JSONtoPython) failed to add item '-1', to list for string.
2025-05-29 09:20:48.663 Error: (JSONtoPython) failed to add item '-1', to list for string.
2025-05-29 09:20:48.663 Error: (JSONtoPython) failed to add item '-1', to list for string.
2025-05-29 09:20:48.663 Error: (JSONtoPython) failed to add item '-1', to list for string.
2025-05-29 09:20:48.663 Error: Tuya - Cloud: Domoticz.Configuration operation failed: <built-in function Configuration> returned a result with an exception set
2025-05-29 09:20:49.324 Error: Tuya - Cloud hardware (19) thread seems to have ended unexpectedly
User avatar
Xenomes
Posts: 416
Joined: Tuesday 27 November 2018 19:05
Target OS: Linux
Domoticz version: 2025.1
Location: Netherlands
Contact:

Re: Python Plugin: Domoticz-TinyTUYA-Plugin (Cloud)

Post by Xenomes »

reinestein wrote: Thursday 29 May 2025 9:27 I remembered I had encountered problems with both devices before (https://github.com/Xenomes/Domoticz-Tin ... issues/161).
Very good, there is a json, will try to load the device and see i can recreate the error lines.
edit: I see the issue now, need to make a fix for that.
HP T630 (256GB SSD/8GB Mem) - Ubuntu 24.04.2 LTS (64Bit) - Domoticz 2025.1 (Docker) Machinon theme - RFLink - KaKu - Sonoff - Tasmota - Shelly - MQTT2Zigbee - OpenTherm Gateway - Tinytuya - IR Blaster - P1 Smart Meter - NPN Watermeter - Google Assistant
User avatar
Varazir
Posts: 429
Joined: Friday 20 February 2015 22:23
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Contact:

Re: Python Plugin: Domoticz-TinyTUYA-Plugin (Cloud)

Post by Varazir »

I just reinstalled and now using docker, with some searching the github and Google Gemini I found this solution

I created a folder called Domoticz_Python_Environment ( don't think the name matter )
I installed the plugin like this

Code: Select all

echo 'install tinytuya'
apt install libffi-dev build-essential pkg-config libssl-dev -y
pip3 install cryptography==3.4.8 requests==2.23.0 charset-normalizer==3.0.1 tinytuya -U -t /home/pi/domoticz/data/Domoticz_Python_Environment
This is my composer file

Code: Select all

    domoticz:
        container_name: domoticz
        image: domoticz/domoticz:beta
        restart: unless-stopped
        volumes:
            - ./domoticz/data:/opt/domoticz/userdata
        environment:
            - TZ=Europe/Stockholm
            - PYTHONPATH=/opt/domoticz/userdata/Domoticz_Python_Environment/:/opt/venv/lib/python3.11/site-packages
        ports:
            - 80:8080
            - 443:8443
 

Not sure if this broke anything ells, will see, if anyone that knows more could give me input on this just tag me :)

@waltervl What do you say ?
Raspberry PI 2 with RaZberry Controller 2016 ZWave+ and CC2531(zigbee)
Several IKEA devices/z-wave devices
User avatar
Xenomes
Posts: 416
Joined: Tuesday 27 November 2018 19:05
Target OS: Linux
Domoticz version: 2025.1
Location: Netherlands
Contact:

Re: Python Plugin: Domoticz-TinyTUYA-Plugin (Cloud)

Post by Xenomes »

Varazir wrote: Sunday 01 June 2025 11:26 I installed the plugin like this

Code: Select all

echo 'install tinytuya'
apt install libffi-dev build-essential pkg-config libssl-dev -y
pip3 install cryptography==3.4.8 requests==2.23.0 charset-normalizer==3.0.1 tinytuya -U -t /home/pi/domoticz/data/Domoticz_Python_Environment
In the readme there is a section how to propper setup docker to install the required python modules for the plug-in.
HP T630 (256GB SSD/8GB Mem) - Ubuntu 24.04.2 LTS (64Bit) - Domoticz 2025.1 (Docker) Machinon theme - RFLink - KaKu - Sonoff - Tasmota - Shelly - MQTT2Zigbee - OpenTherm Gateway - Tinytuya - IR Blaster - P1 Smart Meter - NPN Watermeter - Google Assistant
User avatar
Varazir
Posts: 429
Joined: Friday 20 February 2015 22:23
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Contact:

Re: Python Plugin: Domoticz-TinyTUYA-Plugin (Cloud)

Post by Varazir »

Xenomes wrote: Sunday 01 June 2025 11:36
Varazir wrote: Sunday 01 June 2025 11:26 I installed the plugin like this

Code: Select all

echo 'install tinytuya'
apt install libffi-dev build-essential pkg-config libssl-dev -y
pip3 install cryptography==3.4.8 requests==2.23.0 charset-normalizer==3.0.1 tinytuya -U -t /home/pi/domoticz/data/Domoticz_Python_Environment
In the readme there is a section how to propper setup docker to install the required python modules for the plug-in.
You talk about using custom script?
Then please add that to the installations instructions for this plugin :)
The issue is that you can't install tinytuya with just -U you need to force the installation and it's going be saved in ~/.local/bin.. and it's not in path so it will fail as well.

Code: Select all

pi@domoticz:~/domoticz/data/plugins $ pip3 install tinytuya -U --break-system-packages
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: tinytuya in /usr/local/lib/python3.11/dist-packages (1.13.1)
Collecting tinytuya
  Downloading tinytuya-1.17.1-py2.py3-none-any.whl (139 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 139.3/139.3 kB 816.9 kB/s eta 0:00:00
Requirement already satisfied: requests in /usr/local/lib/python3.11/dist-packages (from tinytuya) (2.23.0)
Requirement already satisfied: colorama in /usr/local/lib/python3.11/dist-packages (from tinytuya) (0.4.6)
Requirement already satisfied: cryptography in /usr/local/lib/python3.11/dist-packages (from tinytuya) (42.0.2)
Requirement already satisfied: cffi>=1.12 in /usr/local/lib/python3.11/dist-packages (from cryptography->tinytuya) (1.16.0)
Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.11/dist-packages (from requests->tinytuya) (3.0.4)
Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.11/dist-packages (from requests->tinytuya) (2.10)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.11/dist-packages (from requests->tinytuya) (1.25.11)
Requirement already satisfied: certifi>=2017.4.17 in /usr/lib/python3/dist-packages (from requests->tinytuya) (2022.9.24)
Requirement already satisfied: pycparser in /usr/local/lib/python3.11/dist-packages (from cffi>=1.12->cryptography->tinytuya) (2.21)
Installing collected packages: tinytuya
  WARNING: The script tinytuya is installed in '/home/pi/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Raspberry PI 2 with RaZberry Controller 2016 ZWave+ and CC2531(zigbee)
Several IKEA devices/z-wave devices
User avatar
Varazir
Posts: 429
Joined: Friday 20 February 2015 22:23
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Contact:

Re: Python Plugin: Domoticz-TinyTUYA-Plugin (Cloud)

Post by Varazir »

Xenomes wrote: Sunday 01 June 2025 11:36
Varazir wrote: Sunday 01 June 2025 11:26 I installed the plugin like this

Code: Select all

echo 'install tinytuya'
apt install libffi-dev build-essential pkg-config libssl-dev -y
pip3 install cryptography==3.4.8 requests==2.23.0 charset-normalizer==3.0.1 tinytuya -U -t /home/pi/domoticz/data/Domoticz_Python_Environment
In the readme there is a section how to propper setup docker to install the required python modules for the plug-in.
Nvm you wrote that I should add the lines into the customstart.sh file.
But still it will fail with that it can't install as stated here https://github.com/Xenomes/Domoticz-Tin ... issues/159
You replied use this https://zigbeefordomoticz.github.io/wik ... r-domoticz
It was what I did just adding the path to the composer file
Raspberry PI 2 with RaZberry Controller 2016 ZWave+ and CC2531(zigbee)
Several IKEA devices/z-wave devices
User avatar
Xenomes
Posts: 416
Joined: Tuesday 27 November 2018 19:05
Target OS: Linux
Domoticz version: 2025.1
Location: Netherlands
Contact:

Re: Python Plugin: Domoticz-TinyTUYA-Plugin (Cloud)

Post by Xenomes »

Varazir wrote: Sunday 01 June 2025 19:29 Nvm you wrote that I should add the lines into the customstart.sh file.
But still it will fail with that it can't install as stated here https://github.com/Xenomes/Domoticz-Tin ... issues/159
You replied use this https://zigbeefordomoticz.github.io/wik ... r-domoticz
It was what I did just adding the path to the composer file
Ah, okay. You're using the Domoticz Beta, which is running on Bookworm. With Docker, you can simply add --break-system-packages to the sudo pip3 install command in the customstart.sh file. Docker is designed to handle tasks in isolation, so this should work safely.

Note: There is a known issue with the Domoticz-TinyTUYA-Plugin regarding device selection.
HP T630 (256GB SSD/8GB Mem) - Ubuntu 24.04.2 LTS (64Bit) - Domoticz 2025.1 (Docker) Machinon theme - RFLink - KaKu - Sonoff - Tasmota - Shelly - MQTT2Zigbee - OpenTherm Gateway - Tinytuya - IR Blaster - P1 Smart Meter - NPN Watermeter - Google Assistant
User avatar
Varazir
Posts: 429
Joined: Friday 20 February 2015 22:23
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Contact:

Re: Python Plugin: Domoticz-TinyTUYA-Plugin (Cloud)

Post by Varazir »

Xenomes wrote: Sunday 01 June 2025 19:47
Varazir wrote: Sunday 01 June 2025 19:29 Nvm you wrote that I should add the lines into the customstart.sh file.
But still it will fail with that it can't install as stated here https://github.com/Xenomes/Domoticz-Tin ... issues/159
You replied use this https://zigbeefordomoticz.github.io/wik ... r-domoticz
It was what I did just adding the path to the composer file
Ah, okay. You're using the Domoticz Beta, which is running on Bookworm. With Docker, you can simply add --break-system-packages to the sudo pip3 install command in the customstart.sh file. Docker is designed to handle tasks in isolation, so this should work safely.

Note: There is a known issue with the Domoticz-TinyTUYA-Plugin regarding device selection.
yes, beta. Up side having in the startup you always have the latest version.
I'll try the customstart.sh
Raspberry PI 2 with RaZberry Controller 2016 ZWave+ and CC2531(zigbee)
Several IKEA devices/z-wave devices
User avatar
Varazir
Posts: 429
Joined: Friday 20 February 2015 22:23
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Contact:

Re: Python Plugin: Domoticz-TinyTUYA-Plugin (Cloud)

Post by Varazir »

Xenomes wrote: Sunday 01 June 2025 19:47
Varazir wrote: Sunday 01 June 2025 19:29 Nvm you wrote that I should add the lines into the customstart.sh file.
But still it will fail with that it can't install as stated here https://github.com/Xenomes/Domoticz-Tin ... issues/159
You replied use this https://zigbeefordomoticz.github.io/wik ... r-domoticz
It was what I did just adding the path to the composer file
Ah, okay. You're using the Domoticz Beta, which is running on Bookworm. With Docker, you can simply add --break-system-packages to the sudo pip3 install command in the customstart.sh file. Docker is designed to handle tasks in isolation, so this should work safely.

Note: There is a known issue with the Domoticz-TinyTUYA-Plugin regarding device selection.
It fails with just adding --break-system-packages to the line.

Code: Select all

domoticz  | 2025-06-01 20:03:12.374  Status: EventSystem: reset all device statuses...
domoticz  | 2025-06-01 20:03:12.602  Error: TinyTUYA: (tinytuya) failed to load 'plugin.py', Python Path used was '/opt/domoticz/userdata/plugins/Domoticz-TinyTUYA-Plugin/:/usr/lib/python311.zip:/usr/lib/python3.11:/usr/lib/python3.11/lib-dynload:/opt/venv/lib/python3.11/site-packages:/opt/venv/local/lib/python3.11/dist-packages:/opt/venv/lib/python3/dist-packages:/opt/venv/lib/python3.11/dist-packages'.
domoticz  | 2025-06-01 20:03:12.654  Error: TinyTUYA: Traceback (most recent call last):
domoticz  | 2025-06-01 20:03:12.654  Error: TinyTUYA:   File "/opt/domoticz/userdata/plugins/Domoticz-TinyTUYA-Plugin/plugin.py", line 77, in <module>
domoticz  | 2025-06-01 20:03:12.654  Error: TinyTUYA:     import tinytuya
domoticz  | 2025-06-01 20:03:12.654  Error: TinyTUYA: ModuleNotFoundError: No module named 'tinytuya'
domoticz  | 2025-06-01 20:03:12.695  Status: PluginSystem: 1 plugins started.
domoticz  | 2025-06-01 20:03:12.808  Status: Python EventSystem: Initializing event module.
domoticz  | 2025-06-01 20:03:12.808  Status: EventSystem: Started
domoticz  | 2025-06-01 20:03:12.809  Status: EventSystem: Queue thread started...
Nvm looks like it fail to install it's why. I went back my setup and it's working.
Raspberry PI 2 with RaZberry Controller 2016 ZWave+ and CC2531(zigbee)
Several IKEA devices/z-wave devices
User avatar
Xenomes
Posts: 416
Joined: Tuesday 27 November 2018 19:05
Target OS: Linux
Domoticz version: 2025.1
Location: Netherlands
Contact:

Re: Python Plugin: Domoticz-TinyTUYA-Plugin (Cloud)

Post by Xenomes »

Varazir wrote: Sunday 01 June 2025 20:05 It fails with just adding --break-system-packages to the line.

Code: Select all

domoticz  | 2025-06-01 20:03:12.374  Status: EventSystem: reset all device statuses...
domoticz  | 2025-06-01 20:03:12.602  Error: TinyTUYA: (tinytuya) failed to load 'plugin.py', Python Path used was '/opt/domoticz/userdata/plugins/Domoticz-TinyTUYA-Plugin/:/usr/lib/python311.zip:/usr/lib/python3.11:/usr/lib/python3.11/lib-dynload:/opt/venv/lib/python3.11/site-packages:/opt/venv/local/lib/python3.11/dist-packages:/opt/venv/lib/python3/dist-packages:/opt/venv/lib/python3.11/dist-packages'.
domoticz  | 2025-06-01 20:03:12.654  Error: TinyTUYA: Traceback (most recent call last):
domoticz  | 2025-06-01 20:03:12.654  Error: TinyTUYA:   File "/opt/domoticz/userdata/plugins/Domoticz-TinyTUYA-Plugin/plugin.py", line 77, in <module>
domoticz  | 2025-06-01 20:03:12.654  Error: TinyTUYA:     import tinytuya
domoticz  | 2025-06-01 20:03:12.654  Error: TinyTUYA: ModuleNotFoundError: No module named 'tinytuya'
domoticz  | 2025-06-01 20:03:12.695  Status: PluginSystem: 1 plugins started.
domoticz  | 2025-06-01 20:03:12.808  Status: Python EventSystem: Initializing event module.
domoticz  | 2025-06-01 20:03:12.808  Status: EventSystem: Started
domoticz  | 2025-06-01 20:03:12.809  Status: EventSystem: Queue thread started...
The customstart.sh is only runs once when building the docker. Can you show the part of the build where the pip3 install fails?
HP T630 (256GB SSD/8GB Mem) - Ubuntu 24.04.2 LTS (64Bit) - Domoticz 2025.1 (Docker) Machinon theme - RFLink - KaKu - Sonoff - Tasmota - Shelly - MQTT2Zigbee - OpenTherm Gateway - Tinytuya - IR Blaster - P1 Smart Meter - NPN Watermeter - Google Assistant
User avatar
Varazir
Posts: 429
Joined: Friday 20 February 2015 22:23
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Contact:

Re: Python Plugin: Domoticz-TinyTUYA-Plugin (Cloud)

Post by Varazir »

Xenomes wrote: Sunday 01 June 2025 20:14
The customstart.sh is only runs once when building the docker. Can you show the part of the build where the pip3 install fails?
That is bad, it thought going to run every time.
According this https://wiki.domoticz.com/Docker

it say "The container calls a script named customstart.sh in userdata, if that script exists. Please note that the script gets called on EVERY start of the container, not just at creation time. If you want the script to run only once, you need to build that in your script (e.g. test for a file you create in the script)."


I forgot to un # the apt update line I guess.

Code: Select all

domoticz  | 2025-06-01 20:02:25.821  Launch: Running customstart.sh
domoticz  | install tinytuya
domoticz  |
domoticz  | WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
domoticz  |
domoticz  | Reading package lists...
domoticz  | Building dependency tree...
domoticz  | Reading state information...
domoticz  | Package pkg-config is not available, but is referred to by another package.
domoticz  | This may mean that the package is missing, has been obsoleted, or
domoticz  | is only available from another source
domoticz  |
domoticz  | E: Unable to locate package libffi-dev
domoticz  | E: Unable to locate package build-essential
domoticz  | E: Package 'pkg-config' has no installation candidate
domoticz  | E: Unable to locate package libssl-dev
domoticz  | Collecting cryptography==3.4.8
domoticz  |   Downloading cryptography-3.4.8.tar.gz (546 kB)
domoticz  |      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 546.9/546.9 kB 1.6 MB/s eta 0:00:00
domoticz  |   Installing build dependencies: started
domoticz  |   Installing build dependencies: finished with status 'error'
domoticz  |   error: subprocess-exited-with-error
domoticz  |
domoticz  |   × pip subprocess to install build dependencies did not run successfully.
domoticz  |   │ exit code: 1
domoticz  |   ╰─> [100 lines of output]
domoticz  |       Collecting setuptools>=40.6.0
domoticz  |         Downloading setuptools-80.9.0-py3-none-any.whl.metadata (6.6 kB)
domoticz  |       Collecting wheel
domoticz  |         Downloading wheel-0.45.1-py3-none-any.whl.metadata (2.3 kB)
domoticz  |       Collecting cffi>=1.12
domoticz  |         Downloading cffi-1.17.1.tar.gz (516 kB)
domoticz  |            ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 516.6/516.6 kB 1.7 MB/s eta 0:00:00
domoticz  |         Installing build dependencies: started
domoticz  |         Installing build dependencies: finished with status 'done'
domoticz  |         Getting requirements to build wheel: started
domoticz  |         Getting requirements to build wheel: finished with status 'done'
domoticz  |         Preparing metadata (pyproject.toml): started
domoticz  |         Preparing metadata (pyproject.toml): finished with status 'done'
domoticz  |       Collecting setuptools-rust>=0.11.4
domoticz  |         Downloading setuptools_rust-1.11.1-py3-none-any.whl.metadata (9.6 kB)
domoticz  |       Collecting pycparser (from cffi>=1.12)
domoticz  |         Downloading pycparser-2.22-py3-none-any.whl.metadata (943 bytes)
domoticz  |       Collecting semantic_version<3,>=2.8.2 (from setuptools-rust>=0.11.4)
domoticz  |         Downloading semantic_version-2.10.0-py2.py3-none-any.whl.metadata (9.7 kB)
domoticz  |       Using cached setuptools-80.9.0-py3-none-any.whl (1.2 MB)
domoticz  |       Downloading wheel-0.45.1-py3-none-any.whl (72 kB)
domoticz  |          ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 72.5/72.5 kB 1.2 MB/s eta 0:00:00
domoticz  |       Downloading setuptools_rust-1.11.1-py3-none-any.whl (28 kB)
domoticz  |       Downloading semantic_version-2.10.0-py2.py3-none-any.whl (15 kB)
domoticz  |       Downloading pycparser-2.22-py3-none-any.whl (117 kB)
domoticz  |          ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 117.6/117.6 kB 1.4 MB/s eta 0:00:00
domoticz  |       Building wheels for collected packages: cffi
domoticz  |         Building wheel for cffi (pyproject.toml): started
domoticz  |         Building wheel for cffi (pyproject.toml): finished with status 'error'
domoticz  |         error: subprocess-exited-with-error
domoticz  |
domoticz  |         × Building wheel for cffi (pyproject.toml) did not run successfully.
domoticz  |         │ exit code: 1
domoticz  |         ╰─> [57 lines of output]
domoticz  |
domoticz  |                 No working compiler found, or bogus compiler options passed to
domoticz  |                 the compiler from Python's standard "distutils" module.  See
domoticz  |                 the error messages above.  Likely, the problem is not related
domoticz  |                 to CFFI but generic to the setup.py of any Python package that
domoticz  |                 tries to compile C code.  (Hints: on OS/X 10.8, for errors about
domoticz  |                 -mno-fused-madd see http://stackoverflow.com/questions/22313407/
domoticz  |                 Otherwise, see https://wiki.python.org/moin/CompLangPython or
domoticz  |                 the IRC channel #python on irc.libera.chat.)
domoticz  |
domoticz  |                 Trying to continue anyway.  If you are trying to install CFFI from
domoticz  |                 a build done in a different context, you can ignore this warning.
domoticz  |
domoticz  |             /tmp/pip-build-env-2pfsa6vw/overlay/lib/python3.11/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated.
domoticz  |             !!
domoticz  |
domoticz  |                     ********************************************************************************
domoticz  |                     Please consider removing the following classifiers in favor of a SPDX license expression:
domoticz  |
domoticz  |                     License :: OSI Approved :: MIT License
domoticz  |
domoticz  |                     See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
domoticz  |                     ********************************************************************************
domoticz  |
domoticz  |             !!
domoticz  |               self._finalize_license_expression()
domoticz  |             running bdist_wheel
domoticz  |             running build
domoticz  |             running build_py
domoticz  |             creating build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/_shimmed_dist_utils.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/model.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/cffi_opcode.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/lock.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/commontypes.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/vengine_cpy.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/__init__.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/vengine_gen.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/api.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/ffiplatform.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/recompiler.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/cparser.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/pkgconfig.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/error.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/setuptools_ext.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/verifier.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/_imp_emulation.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/backend_ctypes.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/_cffi_include.h -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/parse_c_type.h -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/_embedding.h -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/_cffi_errors.h -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             running build_ext
domoticz  |             building '_cffi_backend' extension
domoticz  |             creating build/temp.linux-armv7l-cpython-311/src/c
domoticz  |             arm-linux-gnueabihf-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -DFFI_BUILDING=1 -I/usr/include/ffi -I/usr/include/libffi -I/opt/venv/include -I/usr/include/python3.11 -c src/c/_cffi_backend.c -o build/temp.linux-armv7l-cpython-311/src/c/_cffi_backend.o
domoticz  |             error: command 'arm-linux-gnueabihf-gcc' failed: No such file or directory
domoticz  |             [end of output]
domoticz  |
domoticz  |         note: This error originates from a subprocess, and is likely not a problem with pip.
domoticz  |         ERROR: Failed building wheel for cffi
domoticz  |       Failed to build cffi
domoticz  |       ERROR: Could not build wheels for cffi, which is required to install pyproject.toml-based projects
domoticz  |
domoticz  |       [notice] A new release of pip is available: 24.0 -> 25.1.1
domoticz  |       [notice] To update, run: pip install --upgrade pip
domoticz  |       [end of output]
domoticz  |
domoticz  |   note: This error originates from a subprocess, and is likely not a problem with pip.
domoticz  | error: subprocess-exited-with-error
domoticz  |
domoticz  | × pip subprocess to install build dependencies did not run successfully.
domoticz  | │ exit code: 1
domoticz  | ╰─> See above for output.
domoticz  |
domoticz  | note: This error originates from a subprocess, and is likely not a problem with pip.
domoticz  |
domoticz  | [notice] A new release of pip is available: 24.0 -> 25.1.1
Raspberry PI 2 with RaZberry Controller 2016 ZWave+ and CC2531(zigbee)
Several IKEA devices/z-wave devices
User avatar
Xenomes
Posts: 416
Joined: Tuesday 27 November 2018 19:05
Target OS: Linux
Domoticz version: 2025.1
Location: Netherlands
Contact:

Re: Python Plugin: Domoticz-TinyTUYA-Plugin (Cloud)

Post by Xenomes »

Varazir wrote: Sunday 01 June 2025 20:36 That is bad, it thought going to run every time.
According this https://wiki.domoticz.com/Docker
it say "The container calls a script named customstart.sh in userdata, if that script exists. Please note that the script gets called on EVERY start of the container, not just at creation time. If you want the script to run only once, you need to build that in your script (e.g. test for a file you create in the script)."
The script runs on every startup. However, this specific line ensures it only runs during the initial build phase. If the FIRSTRUN file exists, the code under the if block executes; otherwise, the else block runs instead.

Code: Select all

if [ -f /opt/domoticz/FIRSTRUN ]; then
true
else
Varazir wrote: Sunday 01 June 2025 20:36 I forgot to un # the apt update line I guess.

Code: Select all

domoticz  | 2025-06-01 20:02:25.821  Launch: Running customstart.sh
domoticz  | install tinytuya
domoticz  |
domoticz  | WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
domoticz  |
domoticz  | Reading package lists...
domoticz  | Building dependency tree...
domoticz  | Reading state information...
domoticz  | Package pkg-config is not available, but is referred to by another package.
domoticz  | This may mean that the package is missing, has been obsoleted, or
domoticz  | is only available from another source
domoticz  |
domoticz  | E: Unable to locate package libffi-dev
domoticz  | E: Unable to locate package build-essential
domoticz  | E: Package 'pkg-config' has no installation candidate
domoticz  | E: Unable to locate package libssl-dev
domoticz  | Collecting cryptography==3.4.8
domoticz  |   Downloading cryptography-3.4.8.tar.gz (546 kB)
domoticz  |      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 546.9/546.9 kB 1.6 MB/s eta 0:00:00
domoticz  |   Installing build dependencies: started
domoticz  |   Installing build dependencies: finished with status 'error'
domoticz  |   error: subprocess-exited-with-error
domoticz  |
domoticz  |   × pip subprocess to install build dependencies did not run successfully.
domoticz  |   │ exit code: 1
domoticz  |   ╰─> [100 lines of output]
domoticz  |       Collecting setuptools>=40.6.0
domoticz  |         Downloading setuptools-80.9.0-py3-none-any.whl.metadata (6.6 kB)
domoticz  |       Collecting wheel
domoticz  |         Downloading wheel-0.45.1-py3-none-any.whl.metadata (2.3 kB)
domoticz  |       Collecting cffi>=1.12
domoticz  |         Downloading cffi-1.17.1.tar.gz (516 kB)
domoticz  |            ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 516.6/516.6 kB 1.7 MB/s eta 0:00:00
domoticz  |         Installing build dependencies: started
domoticz  |         Installing build dependencies: finished with status 'done'
domoticz  |         Getting requirements to build wheel: started
domoticz  |         Getting requirements to build wheel: finished with status 'done'
domoticz  |         Preparing metadata (pyproject.toml): started
domoticz  |         Preparing metadata (pyproject.toml): finished with status 'done'
domoticz  |       Collecting setuptools-rust>=0.11.4
domoticz  |         Downloading setuptools_rust-1.11.1-py3-none-any.whl.metadata (9.6 kB)
domoticz  |       Collecting pycparser (from cffi>=1.12)
domoticz  |         Downloading pycparser-2.22-py3-none-any.whl.metadata (943 bytes)
domoticz  |       Collecting semantic_version<3,>=2.8.2 (from setuptools-rust>=0.11.4)
domoticz  |         Downloading semantic_version-2.10.0-py2.py3-none-any.whl.metadata (9.7 kB)
domoticz  |       Using cached setuptools-80.9.0-py3-none-any.whl (1.2 MB)
domoticz  |       Downloading wheel-0.45.1-py3-none-any.whl (72 kB)
domoticz  |          ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 72.5/72.5 kB 1.2 MB/s eta 0:00:00
domoticz  |       Downloading setuptools_rust-1.11.1-py3-none-any.whl (28 kB)
domoticz  |       Downloading semantic_version-2.10.0-py2.py3-none-any.whl (15 kB)
domoticz  |       Downloading pycparser-2.22-py3-none-any.whl (117 kB)
domoticz  |          ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 117.6/117.6 kB 1.4 MB/s eta 0:00:00
domoticz  |       Building wheels for collected packages: cffi
domoticz  |         Building wheel for cffi (pyproject.toml): started
domoticz  |         Building wheel for cffi (pyproject.toml): finished with status 'error'
domoticz  |         error: subprocess-exited-with-error
domoticz  |
domoticz  |         × Building wheel for cffi (pyproject.toml) did not run successfully.
domoticz  |         │ exit code: 1
domoticz  |         ╰─> [57 lines of output]
domoticz  |
domoticz  |                 No working compiler found, or bogus compiler options passed to
domoticz  |                 the compiler from Python's standard "distutils" module.  See
domoticz  |                 the error messages above.  Likely, the problem is not related
domoticz  |                 to CFFI but generic to the setup.py of any Python package that
domoticz  |                 tries to compile C code.  (Hints: on OS/X 10.8, for errors about
domoticz  |                 -mno-fused-madd see http://stackoverflow.com/questions/22313407/
domoticz  |                 Otherwise, see https://wiki.python.org/moin/CompLangPython or
domoticz  |                 the IRC channel #python on irc.libera.chat.)
domoticz  |
domoticz  |                 Trying to continue anyway.  If you are trying to install CFFI from
domoticz  |                 a build done in a different context, you can ignore this warning.
domoticz  |
domoticz  |             /tmp/pip-build-env-2pfsa6vw/overlay/lib/python3.11/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated.
domoticz  |             !!
domoticz  |
domoticz  |                     ********************************************************************************
domoticz  |                     Please consider removing the following classifiers in favor of a SPDX license expression:
domoticz  |
domoticz  |                     License :: OSI Approved :: MIT License
domoticz  |
domoticz  |                     See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
domoticz  |                     ********************************************************************************
domoticz  |
domoticz  |             !!
domoticz  |               self._finalize_license_expression()
domoticz  |             running bdist_wheel
domoticz  |             running build
domoticz  |             running build_py
domoticz  |             creating build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/_shimmed_dist_utils.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/model.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/cffi_opcode.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/lock.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/commontypes.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/vengine_cpy.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/__init__.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/vengine_gen.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/api.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/ffiplatform.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/recompiler.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/cparser.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/pkgconfig.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/error.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/setuptools_ext.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/verifier.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/_imp_emulation.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/backend_ctypes.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/_cffi_include.h -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/parse_c_type.h -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/_embedding.h -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             copying src/cffi/_cffi_errors.h -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |             running build_ext
domoticz  |             building '_cffi_backend' extension
domoticz  |             creating build/temp.linux-armv7l-cpython-311/src/c
domoticz  |             arm-linux-gnueabihf-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -DFFI_BUILDING=1 -I/usr/include/ffi -I/usr/include/libffi -I/opt/venv/include -I/usr/include/python3.11 -c src/c/_cffi_backend.c -o build/temp.linux-armv7l-cpython-311/src/c/_cffi_backend.o
domoticz  |             error: command 'arm-linux-gnueabihf-gcc' failed: No such file or directory
domoticz  |             [end of output]
domoticz  |
domoticz  |         note: This error originates from a subprocess, and is likely not a problem with pip.
domoticz  |         ERROR: Failed building wheel for cffi
domoticz  |       Failed to build cffi
domoticz  |       ERROR: Could not build wheels for cffi, which is required to install pyproject.toml-based projects
domoticz  |
domoticz  |       [notice] A new release of pip is available: 24.0 -> 25.1.1
domoticz  |       [notice] To update, run: pip install --upgrade pip
domoticz  |       [end of output]
domoticz  |
domoticz  |   note: This error originates from a subprocess, and is likely not a problem with pip.
domoticz  | error: subprocess-exited-with-error
domoticz  |
domoticz  | × pip subprocess to install build dependencies did not run successfully.
domoticz  | │ exit code: 1
domoticz  | ╰─> See above for output.
domoticz  |
domoticz  | note: This error originates from a subprocess, and is likely not a problem with pip.
domoticz  |
domoticz  | [notice] A new release of pip is available: 24.0 -> 25.1.1
I see, a other bookworm issue.
This was for the Bullseye

Code: Select all

echo 'install tinytuya'
apt install libffi-dev build-essential pkg-config libssl-dev -y
pip3 install cryptography==3.4.8 requests==2.23.0 charset-normalizer==3.0.1 tinytuya -U
Replace it with this for Bookworm (not 100% tested)

Code: Select all

echo 'install tinytuya'
pip3 install tinytuya PyCryptodome==3.21.0 chardet==3.0.4 requests==2.23.0 charset-normalizer==3.0.1 tuya-connector-python --break-system-packages
HP T630 (256GB SSD/8GB Mem) - Ubuntu 24.04.2 LTS (64Bit) - Domoticz 2025.1 (Docker) Machinon theme - RFLink - KaKu - Sonoff - Tasmota - Shelly - MQTT2Zigbee - OpenTherm Gateway - Tinytuya - IR Blaster - P1 Smart Meter - NPN Watermeter - Google Assistant
User avatar
Varazir
Posts: 429
Joined: Friday 20 February 2015 22:23
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Contact:

Re: Python Plugin: Domoticz-TinyTUYA-Plugin (Cloud)

Post by Varazir »

Xenomes wrote: Sunday 01 June 2025 22:03 I see, a other bookworm issue.
This was for the Bullseye

Code: Select all

echo 'install tinytuya'
apt install libffi-dev build-essential pkg-config libssl-dev -y
pip3 install cryptography==3.4.8 requests==2.23.0 charset-normalizer==3.0.1 tinytuya -U
Replace it with this for Bookworm (not 100% tested)

Code: Select all

echo 'install tinytuya'
pip3 install tinytuya PyCryptodome==3.21.0 chardet==3.0.4 requests==2.23.0 charset-normalizer==3.0.1 tuya-connector-python --break-system-packages
Image

Failed again

Code: Select all

domoticz  |       building 'Crypto.Hash._MD2' extension
domoticz  |       creating build/temp.linux-armv7l-cpython-311/src
domoticz  |       arm-linux-gnueabihf-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -DPYCRYPTO_LITTLE_ENDIAN -DSYS_BITS=32 -DLTC_NO_ASM -Isrc/ -I/opt/venv/include -I/usr/include/python3.11 -c src/MD2.c -o build/temp.linux-armv7l-cpython-311/src/MD2.o
domoticz  |       error: command 'arm-linux-gnueabihf-gcc' failed: No such file or directory
domoticz  |       [end of output]
domoticz  |
domoticz  |   note: This error originates from a subprocess, and is likely not a problem with pip.
domoticz  |   ERROR: Failed building wheel for PyCryptodome
domoticz  |   Building wheel for cffi (pyproject.toml): finished with status 'error'
domoticz  |   error: subprocess-exited-with-error
domoticz  |
domoticz  |   × Building wheel for cffi (pyproject.toml) did not run successfully.
domoticz  |   │ exit code: 1
domoticz  |   ╰─> [57 lines of output]
domoticz  |
domoticz  |           No working compiler found, or bogus compiler options passed to
domoticz  |           the compiler from Python's standard "distutils" module.  See
domoticz  |           the error messages above.  Likely, the problem is not related
domoticz  |           to CFFI but generic to the setup.py of any Python package that
domoticz  |           tries to compile C code.  (Hints: on OS/X 10.8, for errors about
domoticz  |           -mno-fused-madd see http://stackoverflow.com/questions/22313407/
domoticz  |           Otherwise, see https://wiki.python.org/moin/CompLangPython or
domoticz  |           the IRC channel #python on irc.libera.chat.)
domoticz  |
domoticz  |           Trying to continue anyway.  If you are trying to install CFFI from
domoticz  |           a build done in a different context, you can ignore this warning.
domoticz  |
domoticz  |       /tmp/pip-build-env-8s8glalt/overlay/lib/python3.11/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated.
domoticz  |       !!
domoticz  |
domoticz  |               ********************************************************************************
domoticz  |               Please consider removing the following classifiers in favor of a SPDX license expression:
domoticz  |
domoticz  |               License :: OSI Approved :: MIT License
domoticz  |
domoticz  |               See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
domoticz  |               ********************************************************************************
domoticz  |
domoticz  |       !!
domoticz  |         self._finalize_license_expression()
domoticz  |       running bdist_wheel
domoticz  |       running build
domoticz  |       running build_py
domoticz  |       creating build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/_shimmed_dist_utils.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/model.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/cffi_opcode.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/lock.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/commontypes.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/vengine_cpy.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/__init__.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/vengine_gen.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/api.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/ffiplatform.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/recompiler.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/cparser.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/pkgconfig.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/error.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/setuptools_ext.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/verifier.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/_imp_emulation.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/backend_ctypes.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/_cffi_include.h -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/parse_c_type.h -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/_embedding.h -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/_cffi_errors.h -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       running build_ext
domoticz  |       building '_cffi_backend' extension
domoticz  |       creating build/temp.linux-armv7l-cpython-311/src/c
domoticz  |       arm-linux-gnueabihf-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -DFFI_BUILDING=1 -I/usr/include/ffi -I/usr/include/libffi -I/opt/venv/include -I/usr/include/python3.11 -c src/c/_cffi_backend.c -o build/temp.linux-armv7l-cpython-311/src/c/_cffi_backend.o
domoticz  |       error: command 'arm-linux-gnueabihf-gcc' failed: No such file or directory
domoticz  |       [end of output]
domoticz  |
domoticz  |   note: This error originates from a subprocess, and is likely not a problem with pip.
domoticz  |   ERROR: Failed building wheel for cffi
domoticz  | Failed to build PyCryptodome cffi
domoticz  | ERROR: Could not build wheels for PyCryptodome, cffi, which is required to install pyproject.toml-based projects
domoticz  |
domoticz  | [notice] A new release of pip is available: 24.0 -> 25.1.1
domoticz  | [notice] To update, run: pip install --upgrade pip
Raspberry PI 2 with RaZberry Controller 2016 ZWave+ and CC2531(zigbee)
Several IKEA devices/z-wave devices
User avatar
Xenomes
Posts: 416
Joined: Tuesday 27 November 2018 19:05
Target OS: Linux
Domoticz version: 2025.1
Location: Netherlands
Contact:

Re: Python Plugin: Domoticz-TinyTUYA-Plugin (Cloud)

Post by Xenomes »

Varazir wrote: Monday 02 June 2025 9:29 Image

Failed again

Code: Select all

domoticz  |       building 'Crypto.Hash._MD2' extension
domoticz  |       creating build/temp.linux-armv7l-cpython-311/src
domoticz  |       arm-linux-gnueabihf-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -DPYCRYPTO_LITTLE_ENDIAN -DSYS_BITS=32 -DLTC_NO_ASM -Isrc/ -I/opt/venv/include -I/usr/include/python3.11 -c src/MD2.c -o build/temp.linux-armv7l-cpython-311/src/MD2.o
domoticz  |       error: command 'arm-linux-gnueabihf-gcc' failed: No such file or directory
domoticz  |       [end of output]
domoticz  |
domoticz  |   note: This error originates from a subprocess, and is likely not a problem with pip.
domoticz  |   ERROR: Failed building wheel for PyCryptodome
domoticz  |   Building wheel for cffi (pyproject.toml): finished with status 'error'
domoticz  |   error: subprocess-exited-with-error
domoticz  |
domoticz  |   × Building wheel for cffi (pyproject.toml) did not run successfully.
domoticz  |   │ exit code: 1
domoticz  |   ╰─> [57 lines of output]
domoticz  |
domoticz  |           No working compiler found, or bogus compiler options passed to
domoticz  |           the compiler from Python's standard "distutils" module.  See
domoticz  |           the error messages above.  Likely, the problem is not related
domoticz  |           to CFFI but generic to the setup.py of any Python package that
domoticz  |           tries to compile C code.  (Hints: on OS/X 10.8, for errors about
domoticz  |           -mno-fused-madd see http://stackoverflow.com/questions/22313407/
domoticz  |           Otherwise, see https://wiki.python.org/moin/CompLangPython or
domoticz  |           the IRC channel #python on irc.libera.chat.)
domoticz  |
domoticz  |           Trying to continue anyway.  If you are trying to install CFFI from
domoticz  |           a build done in a different context, you can ignore this warning.
domoticz  |
domoticz  |       /tmp/pip-build-env-8s8glalt/overlay/lib/python3.11/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated.
domoticz  |       !!
domoticz  |
domoticz  |               ********************************************************************************
domoticz  |               Please consider removing the following classifiers in favor of a SPDX license expression:
domoticz  |
domoticz  |               License :: OSI Approved :: MIT License
domoticz  |
domoticz  |               See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
domoticz  |               ********************************************************************************
domoticz  |
domoticz  |       !!
domoticz  |         self._finalize_license_expression()
domoticz  |       running bdist_wheel
domoticz  |       running build
domoticz  |       running build_py
domoticz  |       creating build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/_shimmed_dist_utils.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/model.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/cffi_opcode.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/lock.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/commontypes.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/vengine_cpy.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/__init__.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/vengine_gen.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/api.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/ffiplatform.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/recompiler.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/cparser.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/pkgconfig.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/error.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/setuptools_ext.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/verifier.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/_imp_emulation.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/backend_ctypes.py -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/_cffi_include.h -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/parse_c_type.h -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/_embedding.h -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       copying src/cffi/_cffi_errors.h -> build/lib.linux-armv7l-cpython-311/cffi
domoticz  |       running build_ext
domoticz  |       building '_cffi_backend' extension
domoticz  |       creating build/temp.linux-armv7l-cpython-311/src/c
domoticz  |       arm-linux-gnueabihf-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -DFFI_BUILDING=1 -I/usr/include/ffi -I/usr/include/libffi -I/opt/venv/include -I/usr/include/python3.11 -c src/c/_cffi_backend.c -o build/temp.linux-armv7l-cpython-311/src/c/_cffi_backend.o
domoticz  |       error: command 'arm-linux-gnueabihf-gcc' failed: No such file or directory
domoticz  |       [end of output]
domoticz  |
domoticz  |   note: This error originates from a subprocess, and is likely not a problem with pip.
domoticz  |   ERROR: Failed building wheel for cffi
domoticz  | Failed to build PyCryptodome cffi
domoticz  | ERROR: Could not build wheels for PyCryptodome, cffi, which is required to install pyproject.toml-based projects
domoticz  |
domoticz  | [notice] A new release of pip is available: 24.0 -> 25.1.1
domoticz  | [notice] To update, run: pip install --upgrade pip
Was the failed on a previous built or a new build?
For reference I use this https://wiki.domoticz.com/Docker#custom ... _container for the customstart.sh, also comment out what I don't need.
What is your docker build code looks like?
HP T630 (256GB SSD/8GB Mem) - Ubuntu 24.04.2 LTS (64Bit) - Domoticz 2025.1 (Docker) Machinon theme - RFLink - KaKu - Sonoff - Tasmota - Shelly - MQTT2Zigbee - OpenTherm Gateway - Tinytuya - IR Blaster - P1 Smart Meter - NPN Watermeter - Google Assistant
User avatar
Varazir
Posts: 429
Joined: Friday 20 February 2015 22:23
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Contact:

Re: Python Plugin: Domoticz-TinyTUYA-Plugin (Cloud)

Post by Varazir »

Xenomes wrote: Monday 02 June 2025 16:00 Was the failed on a previous built or a new build?
For reference I use this https://wiki.domoticz.com/Docker#custom ... _container for the customstart.sh, also comment out what I don't need.
What is your docker build code looks like?
I just shut it down and start it again (down/up)

Code: Select all

    domoticz:
        container_name: domoticz
        image: domoticz/domoticz:beta
        restart: unless-stopped
        volumes:
            - ./domoticz/data:/opt/domoticz/userdata
        environment:
            - TZ=Europe/Stockholm
           # - PYTHONPATH=/opt/domoticz/userdata/Domoticz_Python_Environment/:/opt/venv/lib/python3.11/site-packages
        ports:
            - 80:8080
            - 443:8443
Here is the full log over the installation
https://gist.github.com/varazir/79dc50c ... 8a455b9a06

My solution works as well and if I need more pything libs I can just install them into the folder
Raspberry PI 2 with RaZberry Controller 2016 ZWave+ and CC2531(zigbee)
Several IKEA devices/z-wave devices
User avatar
Xenomes
Posts: 416
Joined: Tuesday 27 November 2018 19:05
Target OS: Linux
Domoticz version: 2025.1
Location: Netherlands
Contact:

Re: Python Plugin: Domoticz-TinyTUYA-Plugin (Cloud)

Post by Xenomes »

Varazir wrote: Monday 02 June 2025 17:26
Thanks, i will spin up my RPI see if we can fix this.
HP T630 (256GB SSD/8GB Mem) - Ubuntu 24.04.2 LTS (64Bit) - Domoticz 2025.1 (Docker) Machinon theme - RFLink - KaKu - Sonoff - Tasmota - Shelly - MQTT2Zigbee - OpenTherm Gateway - Tinytuya - IR Blaster - P1 Smart Meter - NPN Watermeter - Google Assistant
User avatar
Xenomes
Posts: 416
Joined: Tuesday 27 November 2018 19:05
Target OS: Linux
Domoticz version: 2025.1
Location: Netherlands
Contact:

Re: Python Plugin: Domoticz-TinyTUYA-Plugin (Cloud)

Post by Xenomes »

Varazir wrote:
Just ran your code on my Raspberry Pi, and there were no errors. The error you're encountering is likely due to an issue with your Docker setup. I'm not sure if you manually installed things for other plugins that might be causing conflicts.

Normally when I update (update_domoticz.sh), I run a little script that I created:

Code: Select all

sudo docker stop domoticz
sudo docker rm domoticz
sudo docker run -d --name domoticz \
    --restart=unless-stopped \
    -e TZ=Europe/Amsterdam \
    -v /home/pi/docker-data/domoticz:/opt/domoticz/userdata \
    -p 8080:8080 \
    -t -i domoticz/domoticz:beta
sudo docker image prune -f
sudo docker logs -f domoticz
Make sure your customstart.sh is up to date for all your plugins. I don’t need to manually install anything using docker exec -it, my setup handles everything automatically.
HP T630 (256GB SSD/8GB Mem) - Ubuntu 24.04.2 LTS (64Bit) - Domoticz 2025.1 (Docker) Machinon theme - RFLink - KaKu - Sonoff - Tasmota - Shelly - MQTT2Zigbee - OpenTherm Gateway - Tinytuya - IR Blaster - P1 Smart Meter - NPN Watermeter - Google Assistant
User avatar
Varazir
Posts: 429
Joined: Friday 20 February 2015 22:23
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Contact:

Re: Python Plugin: Domoticz-TinyTUYA-Plugin (Cloud)

Post by Varazir »

Xenomes wrote: Monday 02 June 2025 20:55
Varazir wrote:
Just ran your code on my Raspberry Pi, and there were no errors. The error you're encountering is likely due to an issue with your Docker setup. I'm not sure if you manually installed things for other plugins that might be causing conflicts.

Normally when I update (update_domoticz.sh), I run a little script that I created:

Code: Select all

sudo docker stop domoticz
sudo docker rm domoticz
sudo docker run -d --name domoticz \
    --restart=unless-stopped \
    -e TZ=Europe/Amsterdam \
    -v /home/pi/docker-data/domoticz:/opt/domoticz/userdata \
    -p 8080:8080 \
    -t -i domoticz/domoticz:beta
sudo docker image prune -f
sudo docker logs -f domoticz
Make sure your customstart.sh is up to date for all your plugins. I don’t need to manually install anything using docker exec -it, my setup handles everything automatically.
This is why don't like docker, a lot of hassle to just update a smal software.
I'll try it.
Raspberry PI 2 with RaZberry Controller 2016 ZWave+ and CC2531(zigbee)
Several IKEA devices/z-wave devices
User avatar
Xenomes
Posts: 416
Joined: Tuesday 27 November 2018 19:05
Target OS: Linux
Domoticz version: 2025.1
Location: Netherlands
Contact:

Re: Python Plugin: Domoticz-TinyTUYA-Plugin (Cloud)

Post by Xenomes »

Varazir wrote: Monday 02 June 2025 21:10 This is why don't like docker, a lot of hassle to just update a smal software.
I'll try it.
It's been a learning curve! I'm currently running multiple Docker containers:
Domoticz (domoticz)
Domoticz test environment (domoticztest)
Mosquitto (MQTT broker)
Zigbee2MQTT

When I migrated to a new host (ARM → AMD64), the process was surprisingly smooth:
Installed Docker on the new system
Copied the data volumes
Ran update scripts to recreate the containers
Everything was up and running in minutes.

Don't forget to update your file paths/locations/ports.
HP T630 (256GB SSD/8GB Mem) - Ubuntu 24.04.2 LTS (64Bit) - Domoticz 2025.1 (Docker) Machinon theme - RFLink - KaKu - Sonoff - Tasmota - Shelly - MQTT2Zigbee - OpenTherm Gateway - Tinytuya - IR Blaster - P1 Smart Meter - NPN Watermeter - Google Assistant
User avatar
Varazir
Posts: 429
Joined: Friday 20 February 2015 22:23
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Contact:

Re: Python Plugin: Domoticz-TinyTUYA-Plugin (Cloud)

Post by Varazir »

Xenomes wrote: Monday 02 June 2025 21:25
Varazir wrote: Monday 02 June 2025 21:10 This is why don't like docker, a lot of hassle to just update a smal software.
I'll try it.
It's been a learning curve! I'm currently running multiple Docker containers:
Domoticz (domoticz)
Domoticz test environment (domoticztest)
Mosquitto (MQTT broker)
Zigbee2MQTT

When I migrated to a new host (ARM → AMD64), the process was surprisingly smooth:
Installed Docker on the new system
Copied the data volumes
Ran update scripts to recreate the containers
Everything was up and running in minutes.

Don't forget to update your file paths/locations/ports.
I prefer composer file, I have one for all dock instances I use.
But I'll see if a rebuild will help
Raspberry PI 2 with RaZberry Controller 2016 ZWave+ and CC2531(zigbee)
Several IKEA devices/z-wave devices
Post Reply

Who is online

Users browsing this forum: Google [Bot] and 1 guest