Samsung Smart TV : python 3.9 (debian 11) - attente retours beta sur Modèle J et autres

Bonjour @Bercolly,

Je viens d’installer une Debian 11.7 qui installe par défault python 3.9. Je me rend compte que le démon de votre plugin ne se lance plus car la commande python n’est pas reconnu. Sachant que le python 2 n’est plus supporté, avez-vous prévu prochainement une nouvelle version compatible python 3 ?

Si vous avez besoin de testeur, je peux installer une beta si besoin.

Merci pour votre retour.

Edit : j’ai l’impression qu’il n’est pas nécessaire d’avoir le démon actif. La télécommande est fonctionnelle sans…

J’ai tenté une réinstallation des dépendances pour vous transmettre les logs (sudo: python: command not found à la fin) :

Requirement already satisfied: websocket-client in /usr/local/lib/python3.9/dist-packages (1.5.1)
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Collecting rijndael
  Downloading rijndael-0.1.1.tar.gz (16 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Building wheels for collected packages: rijndael
  Building wheel for rijndael (setup.py): started
  Building wheel for rijndael (setup.py): finished with status 'done'
  Created wheel for rijndael: filename=rijndael-0.1.1-py3-none-any.whl size=17580 sha256=8d49ae76dd9629bc674ad92ecac21965895f511ae695b524a758bbb3cc637127
  Stored in directory: /root/.cache/pip/wheels/68/c4/7c/a6e60fa92d2f69db76d847f03ed29b8ccd9a31ce53a8a98b5e
Successfully built rijndael
Installing collected packages: rijndael
Successfully installed rijndael-0.1.1
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Collecting ipaddress
  Downloading ipaddress-1.0.23-py2.py3-none-any.whl (18 kB)
Installing collected packages: ipaddress
Successfully installed ipaddress-1.0.23
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Requirement already satisfied: pycrypto in /usr/local/lib/python3.9/dist-packages (2.6.1)
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Collecting aenum
  Downloading aenum-3.1.12-py3-none-any.whl (131 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 131.8/131.8 kB 12.1 MB/s eta 0:00:00
Installing collected packages: aenum
Successfully installed aenum-3.1.12
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Requirement already satisfied: requests in /usr/local/lib/python3.9/dist-packages (2.30.0)
Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.9/dist-packages (from requests) (2.0.12)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.9/dist-packages (from requests) (3.4)
Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.9/dist-packages (from requests) (2.0.2)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.9/dist-packages (from requests) (2023.5.7)
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
sudo: python: command not found
Everything is successfully installed!

Ce qui est emberant c’est d’avoir le plugin en erreur même en désactivant la gestion automatique des dépendances et du démon.

Merci pour votre aide

Bonjour,

Quel modèle de Tv utilisez-vous ?
Le daemon n’est nécessaire que pour les Smart TV modèle J.

Dans votre cas, si vous n’avez pas ce modèle J, il suffit de positionner le daemon à inactif.

A+
Bernard

Bonjour Bernard,
Je ne peux pas mettre le démon à inactif car les dépendances ne sont pas installées (cf captures ci-dessous). Et comme la commande python n’est pas supportée, ça ne s’installe pas.
Est-il possible de faire croire que c’est installé pour pouvoir le mettre en inactif ? Je peux modifier un fichier si besoin.

Merci

PS : ma Tv est une Samsung 55NU7093

Bonjour,

On a deux options :
1°) Désinstaller le plugin, puis le ré-installer, le configurer pour une SmartTv correpondant à votre modèle et surtout ne pas lancer les dépendances.

2°) Plus simple, renommer dans le répertoire ressources install_apt.sh en install_apt.sav. Relancer les dépendances.

Me tenir au courant.
Bernard

Bonjour,

J’ai voulu tester la solution 2 étant plus simple mais cela ne fonctionne pas.

[2023-05-18 17:21:30][INFO] : démarrage installation dépendances 
[2023-05-18 17:21:30][INFO] : system type -> apt 
[2023-05-18 17:21:30][ERROR] : Aucun script ne correspond à votre type de Linux : /var/www/html/plugins/TvDomSamsung/core/class/../../resources/install_#stype#.sh /tmp/jeedom/TvDomSamsung/dependance avec #stype# : apt

J’ai tenté une autre approche de modifier le contenu du fichier.

PROGRESS_FILE=/tmp/dependancy_tvdomsamsung_in_progress
if [ ! -z $1 ]; then
	PROGRESS_FILE=$1
fi

touch ${PROGRESS_FILE}

echo 100 > ${PROGRESS_FILE}

echo "Everything is successfully installed!"

rm ${PROGRESS_FILE}

Cela ne fonctionne pas mieux c’est toujours à NOK.

Je vais tester votre première solution, mais il faut que j’identifie ou les commandes de la tv sont appelées pour reconfigurer proprement.

Je devrais terminé d’ici 5 min.

merci

Après la désinstallation et réinstallation du plugin, j’ai toujours le plugin NOK (il y avait 3 erreurs mais en désactivant la gestion auto dépendances et démon il en reste 1 seule) :

Pour comprendre ce qu’il se passe, je viens de commencer à lire la doc pour dév. un plugin.
C’est la fonction dependancy_info() de votre plugin qui indique à Jeedom si c’est OK ou NOK.
Dans votre cas, vous récupérez le nombre d’emplacement de la commande python pour vérifier si c’est ok. Comme python n’est plus présent mais remplacé par python3 (v 3.x), il faut modifier cette ligne

image

et remplacer python par python3

image

Bien entendu dans mon cas, je n’ai pas besoin des dépendances donc ça met OK mais je pense pas que ça fonctionnera pour ceux qui en ont besoin. Il faudrait revoir l’install_apt.sh et les appels python du code.
Remarque dans l’install_apt.sh, faudrait modifier même si c’est pas important le nom du fichier du progress file en mettant le nom du plugin au lieu de camera.

image

Après l’enregistrement du fichier, le plugin est à OK dans la page de santé.

Bonne soirée

2 « J'aime »

Bonjour,

Je suppose que le problème est résolu ?

Je ne comprends pas pourquoi vous avez rencontré ce problème.
Les utilisateurs des modèles J( donc avec deamon) sont peu nombreux.

La plupart des autres utilisent des Tv plus récentes et ne m’ont donc pas signalé ce problème.

Passer de python 2 à python 3 n’est pas une mince affaire.
D’autant plus que Jeedom utilise une version 3.9 plus maintenue et que python en est aujourd’hui à une version 3.11.

Cette gestion des environnements de développement en relation avec les développeurs n’a jamais été simple ni prise en considération par Jeedom.

Cordialement,
Bernard

Non pas vraiment:

  • d’abord c’est pas vraiment jeedom qui décide mais la distrib (debian donc)
  • de base sur buster c’est 3.7, bullseye c’est 3.9 (stretch c’était 3.4)
  • il est toujours possible d’installer une autre version de python que ton plugin utilisera (faut faire ca bien pour pas exploser l’installation de l’utilisateur);
    sur stretch j’installais un python3.6 juste pour un plugin pcq je voulais utiliser asyncio, ca fonctionnait très bien et je ne dérangeais pas tous les autres plugins qui tournaient en 3.4

Donc désolé mais jeedom n’a rien à faire la dedans, ni l’équipe, ni le soft.
Aucun alignement n’est vraiment nécessaire, la seule règle absolue à respecter c’est de garder les versions par défaut active et donc de ne pas dézinguer les autres plugins qui tourneraient dans la versions « standard » correspondant à la distrib installée = ne pas écraser la version pré-installée par un python3.11 pcq c’est ca que tu as besoin pour ton plugin.


ceci dit, si le plugin tourne actuellement en python2, je doute fort qu’il y ai besoin d’autres choses que les versions standard…

et pour en avoir fait plusieurs (et pas vmt sur mes plugins qui l’était déjà), la migration python2 vers python3 n’est pas si compliqué, 80% du temps c’est un changement très léger de syntaxe, rare sont les cas où une lib n’est plus compatible.

Dans tous les cas ça s’avère indispensable très prochainement ou ce code ne tournera plus.

2 « J'aime »

Pour moi, oui le problème est résolu avec ma modification dans le code (mais je préférerai ne pas à avoir à modifier manuellement). Après cette modif n’est pas valide pour ceux qui ont des modèles « J » utilisant le démon.
J’ai rencontré ce problème car j’ai réinstallé une debian 11 qui a par défaut la version 3.9 de python la version 2 étant obsolète et plus supporté.

Dans un peu plus d’un an, la debian 10 sera n’aura plus de support étendu et il faudra migrer sur une version plus récente. Tous les utilisateurs ayant votre plugin vont se retrouver avec le même problème.

Voici les dates de support Debian.

Voici les dates de support Python.

J’imagine que le passage de la version 2 à 3 nécessite des changements syntaxique et qu’ensuite pour les versions 3.X il ne devrait pas y en avoir.

Je peux tester si besoin une version beta n’utilisant pas les dépendances pour vérifier que c’est bon si besoin.

Bonjour,

Merci pour ta proposition.

Mais, cela est plus complexe qu’une simple adaptation, je n’ai plus d’environnement jeedom, et aucune Tv de type J pour faire des tests. Une simple compilation ne peut suffire.

De plus pas mal de packages inclus ne sont pas disponibles avec les mêmes API, donc migration pas du tout évidente.

Je pense livrer une version dans les semaines suivantes qui ne traitera plus les modèles J.

Dans ce cas, je pourrais faire appel tes services pour tester cette version.

Cordialement,
Bernard

Bonjour,

Je viens de voir ce matin qu’il y avait une nouvelle mise à jour « stable » du plugin. Après installation, j’étais de nouveau en NOK pour les dépendances.
J’ai remodifié la ligne de la fonction dependancy_info et c’est repassé à OK.
image

Bonne journée

1 « J'aime »

Bonjour,

C’était une erreur de manipulation de ma part.

En fait j’ai mis sur le market une nouvelle version en beta.
Si tu peux l’essayer.

Cordialement,
Bernard

Merci, tu es trop rapide :slight_smile:

Je viens de tester l’allumage wake on lan ça fonctionne bien ainsi que la télécommande.
Pour moi tout est bon, merci pour ta réactivité.

Juste une petite remarque après l’installation, j’ai eu ce message :
image

Pourtant ça fonctionne bien :
image

Bonne soirée

Je continue mes tests (j’ai installé une vm avec Debian 11.7 et jeedom 4.4 - beta).
Le point 4 concerne aussi jeedom 4.3 (désolé, je complète mon message au fur et à mesure des tests)

:one: Pour le moment l’installation c’est bien passée, c’est juste au niveau du widget ou ça coince un peu.

Je met les photos de comparatif (gauche : Jeedom 4.3.x - droite : Jeedom 4.4 - beta)

Vision Dashboard sur mobile :
image - image

Vision Dashboard sur pc:
image - image

Vision Télécommande Pavé :
image - image

Vision Télécommande TNT :
image - image

Vision Télécommande Cmds :
image - image

Affichage Curseurs / Macro :
image - image

Pour les captures, je les ai faites dans Edge en activant l’émulation d’un appareil type iPhone ou Samsung pour avoir une plus petite résolution.
Réellement dans la version 4.3 (sur iPhone) je vois le bloc complet de la télécommande avec toutes les touches. Dans la version 4.4 c’est l’inverse, pour le pavé, je vois pas les boutons de la colonne 2 (touches 2, 5, 8 et 0).
Pour la vision desktop sur pc (sans émultaion) c’est bon dans les 2 jeedom 4.3 et 4.4

C’est certainement un peu en avance de phase sachant que la version jeedom 4.3 est fonctionnelle, mais je me suis dis que tu serais interessé par cette information.

Edit :
:two: Je viens de tester les boutons accessibles et j’ai des messages a chaque event (l’action est pourtant bien réalisée) :


:three: Je ne sais pas si c’est lié mais le nombre d’occurences d’installation augmente régulièrement

Dans le fichier de log event (il y a 12 entrées) :

[2023-05-24 10:20:42][INFO] : Exécution de la commande [Salon][Samsung 55NU7093][SendKey] avec les paramètres {"slider":"KEY_POWER"}
[2023-05-24 10:21:02][INFO] : Exécution de la commande [Salon][Samsung 55NU7093][SendKey] avec les paramètres {"slider":"KEY_MENU"}
[2023-05-24 10:21:10][INFO] : Exécution de la commande [Salon][Samsung 55NU7093][SendKey] avec les paramètres {"slider":"KEY_MENU"}
[2023-05-24 10:21:26][INFO] : Exécution de la commande [Salon][Samsung 55NU7093][SendKey] avec les paramètres {"slider":"KEY_MENU"}
[2023-05-24 10:21:44][INFO] : Exécution de la commande [Salon][Samsung 55NU7093][SendKey] avec les paramètres {"slider":"KEY_MENU"}
[2023-05-24 10:21:46][INFO] : Exécution de la commande [Salon][Samsung 55NU7093][SendKey] avec les paramètres {"slider":"KEY_MENU"}
[2023-05-24 10:21:49][INFO] : Exécution de la commande [Salon][Samsung 55NU7093][SendKey] avec les paramètres {"slider":"KEY_POWER"}
[2023-05-24 10:28:14][INFO] : Exécution de la commande [Salon][Samsung 55NU7093][SendKey] avec les paramètres {"slider":"KEY_1 | KEY_ENTER"}
[2023-05-24 10:28:41][INFO] : Exécution de la commande [Salon][Samsung 55NU7093][SendKey] avec les paramètres {"slider":"KEY_POWER"}
[2023-05-24 10:29:03][INFO] : Exécution de la commande [Salon][Samsung 55NU7093][SendKey] avec les paramètres {"slider":"KEY_MENU"}
[2023-05-24 10:29:33][INFO] : Exécution de la commande [Salon][Samsung 55NU7093][SendKey] avec les paramètres {"slider":"KEY_MENU"}
[2023-05-24 10:30:13][INFO] : Exécution de la commande [Salon][Samsung 55NU7093][SendKey] avec les paramètres {"slider":"KEY_MENU"}

Dans la log cron_execution j’ai plusieurs fois cette ligne qui apparait (pour info j’ai juste jeedom avec ce plugin, j’ai pas encore remis d’autres plugins) :

warning: commands will be executed using /bin/sh
job 10 at Wed May 24 10:15:00 2023
warning: commands will be executed using /bin/sh
job 11 at Wed May 24 10:20:00 2023
warning: commands will be executed using /bin/sh
job 12 at Wed May 24 10:25:00 2023

:four: Autre anomalie rencontré dans les 2 versions de jeedom :warning: (4.3 stable et 4.4 beta), si la tv est arrêtée et que l’on clique sur un bouton, il y a 3 erreurs qui remontent :


et c’est aussi tracé dans les logs TvDomSamsung :

[2023-05-24 10:28:19][ERROR] : Erreur Tv sendkey() [status : 1 reception-Timed out after 5 seconds] code_err socket : 0 -  -  - 0] 
[2023-05-24 10:28:19][ERROR] : Erreur exécution de la commande [Salon][Samsung 55NU7093][SendKey] : Erreur Tv sendKey() [status : 1 reception-Timed out after 5 seconds] code_err socket : 0 -  -  - 0]
[2023-05-24 10:28:19][ERROR] : module ajax 521 Erreur Tv sendKey() [status : 1 reception-Timed out after 5 seconds] code_err socket : 0 -  -  - 0] 

dans la log http.error, j’ai aussi l’info qui remonte :

[Wed May 24 10:28:19.315497 2023] [php7:error] [pid 36398] [client 192.168.1.170:58457] PHP Fatal error:  Uncaught Error: Call to undefined function displayExeption() in /var/www/html/plugins/TvDomSamsung/core/ajax/TvDomSamsung.ajax.php:124
Stack trace:
#0 {main}
  thrown in /var/www/html/plugins/TvDomSamsung/core/ajax/TvDomSamsung.ajax.php on line 124, referer: http://192.168.1.190/index.php?v=d&p=dashboard

A mon avis sur le point 4, il ne faut pas généré toutes ces logs, juste un retour d’info dans la log du plugin (ou le généré que si la tv est allumé)

Bonjour,

Bon ça ne chôme pas ! C’est bien.

Réponses point par point.

1° Point 1 : IHM

Pour l’instant je ne touche à rien n’ayant pas la version 4 qui est une beta. On verra lors de la mise en place.

2°) Point n° 2 : activation des boutons

Je ne constate rien de cela.
Dans quelle version cela se produit-il?

3°) Point n°3 Augmentation nombre d’installations
Je ne vois pas à quoi cela correspond.
As-tu configuré le démon à actif et également as-tu lancé les dépendances.

Pour les modèles Legacy|Tizen il n’y a pas de dépendances ni démon.

Le message que tu indiques est un message Jeedom. Je vais voir pourquoi et quand ce message est lancé. En fait, c’est résolu par les précisions sur le cron démon.

Point 3 : log event

Cela dépend du niveau de log que tu as défini.

Point 3 : messages CRON

Le plugin n’a pas de cron. De plus rien n’est indiqué dans ce message sur le cron qui émet ce signalement.

Bon, j’ai trouvé Jeedom essaie de relancer toutes les 5’ les plugins qui ont un démon.
Pour moi il faut lors de l’installation du plugin forcer la valeur pour que c ela ne se produise que si l’utilisateur indique une gestion automatique du démon.

4°) Point 4 Logs d’erreur.

Je comprends le problème. Simplement dans une architecture multi-couches, il faut pouvoir retracer l’origine de l’erreur et la remonter dans toutes les couches , sinon il est difficle de savoir ce qu’il se passe.

J’ai ce message dans la version 4.4 (beta), dans la version 4.3.17 (stable) je n’ai pas ce message.

Non je n’ai pas configurer le démon car c’est une tv « Tizen ». Mais depuis ce matin, ça n’arrêtes pas de tourner en boucle.

Je viens de voir la log se rechargé sous mes yeux TvDomSamsung_update (j’ai l’impression qu’il y a un pb avec une commande python :

Requirement already satisfied: websocket-client in /usr/local/lib/python3.9/dist-packages (1.5.2)
Requirement already satisfied: rijndael in /usr/local/lib/python3.9/dist-packages (0.1.1)
Requirement already satisfied: ipaddress in /usr/local/lib/python3.9/dist-packages (1.0.23)
Requirement already satisfied: pycryptodome in /usr/local/lib/python3.9/dist-packages (3.18.0)
Requirement already satisfied: aenum in /usr/local/lib/python3.9/dist-packages (3.1.12)
Requirement already satisfied: requests in /usr/lib/python3/dist-packages (2.25.1)
sudo: python : commande introuvable
Everything is successfully installed!

Voici la configuration, je n’ai rien touché :

Tu as raison, je n’avais pas vérifié ce point, comme l’installation était toute fraiche, j’imaginais que par défaut dans jeedom toutes les logs étaient à « défault » mais ce n’est pas le cas :thinking:

Il n’y a pas la possibilité désactiver la gestion automatique sur la page de configuration.

j’ai trouvé en cochant Daemon actif (modèles J) cela fait apparaitre la gestion automatique, en revanche le statut est à NOK dans la page de santé

image

Il faut appliqué ma solution initiale et mettre python3 dans la fonction dependancy_info
image

Merci pour tes réponses, dis moi pour la prochaine version que je reteste.

Bonsoir,

Point n°2 : pour moi réglé, en attente d’une version 4.4 stable.
Point n°3 : log event, réglé.
Point 3 : messages CRON ; Je vais relivrer une version qui forcera le code de gestion des dépendances.
On se demande pourquoi Jeedom essaye de relancer les dépendances toutes les 5 minutes !

Pour les problèmes que tu signales en 4.4, et bien c’est assez simple c’est une refonte complète technique des IHM. Donc cela va demander une grosse quantité de travail pour migrer.
C’est plutôt la cata !

Pour l’installation des dépendances, cela marche a priori comme je l’ai livrée.
Il y a des alias python pour python3.
L’alias python pointe par défaut sur la dernière version installée.

Ouvre une session ssh et tape python -V , cela retourne la version installée.
Dis-moi ce qu’il en est.

A+
Bernard

Pour résoudre le problème, chez toi ;
→ mettre le demon en mode actif,
→ dans les dépendances,

image

Sur quelle plate-forme as-tu installé le plugin ?
Chez moi c’est du raspberry avec la version officielle jeedom.

Donc, j’ai à la fois python qui pointe vers python3, qui pointe vers vers python3.9.
Dans tes premeirs tests, il n’y avait pas cette erreur sur l’exécutable python.
A+
Bernard