Closed quloquloqulo closed 3 years ago
I agree! This plugin is an integral part of my setup, I can't upgrade Octoprint until this one gets updated.
+1
Hello,
I'm on it, but I would need beta testers since I'm not using any tuya smart plug anymore and I also don't have (yet) a python3 setup for octoprint.
Any vonlunteer?
Absolutely count me in!
Anyone wanting to give it a shot, here is the upcoming 0.3.0 build:
Does it work with Python 2 installations?
EDIT: OK, according yo init.py it does, so I'll install this and give it a whirl in my environment.
It should, although I didn't have a chance to give it a proper try yet.
Also the pytuya code is now embedded to avoid the installation issues on python2 setup.
Something is wrong... I installed it but the plugin is nowhere to be found in the web interface. Not even in the disabled plugin list.
Here's what I found in the logs:
Traceback (most recent call last):
File "/home/pi/oprint/local/lib/python2.7/site-packages/octoprint/plugin/core.py", line 972, in _import_plugin
module = _load_module(module_name, spec)
File "/home/pi/oprint/local/lib/python2.7/site-packages/octoprint/plugin/core.py", line 71, in _load_module
return imp.load_module(name, f, filename, details)
File "/home/pi/oprint/local/lib/python2.7/site-packages/octoprint_tuyasmartplug/__init__.py", line 14, in <module>
from octoprint_tuyasmartplug.utils import pytuya
ImportError: No module named utils
And this is the install log:
/home/pi/oprint/bin/python2 -m pip --disable-pip-version-check install file:///tmp/tmp37v4gW.zip --no-cache-dir
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Processing /tmp/tmp37v4gW.zip
Requirement already satisfied: OctoPrint in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint-TuyaSmartplug==0.3.0) (1.4.2)
Requirement already satisfied: pyaes==1.6.1 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint-TuyaSmartplug==0.3.0) (1.6.1)
Requirement already satisfied: pycrypto==2.6.1 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint-TuyaSmartplug==0.3.0) (2.6.1)
Requirement already satisfied: futures<4,>=3.3; python_version < "3" in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (3.3.0)
Requirement already satisfied: semantic-version<3,>=2.8.5 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (2.8.5)
Requirement already satisfied: future<1,>=0.18.2 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (0.18.2)
Requirement already satisfied: blinker<2,>=1.4 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (1.4)
Requirement already satisfied: Flask-Assets<3,>=2.0 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (2.0)
Requirement already satisfied: unidecode<0.05,>=0.04.14 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (0.4.21)
Requirement already satisfied: PyYAML<6,>=5.3.1 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (5.3.1)
Requirement already satisfied: pylru<2,>=1.2 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (1.2.0)
Requirement already satisfied: OctoPrint-FileCheck>=2020.07.06 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (2020.8.7)
Requirement already satisfied: pkginfo<2,>=1.5.0.1 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (1.5.0.1)
Requirement already satisfied: wrapt<2,>=1.12.1 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (1.12.1)
Requirement already satisfied: chainmap<2,>=1.0.3; python_version < "3" in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (1.0.3)
Requirement already satisfied: Click<8,>=7.1.2 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (7.1.2)
Requirement already satisfied: markdown<3.2,>=3.1 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (3.1.1)
Requirement already satisfied: watchdog<1,>=0.10.2 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (0.10.3)
Requirement already satisfied: netifaces<1,>=0.10.9 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (0.10.9)
Requirement already satisfied: scandir<2,>=1.10; python_version < "3" in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (1.10.0)
Requirement already satisfied: filetype<2,>=1.0.7 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (1.0.7)
Requirement already satisfied: itsdangerous<2,>=1.1.0 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (1.1.0)
Requirement already satisfied: tornado==5.1.1 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (5.1.1)
Requirement already satisfied: cachelib<1,>=0.1 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (0.1)
Requirement already satisfied: werkzeug<2,>=1.0.1 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (1.0.1)
Requirement already satisfied: typing<4,>=3.7.4.1; python_version < "3" in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (3.7.4.1)
Requirement already satisfied: regex!=2018.11.6 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (2019.8.19)
Requirement already satisfied: flask<2,>=1.1.2 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (1.1.2)
Requirement already satisfied: markupsafe<2.0,>=1.1 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (1.1.1)
Requirement already satisfied: Flask-Babel<2,>=1.0 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (1.0.0)
Requirement already satisfied: feedparser<6,>=5.2.1 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (5.2.1)
Requirement already satisfied: netaddr<1,>=0.7.19 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (0.7.19)
Requirement already satisfied: requests<3,>=2.23.0 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (2.24.0)
Requirement already satisfied: websocket-client<1,>=0.57 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (0.57.0)
Requirement already satisfied: sarge==0.1.5post0 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (0.1.5.post0)
Requirement already satisfied: sentry-sdk<1,>=0.15.1 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (0.16.3)
Requirement already satisfied: Jinja2<3,>=2.11.2 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (2.11.2)
Requirement already satisfied: rsa==4.0 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (4.0)
Requirement already satisfied: Flask-Login<0.6,>=0.5 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (0.5.0)
Requirement already satisfied: emoji<1,>=0.5.4 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (0.5.4)
Requirement already satisfied: pyserial<4,>=3.4 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (3.4)
Requirement already satisfied: frozendict<2,>=1.2 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (1.2)
Requirement already satisfied: OctoPrint-FirmwareCheck>=2020.06.22 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (2020.9.23)
Requirement already satisfied: monotonic<2,>=1.5; python_version < "3" in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (1.5)
Requirement already satisfied: psutil<6,>=5.7 in /home/pi/oprint/lib/python2.7/site-packages (from OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (5.7.2)
Requirement already satisfied: webassets>=2.0 in /home/pi/oprint/lib/python2.7/site-packages (from Flask-Assets<3,>=2.0->OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (2.0)
Requirement already satisfied: setuptools>=36 in /home/pi/oprint/lib/python2.7/site-packages (from markdown<3.2,>=3.1->OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (41.5.1)
Requirement already satisfied: pathtools>=0.1.1 in /home/pi/oprint/lib/python2.7/site-packages (from watchdog<1,>=0.10.2->OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (0.1.2)
Requirement already satisfied: singledispatch in /home/pi/oprint/lib/python2.7/site-packages (from tornado==5.1.1->OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (3.4.0.3)
Requirement already satisfied: backports-abc>=0.4 in /home/pi/oprint/lib/python2.7/site-packages (from tornado==5.1.1->OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (0.5)
Requirement already satisfied: Babel>=2.3 in /home/pi/oprint/lib/python2.7/site-packages (from Flask-Babel<2,>=1.0->OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (2.7.0)
Requirement already satisfied: pytz in /home/pi/oprint/lib/python2.7/site-packages (from Flask-Babel<2,>=1.0->OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (2019.3)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /home/pi/oprint/lib/python2.7/site-packages (from requests<3,>=2.23.0->OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (1.25.6)
Requirement already satisfied: certifi>=2017.4.17 in /home/pi/oprint/lib/python2.7/site-packages (from requests<3,>=2.23.0->OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (2019.9.11)
Requirement already satisfied: chardet<4,>=3.0.2 in /home/pi/oprint/lib/python2.7/site-packages (from requests<3,>=2.23.0->OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (3.0.4)
Requirement already satisfied: idna<3,>=2.5 in /home/pi/oprint/lib/python2.7/site-packages (from requests<3,>=2.23.0->OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (2.8)
Requirement already satisfied: six in /home/pi/oprint/lib/python2.7/site-packages (from websocket-client<1,>=0.57->OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (1.12.0)
Requirement already satisfied: pyasn1>=0.1.3 in /home/pi/oprint/lib/python2.7/site-packages (from rsa==4.0->OctoPrint->OctoPrint-TuyaSmartplug==0.3.0) (0.4.7)
Building wheels for collected packages: OctoPrint-TuyaSmartplug
Building wheel for OctoPrint-TuyaSmartplug (setup.py): started
Building wheel for OctoPrint-TuyaSmartplug (setup.py): finished with status 'done'
Created wheel for OctoPrint-TuyaSmartplug: filename=OctoPrint_TuyaSmartplug-0.3.0-py2-none-any.whl size=11028 sha256=2be32720a741493a7f0d9bf7fbfcd1df7ecb3214c2733ecf63bc5c6660a64d64
Stored in directory: /tmp/pip-ephem-wheel-cache-VQZ7JX/wheels/6f/b9/ca/0fd0976269ad0efdf01a638b98c8068c6a21be5b1d332bce3b
Successfully built OctoPrint-TuyaSmartplug
Installing collected packages: OctoPrint-TuyaSmartplug
Attempting uninstall: OctoPrint-TuyaSmartplug
Found existing installation: OctoPrint-TuyaSmartplug 0.3.0
Uninstalling OctoPrint-TuyaSmartplug-0.3.0:
Successfully uninstalled OctoPrint-TuyaSmartplug-0.3.0
Successfully installed OctoPrint-TuyaSmartplug-0.3.0
Done!
I changed line 14 in __init__.py
from from octoprint_tuyasmartplug.utils import pytuya
to import pytuya
and the installation worked.
Here's the zip, if anyone wants it.
The updated plugin picked up the old settings as is and turns the plug on and off just fine in my Python 2.7.16
OctoPrint installation. Great work! 👍
Thanks for trying this version. Something is probably missing from the manifest, that would explain the lack of the 'utils' module. Your fix on the other hand is using the upstream version of pytuya which was already present in your venv.
I'll have another look then. Thanks again for your valuable feedback.
I tried reverting back my change to __init__.py
and adding the utils
folder in the manifest but it didn't work.
include README.md
recursive-include octoprint_tplinksmartplug/templates *
recursive-include octoprint_tplinksmartplug/translations *
recursive-include octoprint_tplinksmartplug/static *
recursive-include octoprint_tplinksmartplug/utils *
Your fix on the other hand is using the upstream version of pytuya which was already present in your venv.
I guess I got lucky! :D
Ok, so I have made a new build.
You may need to uninstall the old version first though.
Perfect! It installed without any issue!
Thanks for the tests.
0.3.0 is now released with support for python 3.
Please add Python 3 Compatibility as outlined here.