Le démon ne se charge pas

Bonjour à tous,
Je voulais installer le plugin nc-talk,(version normal = pas béta) mais le démon ne démarre pas :

J’ai relancé les dépendances, relancé le démon, rien à faire.
J’ai la dernière version de jeedom (4.1.28). J’avais fait ce qu’il faut pour ne plus avoir l’avertissement sur la version python.
si je clique sur
image
J’obtiens


Mon adresse Nexcloud (url) est bien en https:// (cadena ok question certification)
image

J’ai vu dans ce fil de discussion Lancement daemon Impossible
des actions que je pourrais tester. Je pense en particulier à ça (mais je ne pense pas car pip pip3 et pyudev ont l’air d’être installé. Voir plus loin.) :

sudo pip3 install pyudev

mais avant de faire une bêtise, je voudrais être sûr.
Peut être dois je prendre la version béta ?

En complément :

 pip show pyudev --version
Name: pyudev
Version: 0.21.0
Summary: A libudev binding
Home-page: http://pyudev.readthedocs.org/
Author: Sebastian Wiesner
Author-email: lunaryorn@gmail.com
License: LGPL 2.1+
Location: /usr/lib/python2.7/dist-packages
Requires:
Required-by:

pip3 show pyudev --version
Name: pyudev
Version: 0.21.0
Summary: A libudev binding
Home-page: http://pyudev.readthedocs.org/
Author: Sebastian Wiesner
Author-email: lunaryorn@gmail.com
License: LGPL 2.1+
Location: /usr/lib/python3/dist-packages
Requires:
Required-by:

$ python
Python 2.7.16 (default, Oct 10 2019, 22:02:15)
[GCC 8.3.0] on linux2
 python3 --version
Python 3.7.3
 $ pip3 --version
pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)
$ pip3 show requests
Name: requests
Version: 2.21.0
Summary: Python HTTP for Humans.
Home-page: http://python-requests.org
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: /usr/lib/python3/dist-packages
Requires:
Required-by:

 $ pip list
Package           Version
----------------- -----------
arandr            0.1.9
asn1crypto        0.24.0
automationhat     0.2.0
blinker           1.4
blinkt            0.1.2
buttonshim        0.0.2
Cap1xxx           0.1.3
certifi           2018.8.24
chardet           3.0.4
Click             7.0
colorama          0.3.7
colorzero         1.1
configparser      3.5.0b2
cookies           2.2.1
cryptography      2.6.1
drumhat           0.1.0
entrypoints       0.3
enum34            1.1.6
envirophat        1.0.0
ExplorerHAT       0.4.2
Flask             1.0.2
fourletterphat    0.1.0
funcsigs          1.0.2
gpg               1.12.0
gpiozero          1.6.2
idna              2.6
ipaddress         1.0.17
itsdangerous      0.24
Jinja2            2.10
keyring           17.1.1
keyrings.alt      3.1.1
MarkupSafe        1.1.0
microdotphat      0.2.1
mock              2.0.0
mote              0.0.4
motephat          0.0.3
numpy             1.16.2
oauthlib          2.1.0
olefile           0.46
pantilthat        0.0.7
pbr               4.2.0
phatbeat          0.1.1
pianohat          0.1.0
piglow            1.2.5
pigpio            1.78
Pillow            5.4.1
pip               18.1
pycairo           1.16.2
pycrypto          2.6.1
pygame            1.9.4.post1
PyGObject         3.30.4
pyinotify         0.9.6
PyJWT             1.7.0
pyOpenSSL         19.0.0
pyserial          3.4
pyudev            0.21.0
pyxdg             0.25
rainbowhat        0.1.0
requests          2.21.0
requests-oauthlib 1.0.0
responses         0.9.0
RPi.GPIO          0.7.0
RTIMULib          7.2.1
scrollphat        0.0.7
scrollphathd      1.2.1
SecretStorage     2.3.1
sense-hat         2.2.0
setuptools        40.8.0
simplejson        3.16.0
six               1.12.0
skywriter         0.0.7
sn3218            1.2.7
speedtest-cli     2.1.3
spidev            3.5
touchphat         0.0.1
twython           3.7.0
unicornhathd      0.0.4
urllib3           1.24.1
Werkzeug          0.14.1
wheel             0.32.3

Salut mic78000,

Je prends connaissance de ton problème :

Mon pyudev est en version 0.22.

Les versions beta et stable sont au même niveau donc pas d’importance.

voici mon pip3 list:

pip3 list
Package             Version
------------------- -------------
aiohttp             3.7.4.post0
aiosqlite           0.17.0
asn1crypto          0.24.0
async-timeout       3.0.1
attrs               20.3.0
beautifulsoup4      4.7.1
bellows             0.29.0
certifi             2018.8.24
chardet             3.0.4
click               7.1.2
click-log           0.3.2
coloredlogs         15.0
crccheck            1.0
cryptography        2.6.1
distro-info         0.21
entrypoints         0.3
fail2ban            0.10.2
future              0.18.2
html5lib            1.0.1
httplib2            0.11.3
humanfriendly       9.1
idna                2.6
importlib-metadata  4.8.1
iotop               0.6
iso8601             0.1.13
jsonschema          4.1.0
keyring             17.1.1
keyrings.alt        3.1.1
lxml                4.3.2
multidict           5.1.0
pip                 18.1
pure-pcapy3         1.0.1
pycrypto            2.6.1
pycryptodome        3.10.1
pycurl              7.43.0.2
PyGObject           3.30.4
pyinotify           0.9.6
pyrsistent          0.18.0
pyserial            3.5
pyserial-asyncio    0.5
PySimpleSOAP        1.16.2
python-apt          1.8.4.3
python-debian       0.1.35
python-debianbts    2.8.2
pyudev              0.22.0
pyusb               1.1.1
pyxdg               0.25
PyYAML              5.4
reportbug           7.5.3-deb10u1
requests            2.21.0
SecretStorage       2.3.1
setuptools          40.8.0
six                 1.12.0
soupsieve           1.8
systemd-python      234
tornado             6.1
typing-extensions   3.7.4.3
ufw                 0.36
unattended-upgrades 0.1
urllib3             1.24.1
voluptuous          0.12.1
webencodings        0.5.1
websocket-client    0.57.0
wheel               0.37.1
yarl                1.6.3
zha-quirks          0.0.65
zigpy               0.42.0
zigpy-cc            0.5.2
zigpy-deconz        0.14.0
zigpy-xbee          0.14.0
zigpy-zigate        0.7.4
zigpy-znp           0.6.4
zipp                3.6.0

Eventuellement si tu lances le démon à la main via cli :

python3 jeedom/plugins/nc_talk/resources/nc_talkd/nc_talkd.py

Qu’obtiens tu ?

Eventuellement si tu modifies le fichier du démon ligne 76 en remplaçant :

response = requests.get(_url+'/ocs/v2.php/apps/spreed/api/v1/chat/'+talk[eq], headers=headers, data=data,auth = HTTPBasicAuth(_user, _pswd))

par

response = requests.get(_url+'/ocs/v2.php/apps/spreed/api/v1/chat/'+talk[eq], headers=headers, data=data,auth = HTTPBasicAuth(_user, _pswd), verify = False)

Merci pour ta réponde @NeCeN

J’obtiens ceci :


Je suppose que je devais remplacer jeedom par son emplacement.

python3 /var/www/html/plugins/nc_talk/resources/nc_talkd/nc_talkd.py

J’obtiens


pi@pijeedom:/var/www/html $ python3 /var/www/html/plugins/nc_talk/resources/nc_talkd/nc_talkd.py
[2022-01-10 09:31:14][INFO] : Start demond
[2022-01-10 09:31:14][INFO] : Log level : debug
[2022-01-10 09:31:14][INFO] : Socket port : 52029
[2022-01-10 09:31:14][INFO] : Socket host : localhost
[2022-01-10 09:31:14][INFO] : PID file : /tmp/nc_talkd.pid
[2022-01-10 09:31:14][INFO] : Apikey :
[2022-01-10 09:31:14][INFO] : Device : auto
[2022-01-10 09:31:14][INFO] : User : ncuser
[2022-01-10 09:31:14][INFO] : Password : ncpsw
[2022-01-10 09:31:14][INFO] : URL : url_nc
[2022-01-10 09:31:14][INFO] : tps : 5
[2022-01-10 09:31:14][DEBUG] : Writing PID 21152 to /tmp/nc_talkd.pid
[2022-01-10 09:31:14][DEBUG] : Init request module v2.21.0
[2022-01-10 09:31:14][ERROR] : Fatal error : 'MissingSchema' object has no attribute 'message'
[2022-01-10 09:31:14][INFO] : Traceback (most recent call last):
  File "/var/www/html/plugins/nc_talk/resources/nc_talkd/jeedom/jeedom.py", line 133, in test
    response = requests.get(self.url + '?apikey=' + self.apikey, verify=False)
  File "/usr/lib/python3/dist-packages/requests/api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 519, in request
    prep = self.prepare_request(req)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 462, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "/usr/lib/python3/dist-packages/requests/models.py", line 313, in prepare
    self.prepare_url(url, params)
  File "/usr/lib/python3/dist-packages/requests/models.py", line 387, in prepare_url
    raise MissingSchema(error)
requests.exceptions.MissingSchema: Invalid URL '?apikey=': No schema supplied. Perhaps you meant http://?apikey=?

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/var/www/html/plugins/nc_talk/resources/nc_talkd/nc_talkd.py", line 193, in <module>
    if not JEEDOM_COM.test():
  File "/var/www/html/plugins/nc_talk/resources/nc_talkd/jeedom/jeedom.py", line 139, in test
    logging.error('Callback result as a unknown error: %s. Please check your network configuration page'% (e.message,))
AttributeError: 'MissingSchema' object has no attribute 'message'

[2022-01-10 09:31:14][DEBUG] : Shutdown
[2022-01-10 09:31:14][DEBUG] : Removing PID file /tmp/nc_talkd.pid
[2022-01-10 09:31:14][DEBUG] : Exit 0

IL y a donc une erreur fatal :

 Init request module v2.21.0
[2022-01-10 09:31:14][ERROR] : Fatal error : 'MissingSchema' object has no attribute 'message'

Pour le fichier du démon, tu peux me dire où je le trouve (et son nom car une recherche sur demon n’a rien donné) ?
Il est là dedans je suppose :
image

Et je suis en train de comparer les versions suite au pip3 list…
J’éditerai ce message pour donner le résultat

EDit :

En jaune les lignes où ma version est moins récente :

aiohttp             3.8.0		aiohttp             3.7.4.post0	
aiosqlite           0.17.0		aiosqlite           0.17.0	
asn1crypto          0.24.0		asn1crypto          0.24.0	
		async-timeout       3.0.1	
attrs               21.2.0		attrs               20.3.0	
beautifulsoup4      4.7.1		beautifulsoup4      4.7.1	
bellows             0.28.0		bellows             0.29.0	
certifi             2018.8.24		certifi             2018.8.24	
chardet             3.0.4		chardet             3.0.4	
Click               7.0		click               7.1.2	
click-log           0.3.2		click-log           0.3.2	
coloredlogs         15.0.1		coloredlogs         15.0	
crccheck            1.0		crccheck            1.0	
cryptography        2.6.1		cryptography        2.6.1	
distro-info         0.21		distro-info         0.21	
entrypoints         0.3		entrypoints         0.3	
fail2ban            0.10.2		fail2ban            0.10.2	
		future              0.18.2	
html5lib            1.0.1		html5lib            1.0.1	
		httplib2            0.11.3	
humanfriendly       10.0		humanfriendly       9.1	
idna                2.6		idna                2.6	
importlib-metadata  4.8.2		importlib-metadata  4.8.1	
iotop               0.6		iotop               0.6	
		iso8601             0.1.13	
jsonschema          4.2.1		jsonschema          4.1.0	
keyring             17.1.1		keyring             17.1.1	
keyrings.alt        3.1.1		keyrings.alt        3.1.1	
lxml                4.3.2		lxml                4.3.2	
multidict           5.2.0		multidict           5.1.0	
pip                 18.1		pip                 18.1	
pure-pcapy3         1.0.1		pure-pcapy3         1.0.1	
pycrypto            2.6.1		pycrypto            2.6.1	
pycryptodome        3.11.0		pycryptodome        3.10.1	
pycurl              7.43.0.2		pycurl              7.43.0.2	
PyGObject           3.30.4		PyGObject           3.30.4	
pyinotify           0.9.6		pyinotify           0.9.6	
pyrsistent          0.18.0		pyrsistent          0.18.0	
pyserial            3.5		pyserial            3.5	
pyserial-asyncio    0.6		pyserial-asyncio    0.5	
		PySimpleSOAP        1.16.2	
python-apt          1.8.4.3		python-apt          1.8.4.3	
		python-debian       0.1.35	
		python-debianbts    2.8.2	
pyudev              0.21.0		pyudev              0.22.0	
pyusb               1.2.1		pyusb               1.1.1	
pyxdg               0.25		pyxdg               0.25	
		PyYAML              5.4	
		reportbug           7.5.3-deb10u1	
requests            2.21.0		requests            2.21.0	
SecretStorage       2.3.1		SecretStorage       2.3.1	
setuptools          59.4.0		setuptools          40.8.0	
six                 1.12.0		six                 1.12.0	
soupsieve           1.8		soupsieve           1.8	
systemd-python      234		systemd-python      234	
tornado             6.1		tornado             6.1	
typing-extensions   3.10.0.2		typing-extensions   3.7.4.3	
		ufw                 0.36	
unattended-upgrades 0.1		unattended-upgrades 0.1	
urllib3             1.24.1		urllib3             1.24.1	
voluptuous          0.12.2		voluptuous          0.12.1	
webencodings        0.5.1		webencodings        0.5.1	
websocket-client    1.2.1		websocket-client    0.57.0	
wheel               0.37.0		wheel               0.37.1	
yarl                1.7.2		yarl                1.6.3	
zha-quirks          0.0.63		zha-quirks          0.0.65	
zigpy               0.41.0		zigpy               0.42.0	
		zigpy-cc            0.5.2	
zigpy-deconz        0.13.0		zigpy-deconz        0.14.0	
zigpy-xbee          0.14.0		zigpy-xbee          0.14.0	
zigpy-zigate        0.7.4		zigpy-zigate        0.7.4	
zigpy-znp           0.6.1		zigpy-znp           0.6.4	
zipp                3.6.0		zipp                3.6.0	

Bon, j’avoue que pour moi c’est du chinois :smiley:

Le fichier du démon c’est justement « nc_talkd.py » :wink:

Mais d’après ton log de commande en le lançant, c’est pas LUI qui plante directement. Vu que tu le lances en direct il lui manque des infos (ce qui est normal).

Donc essaye de modifier le démon nc_talkd.py comme dit plus haut à la ligne 76. Dans un premier temps.

Pour le démon,
J’ai donc changé ainsi

mais il ne se charge toujours pas.


J’ai essayé de faire redémarrer et relancer, mais pareil.
J’ai essayé aussi un désactiver / activer.

Peux tu relancer le démon avec les logs en mode débug, tu devrais avoir plus que sslerror ?

Anonymises légèrement les identifiants et mot de passe histoire d’avoir quelque chose de cohérent avec tes informations réelle (si tu utilises un mot de passe d’application ou un mot de passe standard, URL ou IP, accent symbol ponctuation bref tout ce qui te semble anodins et qui fait que ça ne marche pas)

J’ai donc mis en mode debug, puis j’ai redémarrer le démon
image

image

Et voilà le résultat en cliquant sur :
image


Et si j’attends longtemps :
Il y en a plein :

Et comme je vois des sslerror, je te confirme que j’accède au jeedom via du ssl validé et certificat ok :
sous firefox :
image

En tout cas, merci de t’être penché sur le problème !

Et ton Nextcloud ?

Normalement en mode Debug ton log devrait commencer par :

[2022-01-11 20:12:07][INFO] : Start demond
[2022-01-11 20:12:07][INFO] : Log level : debug
[2022-01-11 20:12:07][INFO] : Socket port : 52029
[2022-01-11 20:12:07][INFO] : Socket host : localhost
[2022-01-11 20:12:07][INFO] : PID file : /tmp/jeedom/nc_talk/deamon.pid
[2022-01-11 20:12:07][INFO] : Apikey : fkjhfqsqFFQOElBsH7kLdLI
[2022-01-11 20:12:07][INFO] : Device : auto
[2022-01-11 20:12:07][INFO] : User : UnUserJeedom
[2022-01-11 20:12:07][INFO] : Password : pass-pass-pass-pass-pass
[2022-01-11 20:12:07][INFO] : URL : https://mon.nextcloud.fr
[2022-01-11 20:12:07][INFO] : tps : 5
[2022-01-11 20:12:07][DEBUG] : Writing PID 28377 to /tmp/jeedom/nc_talk/deamon.pid
[2022-01-11 20:12:07][DEBUG] : Init request module v2.21.0
[2022-01-11 20:12:07][DEBUG] : Starting new HTTP connection (1): 127.0.0.1:56502
[2022-01-11 20:12:07][DEBUG] : http://127.0.0.1:56502 "GET /plugins/nc_talk/core/php/jeenc_talk.php?apikey=fkjhfqsqFFQOElBsH7kLdLI HTTP/1.1" 200 0

Supprime le log pour plus de clarté et éventuellement envoie le moi par MP (si tu hésites sur les infos sensibles) et n’oublie pas de sauvegarder a chaque changement dans l’interface au niveau du bloc concerné.

Quand tu parles du log du démon, tu me parles bien de ce log ?

Si oui, j’ai ça : (j’ai vidé le log puis redémarré le démon.)


Et en gros, toutes les mn ou 2 mn, j’ai une ligne fatal error en plus, mais je n’ai rien d’autres.
Mon nexcloud est sur un serveur ovh donc pas sur mon réseau local. Il est bien en https :
image
et comme tu peux le voir, le caddenas est ok. Donc si je ne me trompe pas, les certificats sont valides.

Je reste perplexe sur ton log. En mode Debug tu devrais voir les log INFO et DEBUG… or tu ne vois que les ERROR d’un log Defaut.

Pour être sûr (pardon si je suis lourd) :
1 - tu cliques sur Debug
2 - tu cliques sur Sauvegarder (au dessus à droite)
3 - tu lances le démon
4 - tu lis le log du démon

Les INFOS et DEBUG sont « instantanées ».

Par avance merci de ton retour (on va y arriver à comprendre ce qui se passe)

Oups, je n’avais pas vu qu’il fallait faire sauvegarder. Désolé !
Je vais t’envoyer le résultat par mp

C’est elle qui fait planté ! Elle envoie du HTTPS sur le port 80 (HTTP par défaut)

Dans ta configuration jeedom : Réglages>Systèmes>Configuration>Réseaux

Tu dois avoir une connexion INTERNE type HTTPS dirigé sur le port 80 (qui est un port normalement HTTP et qui n’accepte pas de HTTPS)

Si tu veux garder du HTTPS, tu dois avoir le service en face qui gère ça. Si tu es en standard (au vu du port 80) se sera le port 443.

1 « J'aime »

Comme on a eu des échanges en privé histoire de ne pas mettre en public des identifiants etc…
Je vous donne le résultat des courses :
Mon jeedom était mal configuré au niveau des ports dans


Et maintenant ça marche !
Je reçois les messages, avec possibilité dans un scénario de déclencher une action en fonction du message reçu. Je peux en envoyer et donc transmettre dans un message toute information.

Merci @NeCeN pour sa patience !

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.