Page 1 sur 5

Modbus RTU

Publié : 16 févr. 2018, 10:06
par RaGE
Alors, notre ami Sarakha63 a édité depuis plusieurs mois un plugin Mdbus RTU qui attise les convoitises, voir ici:
http://sarakha63-domotique.fr/chaudiere ... se-modbus/

Or ledit plug-in en beta n'est pas visible su rle market, "à cause d'un bug du market" dixit les commentaires sous l'article de Ludovic.

D'où deux questions simples:
- Y-a-t-il un fix de prévu pour ce bug, si bug il y a ?
- En attendant, comment se procurer ledit plugin ?

Merci !

Re: Modbus RTU

Publié : 02 oct. 2018, 14:10
par snowman69
Bonjour,

Avez vous un conseil concernant le choix du dongle USB -RS485 ?

Merci d'avance

Re: Modbus RTU

Publié : 03 oct. 2018, 09:32
par xtrem57
+1, meme question !

Re: Modbus RTU

Publié : 06 oct. 2018, 20:26
par xtrem57
Je m'auto-répond, j'ai finalement commandé celui-ci qui semble fonctionner (je discute bien avec ma chaudière)

https://www.amazon.fr/gp/product/B01N6B ... UTF8&psc=1

Re: Modbus RTU

Publié : 09 oct. 2018, 20:48
par snowman69
Merci Je vais tester ça

Re: Modbus RTU

Publié : 10 oct. 2018, 21:14
par snowman69
Cable RS485 recu et Plugin acheté .

mais impossible d'installer les dépendances :


********************************************************
* Installation des dépendances *
********************************************************
Hit http://repo.jeedom.com stable InRelease
Ign http://ftp.debian.org jessie InRelease
Hit http://ftp.debian.org jessie-updates InRelease
Hit http://security.debian.org jessie/updates InRelease
Hit http://repo.mosquitto.org jessie InRelease
Hit http://ftp.debian.org jessie-backports InRelease
Hit http://ftp.debian.org jessie-proposed-updates InRelease
Hit http://ftp.debian.org jessie Release.gpg
Hit http://ftp.debian.org jessie Release
Hit http://repo.jeedom.com stable/main arm64 Packages
Ign http://repo.jeedom.com stable/main Translation-en_US
Hit http://ftp.debian.org jessie-updates/contrib Sources
Ign http://repo.jeedom.com stable/main Translation-en
Get:1 http://ftp.debian.org jessie-updates/main arm64 Packages/DiffIndex [11.8 kB]
Hit http://ftp.debian.org jessie-updates/contrib arm64 Packages
Get:2 http://ftp.debian.org jessie-updates/non-free arm64 Packages/DiffIndex [736 B]
Hit http://ftp.debian.org jessie-updates/contrib Translation-en
Hit http://security.debian.org jessie/updates/main Sources
Get:3 http://ftp.debian.org jessie-updates/main Translation-en/DiffIndex [3,688 B]
Hit http://security.debian.org jessie/updates/contrib Sources
Get:4 http://ftp.debian.org jessie-updates/non-free Translation-en/DiffIndex [736 B]
Hit http://security.debian.org jessie/updates/non-free Sources
Hit http://ftp.debian.org jessie-updates/main Sources
Hit http://ftp.debian.org jessie-updates/non-free Sources
Get:5 http://ftp.debian.org jessie-backports/main Sources/DiffIndex [27.8 kB]
Get:6 http://ftp.debian.org jessie-backports/contrib Sources/DiffIndex [27.8 kB]
Get:7 http://ftp.debian.org jessie-backports/non-free Sources/DiffIndex [26.0 kB]
Get:8 http://ftp.debian.org jessie-backports/main arm64 Packages/DiffIndex [27.8 kB]
Get:9 http://ftp.debian.org jessie-backports/contrib arm64 Packages/DiffIndex [23.9 kB]
Get:10 http://ftp.debian.org jessie-backports/non-free arm64 Packages/DiffIndex [8,530 B]
Get:11 http://ftp.debian.org jessie-backports/contrib Translation-en/DiffIndex [7,960 B]
Get:12 http://ftp.debian.org jessie-backports/main Translation-en/DiffIndex [27.8 kB]
Get:13 http://ftp.debian.org jessie-backports/non-free Translation-en/DiffIndex [19.1 kB]
Get:14 http://ftp.debian.org jessie-proposed-updates/contrib Sources/DiffIndex [7,762 B]
Get:15 http://ftp.debian.org jessie-proposed-updates/non-free Sources/DiffIndex [18.0 kB]
Get:16 http://ftp.debian.org jessie-proposed-updates/main Sources/DiffIndex [27.8 kB]
Get:17 http://ftp.debian.org jessie-proposed-updates/contrib arm64 Packages/DiffIndex [4,948 B]
Get:18 http://ftp.debian.org jessie-proposed-updates/non-free arm64 Packages/DiffIndex [8,254 B]
Get:19 http://ftp.debian.org jessie-proposed-updates/main arm64 Packages/DiffIndex [27.8 kB]
Get:20 http://ftp.debian.org jessie-proposed-updates/contrib Translation-en/DiffIndex [8,392 B]
Get:21 http://ftp.debian.org jessie-proposed-updates/main Translation-en/DiffIndex [27.8 kB]
Get:22 http://ftp.debian.org jessie-proposed-updates/non-free Translation-en/DiffIndex [18.0 kB]
Hit http://ftp.debian.org jessie/main Sources
Hit http://ftp.debian.org jessie/contrib Sources
Hit http://ftp.debian.org jessie/non-free Sources
Hit http://ftp.debian.org jessie/main arm64 Packages
Hit http://ftp.debian.org jessie/contrib arm64 Packages
Hit http://ftp.debian.org jessie/non-free arm64 Packages
Hit http://ftp.debian.org jessie/contrib Translation-en
Hit http://ftp.debian.org jessie/main Translation-en
Hit http://ftp.debian.org jessie/non-free Translation-en
Hit http://oph.mdrjr.net all InRelease
Hit http://oph.mdrjr.net jessie InRelease
Get:23 http://oph.mdrjr.net all/c2 arm64 Packages
Get:24 http://oph.mdrjr.net all/main arm64 Packages
Get:25 http://oph.mdrjr.net all/testing arm64 Packages
Get:26 http://oph.mdrjr.net all/c2 Translation-en_US [324 B]
Get:27 http://oph.mdrjr.net all/c2 Translation-en [321 B]
Get:28 http://oph.mdrjr.net all/main Translation-en_US [326 B]
Get:29 http://oph.mdrjr.net all/main Translation-en [323 B]
Get:30 http://oph.mdrjr.net all/testing Translation-en_US [329 B]
Get:31 http://oph.mdrjr.net all/testing Translation-en [326 B]
Get:32 http://oph.mdrjr.net jessie/backports arm64 Packages
Get:33 http://oph.mdrjr.net jessie/main arm64 Packages
Get:34 http://oph.mdrjr.net jessie/backports Translation-en_US [334 B]
Get:35 http://oph.mdrjr.net jessie/backports Translation-en [331 B]
Get:36 http://oph.mdrjr.net jessie/main Translation-en_US [329 B]
Get:37 http://oph.mdrjr.net jessie/main Translation-en [326 B]
Hit http://oph.mdrjr.net all/c2 arm64 Packages
Hit http://oph.mdrjr.net all/main arm64 Packages
Hit http://oph.mdrjr.net all/testing arm64 Packages
Get:38 http://oph.mdrjr.net all/c2 Translation-en_US [324 B]
Get:39 http://oph.mdrjr.net all/c2 Translation-en [321 B]
Get:40 http://oph.mdrjr.net all/main Translation-en_US [326 B]
Get:41 http://oph.mdrjr.net all/main Translation-en [323 B]
Get:42 http://oph.mdrjr.net all/testing Translation-en_US [329 B]
Get:43 http://oph.mdrjr.net all/testing Translation-en [326 B]
Hit http://oph.mdrjr.net jessie/backports arm64 Packages
Hit http://oph.mdrjr.net jessie/main arm64 Packages
Get:44 http://oph.mdrjr.net jessie/backports Translation-en_US [334 B]
Get:45 http://oph.mdrjr.net jessie/backports Translation-en [331 B]
Get:46 http://oph.mdrjr.net jessie/main Translation-en_US [329 B]
Get:47 http://oph.mdrjr.net jessie/main Translation-en [326 B]
Get:48 http://oph.mdrjr.net all/c2 Translation-en_US [324 B]
Get:49 http://oph.mdrjr.net all/c2 Translation-en [321 B]
Get:50 http://oph.mdrjr.net all/main Translation-en_US [326 B]
Get:51 http://oph.mdrjr.net all/main Translation-en [323 B]
Get:52 http://oph.mdrjr.net all/testing Translation-en_US [329 B]
Get:53 http://oph.mdrjr.net all/testing Translation-en [326 B]
Get:54 http://oph.mdrjr.net jessie/backports Translation-en_US [334 B]
Get:55 http://oph.mdrjr.net jessie/backports Translation-en [331 B]
Get:56 http://oph.mdrjr.net jessie/main Translation-en_US [329 B]
Get:57 http://oph.mdrjr.net jessie/main Translation-en [326 B]
Get:58 http://oph.mdrjr.net all/c2 Translation-en_US [324 B]
Get:59 http://oph.mdrjr.net all/c2 Translation-en [321 B]
Get:60 http://oph.mdrjr.net all/main Translation-en_US [326 B]
Get:61 http://oph.mdrjr.net all/main Translation-en [323 B]
Get:62 http://oph.mdrjr.net all/testing Translation-en_US [329 B]
Get:63 http://oph.mdrjr.net all/testing Translation-en [326 B]
Get:64 http://oph.mdrjr.net jessie/backports Translation-en_US [334 B]
Get:65 http://oph.mdrjr.net jessie/backports Translation-en [331 B]
Get:66 http://oph.mdrjr.net jessie/main Translation-en_US [329 B]
Get:67 http://oph.mdrjr.net jessie/main Translation-en [326 B]
Get:68 http://oph.mdrjr.net all/c2 Translation-en_US [324 B]
Ign http://oph.mdrjr.net all/c2 Translation-en_US
Get:69 http://oph.mdrjr.net all/c2 Translation-en [321 B]
Ign http://oph.mdrjr.net all/c2 Translation-en
Get:70 http://oph.mdrjr.net all/main Translation-en_US [326 B]
Ign http://oph.mdrjr.net all/main Translation-en_US
Get:71 http://oph.mdrjr.net all/main Translation-en [323 B]
Ign http://oph.mdrjr.net all/main Translation-en
Get:72 http://oph.mdrjr.net all/testing Translation-en_US [329 B]
Ign http://oph.mdrjr.net all/testing Translation-en_US
Get:73 http://oph.mdrjr.net all/testing Translation-en [326 B]
Ign http://oph.mdrjr.net all/testing Translation-en
Get:74 http://oph.mdrjr.net jessie/backports Translation-en_US [334 B]
Ign http://oph.mdrjr.net jessie/backports Translation-en_US
Get:75 http://oph.mdrjr.net jessie/backports Translation-en [331 B]
Ign http://oph.mdrjr.net jessie/backports Translation-en
Get:76 http://oph.mdrjr.net jessie/main Translation-en_US [329 B]
Ign http://oph.mdrjr.net jessie/main Translation-en_US
Get:77 http://oph.mdrjr.net jessie/main Translation-en [326 B]
Ign http://oph.mdrjr.net jessie/main Translation-en
Fetched 363 kB in 29s (12.2 kB/s)
W: Failed to fetch http://security.debian.org/dists/jessie ... /InRelease Unable to find expected entry 'main/binary-arm64/Packages' in Release file (Wrong sources.list entry or malformed file)
W: Failed to fetch http://repo.mosquitto.org/debian/dists/jessie/InRelease Unable to find expected entry 'main/binary-arm64/Packages' in Release file (Wrong sources.list entry or malformed file)
E: Some index files failed to download. They have been ignored, or old ones used instead.
Reading package lists...
Building dependency tree...
Reading state information...
libffi-dev is already the newest version.
python-dev is already the newest version.
python-pip is already the newest version.
The following package was automatically installed and is no longer required:
linux-headers-3.14.29+
Use 'apt-get autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 125 not upgraded.
Reading package lists...
Building dependency tree...
Reading state information...
python-serial is already the newest version.
python-pyudev is already the newest version.
python-requests is already the newest version.
libudev-dev is already the newest version.
The following package was automatically installed and is no longer required:
linux-headers-3.14.29+
Use 'apt-get autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 125 not upgraded.
Reading package lists...
Building dependency tree...
Reading state information...
Package 'python-cffi' is not installed, so not removed
The following package was automatically installed and is no longer required:
linux-headers-3.14.29+
Use 'apt-get autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 125 not upgraded.
Collecting cffi
Using cached https://files.pythonhosted.org/packages ... 1.5.tar.gz
Requirement already satisfied, skipping upgrade: pycparser in /usr/local/lib/python3.4/dist-packages (from cffi) (2.19)
Installing collected packages: cffi
Running setup.py install for cffi: started
Running setup.py install for cffi: finished with status 'error'
Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-2rtd3nwt/cffi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('
', '
');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-y5dpl112/install-record.txt --single-version-externally-managed --compile:
running install
running build
running build_py
creating build
creating build/lib.linux-aarch64-3.4
creating build/lib.linux-aarch64-3.4/cffi
copying cffi/recompiler.py -> build/lib.linux-aarch64-3.4/cffi
copying cffi/verifier.py -> build/lib.linux-aarch64-3.4/cffi
copying cffi/cffi_opcode.py -> build/lib.linux-aarch64-3.4/cffi
copying cffi/setuptools_ext.py -> build/lib.linux-aarch64-3.4/cffi
copying cffi/__init__.py -> build/lib.linux-aarch64-3.4/cffi
copying cffi/lock.py -> build/lib.linux-aarch64-3.4/cffi
copying cffi/api.py -> build/lib.linux-aarch64-3.4/cffi
copying cffi/vengine_gen.py -> build/lib.linux-aarch64-3.4/cffi
copying cffi/ffiplatform.py -> build/lib.linux-aarch64-3.4/cffi
copying cffi/cparser.py -> build/lib.linux-aarch64-3.4/cffi
copying cffi/backend_ctypes.py -> build/lib.linux-aarch64-3.4/cffi
copying cffi/error.py -> build/lib.linux-aarch64-3.4/cffi
copying cffi/commontypes.py -> build/lib.linux-aarch64-3.4/cffi
copying cffi/model.py -> build/lib.linux-aarch64-3.4/cffi
copying cffi/vengine_cpy.py -> build/lib.linux-aarch64-3.4/cffi
copying cffi/_cffi_include.h -> build/lib.linux-aarch64-3.4/cffi
copying cffi/parse_c_type.h -> build/lib.linux-aarch64-3.4/cffi
copying cffi/_embedding.h -> build/lib.linux-aarch64-3.4/cffi
copying cffi/_cffi_errors.h -> build/lib.linux-aarch64-3.4/cffi
running build_ext
building '_cffi_backend' extension
creating build/temp.linux-aarch64-3.4
creating build/temp.linux-aarch64-3.4/c
aarch64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/include/ffi -I/usr/include/libffi -I/usr/include/python3.4m -c c/_cffi_backend.c -o build/temp.linux-aarch64-3.4/c/_cffi_backend.o
c/_cffi_backend.c:2:20: fatal error: Python.h: No such file or directory
#include <Python.h>
^
compilation terminated.
error: command 'aarch64-linux-gnu-gcc' failed with exit status 1
----------------------------------------
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-2rtd3nwt/cffi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('
', '
');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-y5dpl112/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-2rtd3nwt/cffi/
Collecting cryptography
Using cached https://files.pythonhosted.org/packages ... 3.1.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-23qvl0cp/cryptography/setup.py", line 28, in <module>
"cryptography requires setuptools 18.5 or newer, please upgrade to a "
RuntimeError: cryptography requires setuptools 18.5 or newer, please upgrade to a newer version of setuptools
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-23qvl0cp/cryptography/
Requirement already up-to-date: minimalmodbus in /usr/local/lib/python3.4/dist-packages (0.7)
Requirement already satisfied, skipping upgrade: pyserial in /usr/local/lib/python3.4/dist-packages (from minimalmodbus) (3.4)
Collecting paramiko
Using cached https://files.pythonhosted.org/packages ... ne-any.whl
Collecting pyasn1>=0.1.7 (from paramiko)
Using cached https://files.pythonhosted.org/packages ... ne-any.whl
Collecting cryptography>=1.5 (from paramiko)
Using cached https://files.pythonhosted.org/packages ... 3.1.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-jtcaiwod/cryptography/setup.py", line 28, in <module>
"cryptography requires setuptools 18.5 or newer, please upgrade to a "
RuntimeError: cryptography requires setuptools 18.5 or newer, please upgrade to a newer version of setuptools
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-jtcaiwod/cryptography/
Requirement already up-to-date: utils in /usr/local/lib/python3.4/dist-packages (0.9.0)
********************************************************
* Installation terminée *
********************************************************

Re: Modbus RTU

Publié : 11 oct. 2018, 08:28
par snowman69
Cable RS485 recu et Plugin acheté .

J'ai galéré pour installer les dépendances.. j'ai essayé toutes les commandes possible et au final c'est OK

Maintenant c'est le demon qui ne se lance pas, il me parle du module Parakito qui n'est pas installé alors que si je lance "install Parakito" il me dit qu'il est déja installé ..

Avez vous ce genre de problème ?

Re: Modbus RTU

Publié : 11 oct. 2018, 08:31
par snowman69
Cable RS485 recu et Plugin acheté .

J'ai galéré pour installer les dépendances.. j'ai essayé toutes les commandes possible et au final c'est OK

Maintenant c'est le demon qui ne se lance pas, il me parle du module Parakito qui n'est pas installé alors que si je lance "install Parakito" il me dit qu'il est déja installé ..

Avez vous ce genre de problème ?

Re: Modbus RTU

Publié : 11 oct. 2018, 15:42
par xtrem57
Aucun soucis de mon coté, tout c'est installé sans soucis.

Ta santé Jeedom est bien au vert ?
Ton OS est bien a jour ?

Re: Modbus RTU

Publié : 12 oct. 2018, 11:37
par snowman69
Coté santé Jeedom tout est OK et à jour sauf le Modbus RTU

Je dois avoir une erreur dans la ligne 20 :


"[2018-10-10 21:26:06][DEBUG] : Lancement de : /var/www/html/core/class/../../core/php/jeePlugin.php plugin_id=modbusrtu function=remove callInstallFunction=1
[2018-10-10 21:37:29][INFO] : Début d’activation du plugin
[2018-10-10 21:37:30][INFO] : Info sur le démon : Array ( [launchable_message] => [launchable] => nok [state] => nok [log] => nok [auto] => 0 )
[2018-10-10 21:37:30][DEBUG] : Lancement de : /var/www/html/core/class/../../core/php/jeePlugin.php plugin_id=modbusrtu function=install callInstallFunction=1
Traceback (most recent call last):
File « /var/www/html/plugins/modbusrtu/resources/modbusrtud/modbusrtud.py », line 20, in
import paramiko
ImportError: No module named paramiko
[2018-10-10 23:01:06][ERROR] : Impossible de lancer le démon modbusrtu « »

Re: Modbus RTU

Publié : 08 janv. 2019, 19:18
par looping
Ayant moi aussi exactement la même chaudière, je me suis dit: "Bingo"!! voila le plugin qu'il me faut!!

Par contre j'ai le même problème d'installation des dépendances.. (installation DYI sur PC debian)
comment avez vous résolu votre instal?
j'ai lu "
J'ai galéré pour installer les dépendances.. j'ai essayé toutes les commandes possible et au final c'est OK"
-> Quelles commandes as tu utilisé stp?
Merci!

Re: Modbus RTU

Publié : 08 janv. 2019, 19:30
par looping

Code : Tout sélectionner

********************************************************
*             Installation des dépendances             *
********************************************************
Ign http://ftp.fr.debian.org jessie InRelease
Hit http://ftp.fr.debian.org jessie-updates InRelease
Hit http://security.debian.org jessie/updates InRelease
Hit http://ftp.fr.debian.org jessie Release.gpg
Hit http://ftp.fr.debian.org jessie Release
Hit https://deb.nodesource.com jessie InRelease
Hit http://ftp.fr.debian.org jessie-updates/main Sources
Hit http://ftp.fr.debian.org jessie-updates/non-free Sources
Hit http://security.debian.org jessie/updates/main Sources
Hit https://deb.nodesource.com jessie/main Sources
Hit https://deb.nodesource.com jessie/main i386 Packages
Get:1 http://ftp.fr.debian.org jessie-updates/main i386 Packages/DiffIndex [11.8 kB]
Hit http://security.debian.org jessie/updates/non-free Sources
Get:2 https://deb.nodesource.com jessie/main Translation-en [162 B]
Get:3 https://deb.nodesource.com jessie/main Translation-fr [162 B]
Hit http://security.debian.org jessie/updates/main i386 Packages
Get:4 http://ftp.fr.debian.org jessie-updates/non-free i386 Packages/DiffIndex [736 B]
Get:5 https://deb.nodesource.com jessie/main Translation-en [162 B]
Get:6 https://deb.nodesource.com jessie/main Translation-fr [162 B]
Hit http://security.debian.org jessie/updates/non-free i386 Packages
Get:7 http://ftp.fr.debian.org jessie-updates/main Translation-en/DiffIndex [3688 B]
Get:8 https://deb.nodesource.com jessie/main Translation-en [162 B]
Hit http://security.debian.org jessie/updates/main Translation-en
Get:9 https://deb.nodesource.com jessie/main Translation-fr [162 B]
Get:10 http://ftp.fr.debian.org jessie-updates/non-free Translation-en/DiffIndex [736 B]
Get:11 https://deb.nodesource.com jessie/main Translation-en [162 B]
Hit http://security.debian.org jessie/updates/non-free Translation-en
Get:12 https://deb.nodesource.com jessie/main Translation-fr [162 B]
Hit http://ftp.fr.debian.org jessie/main Sources
Get:13 https://deb.nodesource.com jessie/main Translation-en [162 B]
Ign https://deb.nodesource.com jessie/main Translation-en
Get:14 https://deb.nodesource.com jessie/main Translation-fr [162 B]
Ign https://deb.nodesource.com jessie/main Translation-fr
Hit http://ftp.fr.debian.org jessie/non-free Sources
Hit http://ftp.fr.debian.org jessie/main i386 Packages
Hit http://ftp.fr.debian.org jessie/non-free i386 Packages
Hit http://ftp.fr.debian.org jessie/main Translation-en
Hit http://ftp.fr.debian.org jessie/main Translation-fr
Hit http://ftp.fr.debian.org jessie/non-free Translation-en
Fetched 17.0 kB in 52s (321 B/s)
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
Downloading/unpacking cffi from https://files.pythonhosted.org/packages/e7/a7/4cd50e57cc6f436f1cc3a7e8fa700ff9b8b4d471620629074913e3735fb2/cffi-1.11.5.tar.gz#sha256=e90f17980e6ab0f3c2f3730e56d1fe9bcba1891eeea58966e89d352492cc74f4
Running setup.py (path:/tmp/pip-build-4fR85i/cffi/setup.py) egg_info for package cffi
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Downloading/unpacking pycparser from https://files.pythonhosted.org/packages/68/9e/49196946aee219aead1290e00d1e7fdeab8567783e83e1b9ab5585e6206a/pycparser-2.19.tar.gz#sha256=a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3 (from cffi)
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'python_requires'
warnings.warn(msg)
warning: no previously-included files found matching 'setup.pyc'
warning: no previously-included files matching 'yacctab.*' found under directory 'tests'
warning: no previously-included files matching 'lextab.*' found under directory 'tests'
warning: no previously-included files matching 'yacctab.*' found under directory 'examples'
warning: no previously-included files matching 'lextab.*' found under directory 'examples'
Installing collected packages: cffi, pycparser
Found existing installation: cffi 0.8.6
Not uninstalling cffi at /usr/lib/python2.7/dist-packages, owned by OS
Running setup.py install for cffi
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
building '_cffi_backend' extension
i586-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/include/ffi -I/usr/include/libffi -I/usr/include/python2.7 -c c/_cffi_backend.c -o build/temp.linux-i686-2.7/c/_cffi_backend.o
c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory
#include <ffi.h>
^
compilation terminated.
error: command 'i586-linux-gnu-gcc' failed with exit status 1
Complete output from command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-4fR85i/cffi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('
', '
'), __file__, 'exec'))" install --record /tmp/pip-gANhpW-record/install-record.txt --single-version-externally-managed --compile:
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
running install
running build
running build_py
creating build
creating build/lib.linux-i686-2.7
creating build/lib.linux-i686-2.7/cffi
copying cffi/recompiler.py -> build/lib.linux-i686-2.7/cffi
copying cffi/verifier.py -> build/lib.linux-i686-2.7/cffi
copying cffi/cffi_opcode.py -> build/lib.linux-i686-2.7/cffi
copying cffi/setuptools_ext.py -> build/lib.linux-i686-2.7/cffi
copying cffi/__init__.py -> build/lib.linux-i686-2.7/cffi
copying cffi/lock.py -> build/lib.linux-i686-2.7/cffi
copying cffi/api.py -> build/lib.linux-i686-2.7/cffi
copying cffi/vengine_gen.py -> build/lib.linux-i686-2.7/cffi
copying cffi/ffiplatform.py -> build/lib.linux-i686-2.7/cffi
copying cffi/cparser.py -> build/lib.linux-i686-2.7/cffi
copying cffi/backend_ctypes.py -> build/lib.linux-i686-2.7/cffi
copying cffi/error.py -> build/lib.linux-i686-2.7/cffi
copying cffi/commontypes.py -> build/lib.linux-i686-2.7/cffi
copying cffi/model.py -> build/lib.linux-i686-2.7/cffi
copying cffi/vengine_cpy.py -> build/lib.linux-i686-2.7/cffi
copying cffi/_cffi_include.h -> build/lib.linux-i686-2.7/cffi
copying cffi/parse_c_type.h -> build/lib.linux-i686-2.7/cffi
copying cffi/_embedding.h -> build/lib.linux-i686-2.7/cffi
copying cffi/_cffi_errors.h -> build/lib.linux-i686-2.7/cffi
running build_ext
building '_cffi_backend' extension
creating build/temp.linux-i686-2.7
creating build/temp.linux-i686-2.7/c
i586-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/include/ffi -I/usr/include/libffi -I/usr/include/python2.7 -c c/_cffi_backend.c -o build/temp.linux-i686-2.7/c/_cffi_backend.o
c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory
#include <ffi.h>
^
compilation terminated.
error: command 'i586-linux-gnu-gcc' failed with exit status 1
----------------------------------------
Can't roll back cffi; was not uninstalled
Cleaning up...
Command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-4fR85i/cffi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('
', '
'), __file__, 'exec'))" install --record /tmp/pip-gANhpW-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /tmp/pip-build-4fR85i/cffi
Storing debug log for failure in /root/.pip/pip.log
Downloading/unpacking cryptography from https://files.pythonhosted.org/packages/f3/39/d3904df7c56f8654691c4ae1bdb270c1c9220d6da79bd3b1fbad91afd0e1/cryptography-2.4.2.tar.gz#sha256=05a6052c6a9f17ff78ba78f8e6eb1d777d25db3b763343a1ae89a7a8670386dd
Running setup.py (path:/tmp/pip-build-DEPvyc/cryptography/setup.py) egg_info for package cryptography
Traceback (most recent call last):
File "<string>", line 17, in <module>
File "/tmp/pip-build-DEPvyc/cryptography/setup.py", line 28, in <module>
"cryptography requires setuptools 18.5 or newer, please upgrade to a "
RuntimeError: cryptography requires setuptools 18.5 or newer, please upgrade to a newer version of setuptools
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 17, in <module>
File "/tmp/pip-build-DEPvyc/cryptography/setup.py", line 28, in <module>
"cryptography requires setuptools 18.5 or newer, please upgrade to a "
RuntimeError: cryptography requires setuptools 18.5 or newer, please upgrade to a newer version of setuptools
----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-DEPvyc/cryptography
Storing debug log for failure in /root/.pip/pip.log
Requirement already up-to-date: minimalmodbus in /usr/local/lib/python2.7/dist-packages
Requirement already up-to-date: pyserial in /usr/local/lib/python2.7/dist-packages (from minimalmodbus)
Cleaning up...
Downloading/unpacking paramiko
Downloading/unpacking pyasn1>=0.1.7 from https://files.pythonhosted.org/packages/7b/7c/c9386b82a25115cccf1903441bba3cbadcfae7b678a20167347fa8ded34c/pyasn1-0.4.5-py2.py3-none-any.whl#sha256=da6b43a8c9ae93bc80e2739efb38cc776ba74a886e3e9318d65fe81a8b8a2c6e (from paramiko)
Downloading/unpacking bcrypt>=3.1.3 (from paramiko)
Running setup.py (path:/tmp/pip-build-Ae4NTa/bcrypt/setup.py) egg_info for package bcrypt
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'python_requires'
warnings.warn(msg)
warning: no previously-included files found matching 'requirements.txt'
warning: no previously-included files found matching 'tasks.py'
warning: no previously-included files found matching '.travis.yml'
warning: no previously-included files found matching 'wheel-scripts'
warning: no previously-included files found matching 'Jenkinsfile'
warning: no previously-included files found matching '.jenkins'
warning: no previously-included files matching '*' found under directory '.jenkins'
warning: no previously-included files matching '*' found under directory 'wheel-scripts'
no previously-included directories found matching '.travis'
Downloading/unpacking pynacl>=1.0.1 (from paramiko)
Running setup.py (path:/tmp/pip-build-Ae4NTa/pynacl/setup.py) egg_info for package pynacl
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory
#include <ffi.h>
^
compilation terminated.
Traceback (most recent call last):
File "<string>", line 17, in <module>
File "/tmp/pip-build-Ae4NTa/pynacl/setup.py", line 255, in <module>
"Programming Language :: Python :: 3.7",
File "/usr/lib/python2.7/distutils/core.py", line 111, in setup
_setup_distribution = dist = klass(attrs)
File "/usr/lib/python2.7/dist-packages/setuptools/dist.py", line 262, in __init__
self.fetch_build_eggs(attrs['setup_requires'])
File "/usr/lib/python2.7/dist-packages/setuptools/dist.py", line 287, in fetch_build_eggs
replace_conflicting=True,
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 631, in resolve
dist = best[req.key] = env.best_match(req, ws, installer)
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 874, in best_match
return self.obtain(req, installer)
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 886, in obtain
return installer(requirement)
File "/usr/lib/python2.7/dist-packages/setuptools/dist.py", line 338, in fetch_build_egg
return cmd.easy_install(req)
File "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 636, in easy_install
return self.install_item(spec, dist.location, tmpdir, deps)
File "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 666, in install_item
dists = self.install_eggs(spec, download, tmpdir)
File "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 856, in install_eggs
return self.build_and_install(setup_script, setup_base)
File "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 1078, in build_and_install
self.run_setup(setup_script, setup_base, args)
File "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 1066, in run_setup
raise DistutilsError("Setup script exited with %s" % (v.args[0],))
distutils.errors.DistutilsError: Setup script exited with error: command 'i586-linux-gnu-gcc' failed with exit status 1
Complete output from command python setup.py egg_info:
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found
c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory
#include <ffi.h>
^
compilation terminated.
Traceback (most recent call last):
File "<string>", line 17, in <module>
File "/tmp/pip-build-Ae4NTa/pynacl/setup.py", line 255, in <module>
"Programming Language :: Python :: 3.7",
File "/usr/lib/python2.7/distutils/core.py", line 111, in setup
_setup_distribution = dist = klass(attrs)
File "/usr/lib/python2.7/dist-packages/setuptools/dist.py", line 262, in __init__
self.fetch_build_eggs(attrs['setup_requires'])
File "/usr/lib/python2.7/dist-packages/setuptools/dist.py", line 287, in fetch_build_eggs
replace_conflicting=True,
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 631, in resolve
dist = best[req.key] = env.best_match(req, ws, installer)
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 874, in best_match
return self.obtain(req, installer)
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 886, in obtain
return installer(requirement)
File "/usr/lib/python2.7/dist-packages/setuptools/dist.py", line 338, in fetch_build_egg
return cmd.easy_install(req)
File "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 636, in easy_install
return self.install_item(spec, dist.location, tmpdir, deps)
File "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 666, in install_item
dists = self.install_eggs(spec, download, tmpdir)
File "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 856, in install_eggs
return self.build_and_install(setup_script, setup_base)
File "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 1078, in build_and_install
self.run_setup(setup_script, setup_base, args)
File "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 1066, in run_setup
raise DistutilsError("Setup script exited with %s" % (v.args[0],))
distutils.errors.DistutilsError: Setup script exited with error: command 'i586-linux-gnu-gcc' failed with exit status 1
----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-Ae4NTa/pynacl
Storing debug log for failure in /root/.pip/pip.log
Requirement already up-to-date: utils in /usr/local/lib/python2.7/dist-packages
Cleaning up...
********************************************************
*             Installation terminée                    *
********************************************************

Ce que je vois dans ce debug que je ne sais pas corriger:

Il me demande de faire ca;
sudo dpkg --configure -a
Je vais dans administration et je colle ce code, mais iol ne se passe rien du tout

RuntimeError: cryptography requires setuptools 18.5 or newer, please upgrade to a newer version of setuptools
-> Comment procéder à l'upgrade?

No package 'libffi' found
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable

-> grr..... rien compris à ca!

Re: Modbus RTU

Publié : 08 janv. 2019, 19:52
par Claude69
Hello
Le dpkg... doit être fait en SSH. Ça ne fonctionne pas dans la console.

Re: Modbus RTU

Publié : 09 janv. 2019, 10:20
par wasah84
Bonjour,
Je viens de découvrir ce nouveau plugin RTU que j'attendais depuis longtemps, je vais le tester.
Pour ceux que ça peut intéresser j'arrive à faire du Modbus RTU avec l'autre plugin "Modbus" de Jeedom. J'ai juste du changer une variable par défaut d'un des scripts python pour le forcer en "RTU".
C'est dommage il suffirait juste de faire une case à cocher sur l'autre plugin pour choisir de faire du RTU ou pas car tout est déjà cablé dans les librairies !

Pour info je peux maintenant interroger un RIBO V1 avec sortir RS485, sur laquelle j'ai branché un convertisseur TCP/IP.

Mes températures et consignes sont bien affichées maintenant dans le plugin, il ne me reste plus qu'à configurer l'autre plugin "Thermostat" pour exploiter les données du plugin Modbus.

Re: Modbus RTU

Publié : 09 janv. 2019, 12:54
par looping

Code : Tout sélectionner

Last login: Sun Jun 24 13:06:19 2018 from 192.168.0.30
yan@debian:~$ sudo dpkg --configure -a
[sudo] password for yan:
Paramétrage de libapache2-mod-php5 (5.6.36+dfsg-0+deb8u1) ...
apache2_invoke php5: already enabled
J'ai enfin retrouvé mon mot de passe SSH :lol:
j'ai donc lancé la commande dpkg. c'est normal qu'il y ai deux "-" à la suite?

J'ai relancé l'installation des dépendances ensuite.
Malheureusement toujours un échec. dans les logs j'ai repéré ca, est ce la cause du problème?:

Code : Tout sélectionner

Downloading/unpacking cryptography>=1.5 (from paramiko)
Running setup.py (path:/tmp/pip-build-suaLI5/cryptography/setup.py) egg_info for package cryptography
Traceback (most recent call last):
File "<string>", line 17, in <module>
File "/tmp/pip-build-suaLI5/cryptography/setup.py", line 28, in <module>
"cryptography requires setuptools 18.5 or newer, please upgrade to a "
RuntimeError: cryptography requires setuptools 18.5 or newer, please upgrade to a newer version of setuptools
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 17, in <module>
File "/tmp/pip-build-suaLI5/cryptography/setup.py", line 28, in <module>
"cryptography requires setuptools 18.5 or newer, please upgrade to a "
RuntimeError: cryptography requires setuptools 18.5 or newer, please upgrade to a newer version of setuptools

Re: Modbus RTU

Publié : 09 janv. 2019, 15:59
par looping
J'ai tenté sudo pip install setuptools
réponse de l'intéressé:

yan@debian:~$ pip install setuptools
Requirement already satisfied (use --upgrade to upgrade): setuptools in /usr/lib/python2.7/dist-packa ges
Cleaning up...

Bon, qu'a celà ne tienne, je me suis dit, je vais le mettre à jour avec:
pip install --upgrade setuptools --user python

réponse à nouveau pas content:
yan@debian:~$ pip install --upgrade setuptools --user python
Downloading/unpacking setuptools from https://files.pythonhosted.org/packages ... af971b0d2d 48f151c2586f62902d93dc908e2fd9b9b9f6aa3c9dd/setuptools-40.6.3-py2.py3-none-any.whl#sha256=e2c1ce9a832 f34cf7a31ed010aabcab5008eb65ce8f2aadc04622232c14bdd0b
Downloading setuptools-40.6.3-py2.py3-none-any.whl (573kB): 573kB downloaded
Could not find any downloads that satisfy the requirement python in /usr/lib/python2.7/lib-dynload
Downloading/unpacking python
Cleaning up...
No distributions at all found for python in /usr/lib/python2.7/lib-dynload
Storing debug log for failure in /home/yan/.pip/pip.log


ce coup là, je sèche :cry:

Re: Modbus RTU

Publié : 10 janv. 2019, 11:28
par looping
Pour ceux que ca peut intéresser, j'ai trouvé comment mettre à jour setuptools, ce qui m'a permis d'installer les dépendances

Code : Tout sélectionner

yan@debian:~$ sudo pip install virtualenv --upgrade
Downloading/unpacking virtualenv
  Downloading virtualenv-16.2.0-py2.py3-none-any.whl (1.9MB): 1.9MB downloaded
Downloading/unpacking setuptools>=18.0.0 (from virtualenv)
  Downloading setuptools-40.6.3-py2.py3-none-any.whl (573kB): 573kB downloaded
Installing collected packages: virtualenv, setuptools
  Found existing installation: setuptools 5.5.1
    Not uninstalling setuptools at /usr/lib/python2.7/dist-packages, owned by OS
Successfully installed virtualenv setuptools
Cleaning up...

Re: Modbus RTU

Publié : 10 janv. 2019, 15:26
par looping
Bon, la joie n'est que de courte durée ... Je n'ai plus de communication 1/4 d'heure après la mise en service.
Apres vérification dans Modscan j'ai beaucoup de "Invalid reponse" ... j'ai tenté de raccourcir le câble (passé de 80cm à 30cm), rien n'y fait. J'ai pourtant acheté le même adaptateur USB que sarahka préconise dans son blog...
J'ai bien entendu essayé d'inverser les deux fils, mais c'est pire, j'ai plus du tout de réponses.
Dans le meilleurs des cas j'ai 50% de réponses.... (je précise que je suis en bi maitre, bien activé dans le plugin et que j'ai bien mis 5000ms de delay dans modscan pour les tests)

Pensez vous que je doive acheter un autre convertisseur?

Re: Modbus RTU

Publié : 12 janv. 2019, 17:04
par looping
Je me répond à nouveau tout seul :D (ca sent le gros monologue!!)

J'ai à nouveau changé la cable... ce coup ci il fait 9M ... oui!! 9 mètres!! et ca fonctionne parfaitement!
j'avais acheté un mini din vers mini din 10M, coupé une extrémité.... puis utilisé l'autre extrémité.. Va comprendre Charles!
Bref, ca fonctionne, tout est paramétrable à souhait, que du bon ce plugin!
chaudière.jpg
chaudière.jpg (64.17 Kio) Consulté 5361 fois

Re: Modbus RTU

Publié : 19 janv. 2019, 12:31
par pilou226
Bonjour,

existe-t-il une documentation pour ce plugin ? je bloque sur un probleme et je pense que n'utilise pas comme il faut le paramétrage adresse.