[Domoticz 2020.2] add python plugins (how-to)
Posted: Tue Aug 18, 2020 10:34 pm
Hi,
As response to private message ... please find here after indication to add plugin in Domoticz 2020.2 (based on Ubuntu 20.04 L.T.S. (aka focal)
==== Domoticz APKG is delivered as is ... without elements to add plugins ... because, plugins require a minimum of Linux knowledge (very few) ... but it's easy to get it.
I use as an example the google plugin ... but it's just theoretically ...
==== ALL is identical (if not explicitly write) for ALL models and architecture
==== all command MUST be run in a ssh terminal using root/your_admin_password for connection (NOT admin)
Phase 1 : ONLY for X86_64 architecture to do one except if update overwrite uname
... due to a malformed kernel version ... you need (temporary up to my next update) to create a workaround
... THIS IS MANDATORY ONLY if result of uname -r is "4.14.x" and if uname -m is "x86_64"
==== thanks to Nazar78 that simplify my multi-lines version (managing only -r) ... this is based on its own version of corrected uname
cd /usr/local/AppCentral/domoticz/focal_x86_64/bin
mv uname uname.asustor
echo -e '#!/bin/sh\n\n/bin/uname.asustor "$@"'"|sed 's/\\.x/\\.187/g'">uname
chmod +x uname
... to test it, enter in domoticz Ubuntu env. and run uname -a
... .187 is displayed in place of .x in kernel version 187 is the last 4.14 I use for kernel modules ... due to error in some intermediate 4.14 version
Phase 2 (ALL platform): (to do one time)
... do an update / upgrade to get the last version of libraries and security fix
domoticz_mngt update_ubuntu
... install missing sudo (for domoticz internal script) MUST be added in next APKG version (sorry for this error)
domoticz_mngt enter_in_ubuntu
apt-get install sudo
Phase 3 (ALL platform) but depend of the plugin you want to install
... GET prerequisite for plugin ... BEST is to read the documentation associated (here : https://github.com/dnpwwo/Domoticz-Google-Plugin )
... in the google plugin ... this require : pip3 ; pychromecast and gtts python3 modules and git for install
... install the required software and in python3 the modules using pip3
install pip3 and upgrade to last version
... NOW install python modules using pip (as it is documented) : pychromecast and gtts
... now install git (if not already done) require by THIS plugin ... even downloading is enough ... but another debate ...
==== NOW all prerequisite are installed ... follow the procedure
cd /opt/domoticz/plugins
git clone https://github.com/dnpwwo/Domoticz-Google-Plugin.git
... do verification documented (in my case it's not as documented ... not only a plugin.py and icons BUT a folder : Domoticz-Google-Plugin/ and zip containing icons ???? ) need to be tested
... ... I can't test ... I am at 600 kms of my NAS
... restart domoticz
/etc/init.d/domoticz.sh restart
... OR exit ubuntu (exit) and use AppCentral to disable / enable domoticz
run tests and return log in case of problems ... even domoticz forum or github is more appropriate for a good support (said ... you run in Ubuntu 20.04 L.T.S (focal)) if your platform is require.
Philippe.
As response to private message ... please find here after indication to add plugin in Domoticz 2020.2 (based on Ubuntu 20.04 L.T.S. (aka focal)
==== Domoticz APKG is delivered as is ... without elements to add plugins ... because, plugins require a minimum of Linux knowledge (very few) ... but it's easy to get it.
I use as an example the google plugin ... but it's just theoretically ...
==== ALL is identical (if not explicitly write) for ALL models and architecture
==== all command MUST be run in a ssh terminal using root/your_admin_password for connection (NOT admin)
Phase 1 : ONLY for X86_64 architecture to do one except if update overwrite uname
... due to a malformed kernel version ... you need (temporary up to my next update) to create a workaround
... THIS IS MANDATORY ONLY if result of uname -r is "4.14.x" and if uname -m is "x86_64"
==== thanks to Nazar78 that simplify my multi-lines version (managing only -r) ... this is based on its own version of corrected uname
cd /usr/local/AppCentral/domoticz/focal_x86_64/bin
mv uname uname.asustor
echo -e '#!/bin/sh\n\n/bin/uname.asustor "$@"'"|sed 's/\\.x/\\.187/g'">uname
chmod +x uname
... to test it, enter in domoticz Ubuntu env. and run uname -a
Code: Select all
# domoticz_mngt enter_in_ubuntu
root@AS5002TAPHIL:/# uname -a
Linux AS5002TAPHIL 4.14.187 #1 SMP Wed Aug 12 00:30:36 CST 2020 x86_64 x86_64 x86_64 GNU/Linux
root@AS5002TAPHIL:/# exit
exit
/#
Phase 2 (ALL platform): (to do one time)
... do an update / upgrade to get the last version of libraries and security fix
domoticz_mngt update_ubuntu
... install missing sudo (for domoticz internal script) MUST be added in next APKG version (sorry for this error)
domoticz_mngt enter_in_ubuntu
apt-get install sudo
Phase 3 (ALL platform) but depend of the plugin you want to install
... GET prerequisite for plugin ... BEST is to read the documentation associated (here : https://github.com/dnpwwo/Domoticz-Google-Plugin )
... in the google plugin ... this require : pip3 ; pychromecast and gtts python3 modules and git for install
... install the required software and in python3 the modules using pip3
install pip3 and upgrade to last version
Code: Select all
# apt-get install python3-pip
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libpython3-dev python-pip-whl python3-dev python3-distutils python3-lib2to3 python3-pkg-resources python3-setuptools
python3-wheel python3.8-dev zlib1g-dev
Suggested packages:
python-setuptools-doc
The following NEW packages will be installed:
libpython3-dev python-pip-whl python3-dev python3-distutils python3-lib2to3 python3-pip python3-pkg-resources
python3-setuptools python3-wheel python3.8-dev zlib1g-dev
0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded.
Need to get 3,405 kB of archives.
After this operation, 7,785 kB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://fr.archive.ubuntu.com/ubuntu focal/main amd64 python3-pkg-resources all 45.2.0-1 [130 kB]
Get:2 http://fr.archive.ubuntu.com/ubuntu focal/main amd64 libpython3-dev amd64 3.8.2-0ubuntu2 [7,236 B]
... ... ...
Setting up python3.8-dev (3.8.2-1ubuntu1.2) ...
Setting up python3-dev (3.8.2-0ubuntu2) ...
root@AS5002TAPHIL:/# pip3 install --upgrade pip
Collecting pip
Downloading pip-20.2.2-py2.py3-none-any.whl (1.5 MB)
|████████████████████████████████| 1.5 MB 2.5 MB/s
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 20.0.2
Not uninstalling pip at /usr/lib/python3/dist-packages, outside environment /usr
Can't uninstall 'pip'. No files were found to uninstall.
Successfully installed pip-20.2.2
root@AS5002TAPHIL:/# pip3 -V
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
root@AS5002TAPHIL:/#
Code: Select all
# pip3 install pychromecast
Collecting pychromecast
Downloading PyChromecast-7.2.0-py2.py3-none-any.whl (56 kB)
|████████████████████████████████| 56 kB 406 kB/s
Collecting casttube>=0.2.0
Downloading casttube-0.2.1-py3-none-any.whl (6.5 kB)
Collecting requests>=2.0
Downloading requests-2.24.0-py2.py3-none-any.whl (61 kB)
|████████████████████████████████| 61 kB 39 kB/s
Collecting zeroconf>=0.25.1
Downloading zeroconf-0.28.1-py3-none-any.whl (51 kB)
|████████████████████████████████| 51 kB 18 kB/s
Collecting protobuf>=3.0.0
Downloading protobuf-3.13.0-cp38-cp38-manylinux1_x86_64.whl (1.3 MB)
|████████████████████████████████| 1.3 MB 12.5 MB/s
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1
Downloading urllib3-1.25.10-py2.py3-none-any.whl (127 kB)
|████████████████████████████████| 127 kB 12.1 MB/s
Collecting idna<3,>=2.5
Downloading idna-2.10-py2.py3-none-any.whl (58 kB)
|████████████████████████████████| 58 kB 939 kB/s
Collecting chardet<4,>=3.0.2
Downloading chardet-3.0.4-py2.py3-none-any.whl (133 kB)
|████████████████████████████████| 133 kB 11.5 MB/s
Collecting certifi>=2017.4.17
Downloading certifi-2020.6.20-py2.py3-none-any.whl (156 kB)
|████████████████████████████████| 156 kB 9.6 MB/s
Collecting ifaddr>=0.1.7
Downloading ifaddr-0.1.7-py2.py3-none-any.whl (10 kB)
Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from protobuf>=3.0.0->pychromecast) (45.2.0)
Collecting six>=1.9
Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)
Installing collected packages: urllib3, idna, chardet, certifi, requests, casttube, ifaddr, zeroconf, six, protobuf, pychromecast
Successfully installed casttube-0.2.1 certifi-2020.6.20 chardet-3.0.4 idna-2.10 ifaddr-0.1.7 protobuf-3.13.0 pychromecast-7.2.0 requests-2.24.0 six-1.15.0 urllib3-1.25.10 zeroconf-0.28.1
root@AS5002TAPHIL:/# pip3 install gtts
Collecting gtts
Downloading gTTS-2.1.1-py3-none-any.whl (25 kB)
Requirement already satisfied: requests in /usr/local/lib/python3.8/dist-packages (from gtts) (2.24.0)
Collecting beautifulsoup4
Downloading beautifulsoup4-4.9.1-py3-none-any.whl (115 kB)
|████████████████████████████████| 115 kB 6.1 MB/s
Requirement already satisfied: six in /usr/local/lib/python3.8/dist-packages (from gtts) (1.15.0)
Collecting gtts-token>=1.1.3
Downloading gTTS-token-1.1.3.tar.gz (3.4 kB)
Collecting click
Downloading click-7.1.2-py2.py3-none-any.whl (82 kB)
|████████████████████████████████| 82 kB 143 kB/s
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/dist-packages (from requests->gtts) (2020.6.20)
Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.8/dist-packages (from requests->gtts) (2.10)
Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.8/dist-packages (from requests->gtts) (3.0.4)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.8/dist-packages (from requests->gtts) (1.25.10)
Collecting soupsieve>1.2
Downloading soupsieve-2.0.1-py3-none-any.whl (32 kB)
Building wheels for collected packages: gtts-token
Building wheel for gtts-token (setup.py) ... done
Created wheel for gtts-token: filename=gTTS_token-1.1.3-py3-none-any.whl size=4097 sha256=419be14115ad95f9cc0a709c4480ef6bf85660b5fa2509709c29f53edad77500
Stored in directory: /root/.cache/pip/wheels/95/85/5d/7ee5fb054f35d52211e9274275d76f29f0a484f42876579596
Successfully built gtts-token
Installing collected packages: soupsieve, beautifulsoup4, gtts-token, click, gtts
Successfully installed beautifulsoup4-4.9.1 click-7.1.2 gtts-2.1.1 gtts-token-1.1.3 soupsieve-2.0.1
Code: Select all
# apt-get install git
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
git-man less libbsd0 libcbor0.6 libedit2 liberror-perl libfido2-1 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxext6
libxmuu1 openssh-client xauth
Suggested packages:
gettext-base git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-cvs git-mediawiki git-svn
keychain libpam-ssh monkeysphere ssh-askpass
The following NEW packages will be installed:
git git-man less libbsd0 libcbor0.6 libedit2 liberror-perl libfido2-1 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxext6
libxmuu1 openssh-client xauth
0 upgraded, 17 newly installed, 0 to remove and 0 not upgraded.
Need to get 7,274 kB of archives.
After this operation, 47.1 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://fr.archive.ubuntu.com/ubuntu focal-updates/main amd64 less amd64 551-1ubuntu0.1 [123 kB]
Get:2 http://fr.archive.ubuntu.com/ubuntu focal/main amd64 libbsd0 amd64 0.10.0-1 [45.4 kB]
... ... ...
Processing triggers for libc-bin (2.31-0ubuntu9) ...
Processing triggers for mime-support (3.64ubuntu1) ...
root@AS5002TAPHIL:/#
cd /opt/domoticz/plugins
git clone https://github.com/dnpwwo/Domoticz-Google-Plugin.git
... do verification documented (in my case it's not as documented ... not only a plugin.py and icons BUT a folder : Domoticz-Google-Plugin/ and zip containing icons ???? ) need to be tested
... ... I can't test ... I am at 600 kms of my NAS
... restart domoticz
/etc/init.d/domoticz.sh restart
... OR exit ubuntu (exit) and use AppCentral to disable / enable domoticz
run tests and return log in case of problems ... even domoticz forum or github is more appropriate for a good support (said ... you run in Ubuntu 20.04 L.T.S (focal)) if your platform is require.
Philippe.