KLF 200 ne cesse de redémarrer pour n'importe quelle action!

Justement je vais recevoir une nouvelle KLF200 pour tester comme toi car le dévellopeur de l’application ma clairement dit (et « juste » dit, car depuis plus de nouvelles) que c’était un problème de la box !!!
Comment as-tu fait pour passer les infos d’une box à l’autre ?

Après plusieurs tests :

  • avec la commande de la prise ON/OFF en standby (l’application KLF200 ne peux plus éteindre et rallumer la Box KLF)
  • cela fonctionne (avec quand même toujours le message d’erreur) :
    Capture d’écran 2021-11-24 à 13.47.09

/!\ Par contre il est clair que lorsqu’un scénario se lance (qui commande juste 2 volets - pour faire le test), il faut impérativement que les actions se produisent en même temps :

Sinon uniquement la première commande va passer, ensuite BUG >>> « KLF200 has been restarted after found not responding »…

Donc on peut clairement dire, que le problème ne vient pas de la BOX KLF mais de l’application KLF200 → du coup pas de solution. C’est peut-être ça l’obsolescence programmée LOL !

En tout cas, merci à tous sur ce post qui ont tentés de m’aider et de trouver une solution !!!

Je suis reparti d’une feuille blanche.
j’ai tout retransféré à partir de ma télécomande impresario Telis de chez Somfy

→ Récupération de la Clef
puis transfert de la programmation existante (appui 2 seconde sur Prog de la telecommande Somfy) après avoir lancé la procédure de récupération sur la box KLF200.

tout cela pour au final remettre en service ma Box Connexoon :slight_smile:

et je confirme que le problème ne doit pas venir de la BOX, car j’ai exactement le même problème sur la nouvelle (alors que la configuration de la nouvelle ne provient pas de l’ancienne box KLF)
ce qui aurait pu laisser penser à un problème interne à la Box c’est l’arrivée soudaine du problème.

Bonsoir,

Si l’on regarde les 3 1ères lignes du log, il y a une non réponse du daemon à l’action /set/0/100 de 09:45:25
Le résultat est vide à 09:49:51 soit 25 secondes après la requête. ( La requête est envoyée 3 fois au daemon avec un timeout de 8 secondes. Sleep de 0.5s entre chaque )
Cela entraine l’action de redémarrer le daemon qui se termine à 09:50:32
Le déroulement du redémarrage dans le code est:

  • Couper le courant au KLF si la commande existe.
  • Attendre 20 secondes
  • Remettre le courant au KLF si la commande existe.
  • Attendre 20 secondes
  • Arrêter le daemon
  • Redémarrer le daemon

Entre temps, il y a une requête par le cron à partir de 09:50:03 qui fonctionne. Réponse dans la même seconde.

Lorsque le daemon est redémarré, la requête (100% sur le volet 0) qui n’a pas eu de réponse a quand même été exécutée …

Il reste à trouver pourquoi cette non réponse.
Pb réseau ? Comment est relié le KLF à Jeedom ?

Il n’y a aucun message de diagnostic dans le daemon en python.
Ils permettraient de voir la communication daemon / KLF

Avez-vous le log de ce qui s’est passé avant 09:49:25 ?

Ce n’est pas le rapport du redémarrage, c’est l’installation des dépendances du plugin dans la configuration du plugin.

Le KLF et Jeedom sont tous deux branchés à la Box SFR par cable !

Où trouver ce message ?

Il faudrait modifier le daemon pour ajouter des messages.
Mais pas certain que ça soit nécessaire:

Une issue sur le github du développeur de la lib python (pyvlx) utilisée par le daemon qui dialogue avec le KLF :

C’est non résolu et le contournement proposé ( redémarrer le KLF ) est déjà appliqué dans le plugin.

======== Running on http://0.0.0.0:9123 ========
(Press CTRL+C to quit)
[2021-11-25 09:43:54][INFO] : Arrêt du service klf200
[2021-11-25 09:43:54][INFO] : Arrêt du service klf200
[2021-11-25 09:43:54][INFO] : Lancement démon klf200 : /usr/bin/python3 /var/www/html/plugins/klf200/resources/klf200d.py 192.168.1.69 wZsgA6RTjY
[2021-11-25 09:43:54][INFO] : Lancement démon klf200 : /usr/bin/python3 /var/www/html/plugins/klf200/resources/klf200d.py 192.168.1.69 wZsgA6RTjY
[2021-11-25 09:43:54][ERROR] : KLF200 has been restarted after found not responding
[2021-11-25 09:43:54][ERROR] : KLF200 has been restarted after found not responding
[2021-11-25 09:43:55][INFO] : Lancement démon klf200 : /usr/bin/python3 /var/www/html/plugins/klf200/resources/klf200d.py 192.168.1.69 wZsgA6RTjY
[2021-11-25 09:43:55][ERROR] : KLF200 has been restarted after found not responding
[2021-11-25 09:44:02][DEBUG] : Send http://localhost:9123/devices
[2021-11-25 09:44:03][DEBUG] : Result
Traceback (most recent call last):
File "/var/www/html/plugins/klf200/resources/klf200d.py", line 269, in <module>
LOOP.run_until_complete(init_pyvlx_connection(LOOP))
File "/usr/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete
return future.result()
File "/var/www/html/plugins/klf200/resources/klf200d.py", line 22, in init_pyvlx_connection
await pyvlx.load_nodes()
File "/usr/local/lib/python3.7/dist-packages/pyvlx/pyvlx.py", line 76, in load_nodes
await self.nodes.load(node_id)
File "/usr/local/lib/python3.7/dist-packages/pyvlx/nodes.py", line 69, in load
await self._load_all_nodes()
File "/usr/local/lib/python3.7/dist-packages/pyvlx/nodes.py", line 85, in _load_all_nodes
await get_all_nodes_information.do_api_call()
File "/usr/local/lib/python3.7/dist-packages/pyvlx/api/api_event.py", line 21, in do_api_call
await self.send_frame()
File "/usr/local/lib/python3.7/dist-packages/pyvlx/api/api_event.py", line 33, in send_frame
await self.pyvlx.send_frame(self.request_frame())
File "/usr/local/lib/python3.7/dist-packages/pyvlx/pyvlx.py", line 66, in send_frame
await self.connect()
File "/usr/local/lib/python3.7/dist-packages/pyvlx/pyvlx.py", line 46, in connect
await self.klf200.get_protocol_version()
File "/usr/local/lib/python3.7/dist-packages/pyvlx/klf200gateway.py", line 70, in get_protocol_version
raise PyVLXException("Unable to retrieve protocol version")
pyvlx.exception.PyVLXException: <PyVLXException description="Unable to retrieve protocol version" />
[2021-11-25 09:44:43][INFO] : Arrêt du service klf200
[2021-11-25 09:44:43][INFO] : Lancement démon klf200 : /usr/bin/python3 /var/www/html/plugins/klf200/resources/klf200d.py 192.168.1.69 wZsgA6RTjY
[2021-11-25 09:44:43][ERROR] : KLF200 has been restarted after found not responding
[2021-11-25 09:45:03][DEBUG] : Send http://localhost:9123/devices
[2021-11-25 09:45:04][DEBUG] : Result
[2021-11-25 09:45:44][INFO] : Arrêt du service klf200
[2021-11-25 09:45:44][INFO] : Lancement démon klf200 : /usr/bin/python3 /var/www/html/plugins/klf200/resources/klf200d.py 192.168.1.69 wZsgA6RTjY
[2021-11-25 09:45:44][ERROR] : KLF200 has been restarted after found not responding
Traceback (most recent call last):
File "/var/www/html/plugins/klf200/resources/klf200d.py", line 269, in <module>
LOOP.run_until_complete(init_pyvlx_connection(LOOP))
File "/usr/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete
return future.result()
File "/var/www/html/plugins/klf200/resources/klf200d.py", line 22, in init_pyvlx_connection
await pyvlx.load_nodes()
File "/usr/local/lib/python3.7/dist-packages/pyvlx/pyvlx.py", line 76, in load_nodes
await self.nodes.load(node_id)
File "/usr/local/lib/python3.7/dist-packages/pyvlx/nodes.py", line 69, in load
await self._load_all_nodes()
File "/usr/local/lib/python3.7/dist-packages/pyvlx/nodes.py", line 85, in _load_all_nodes
await get_all_nodes_information.do_api_call()
File "/usr/local/lib/python3.7/dist-packages/pyvlx/api/api_event.py", line 21, in do_api_call
await self.send_frame()
File "/usr/local/lib/python3.7/dist-packages/pyvlx/api/api_event.py", line 33, in send_frame
await self.pyvlx.send_frame(self.request_frame())
File "/usr/local/lib/python3.7/dist-packages/pyvlx/pyvlx.py", line 66, in send_frame
await self.connect()
File "/usr/local/lib/python3.7/dist-packages/pyvlx/pyvlx.py", line 43, in connect
await self.connection.connect()
File "/usr/local/lib/python3.7/dist-packages/pyvlx/connection.py", line 91, in connect
ssl=self.create_ssl_context(),
File "/usr/lib/python3.7/asyncio/base_events.py", line 959, in create_connection
raise exceptions[0]
File "/usr/lib/python3.7/asyncio/base_events.py", line 946, in create_connection
await self.sock_connect(sock, address)
File "/usr/lib/python3.7/asyncio/selector_events.py", line 464, in sock_connect
return await fut
File "/usr/lib/python3.7/asyncio/selector_events.py", line 494, in _sock_connect_cb
raise OSError(err, f'Connect call failed {address}')
ConnectionRefusedError: [Errno 111] Connect call failed ('192.168.1.69', 51200)

Oui, mais le contournement proposé ( redémarrer le KLF ) marchait bien jusqu’alors !!!
Il ne redémarrait que très rarement, style 1x tous les deux / trois mois !
Maintenant c’est systématiquement après chaque commande qui passe sur les volets (donc redémarrage plusieurs fois par jour) = conséquence directe et non des moindres :
1- Demande d’ouverture de volet
2- Ouverture du volet
3- Redémarrage immédiat de la BOX KLF
CONSÉQUENCE = Jeedom ne sait plus que le volet est maintenant ouvert, il le croit fermé car l’APP KLF a fait redémarrer la BOX KLF avant que le volet soit en position OUVERTE !

Je viens de réactiver le service ON/OFF de l’APP KLF, et plus rien ne marche.
Avec le service ON/OFF, cela fonctionne mais il y a des scripts dans les logs qui tournent sans arrêt !!!

Le plugin n’a pas été modifié depuis le 3 aout 2021.

L’état des volets est récupéré chaque minute par le cron du plugin. Donc Jeedom connait leur état.

Que dois-je en conclure ?

Bonjour,

Le plugin n’a pas été mis à jour depuis le 3 août 2021 mais on peut voir dans le premier message que tu as réinstallé les dépendances le 2 novembre. La réinstallation des dépendances fait que la librairie pyvlx utilisée par le plugin a été mise à jour à cette occasion.

D’ailleurs dans les logs des dépendances, on peut voir :

Installation du module pyvlx pour python

Et on peut voir qu’il y a des mises à jour régulièrement de la librairie pyvlx. Peut être que l’une d’entre elle est la cause de ton souci.

Il faudrait pouvoir réinstaller une ancienne version de la librairie pyvlx pour s’en assurer mais je ne sais pas si c’est possible. Ou alors restaurer un backup de ton Jeedom avant la réinstallation des dépendances. Attention, il faudrait un backup de l’OS (qui contient les dépendances) et pas seulement un backup de la config de Jeedom.

EDIT : Peut être possible d’installer une version précédente de pyvlx avec : pip install pyvlx==0.2.19
En ce qui me concerne, ca tourne bien avec cette version.

1 « J'aime »

Bonjour,

Faut pas oublier la ligne juste en dessous:

Requirement already up-to-date: pyvlx in /usr/local/lib/python3.7/dist-packages (0.2.19)

Le plugin n’est pas le seul en cause.
Il peut y avoir des causes physiques. Alim, cable alim et cable réseau du KLF …

A partir du moment ou le dev de pyvlx reconnait qu’il y a des pbs de freeze du klf, on ne va pas pouvoir faire grand chose.

Avez-vous la possibilité de tester votre KLF sur une autre installation ami collègue … ?

Oui, mais cela dépasse de loin mes compétences.
C’est pour cela que j’ai fait appel au développeur, voici sa réponse :

Bonjour,
Vous avez la réponse dans les logs postés, votre KLF200 ne répond pas et donc Jeedom essaye de le redémarrer sans amélioration.

Depuis silence radio !

je ne connais personne qui ai une JEEDOM

Oui, en effet. En revanche, je ne trouve pas l’info sur le git de pyvlx concernant le versionning. Pas facile de savoir de quand date la version 2.0.19 et s’il y a eu une nouvelle version depuis ou si c’est la version 2.0.19 qui est finalement toujours mise à jour.

EDIT :

image

Il semblerait donc que ce soit toujours la version 2.0.19 qui soit mise à jour. Pas de nouveau numéro de version.

En tout cas une BETA existe pour l’APP KLF200 mais je ne l’installe pas pour ne pas perdre l’assistance technique de JEEDOM

Il y avait 2 autres phrases avant celle qui vous a fait réagir.

Pour les 154 mises à jour du système qu’il reste à faire, comme vous avez une Smart, il faut s’adresser à Jeedom.