Bonjour,
Je tente de faire un script autant inutile qu'indispensable :
Faire du TTS de Citation (Kaamelott) quand je rentre dans ma voiture.
Le Python Wikiquote fait le travail de récupération de la quote, jusqu'à la tout va bien, je code mon script python3.
Sauf que quand je le lance dans le plugin Jeedom Script, il n'accepte que du Python3.
J'ai contourné le problème en lançant un bash qui lance mon python3.
Sauf que, d'une, c'est chiant à gérer, d'autre part, j'ai un problème d'encodage dès qu'il y a des accents dans la phrase :
Erreur dans l'exécution du terminal, la valeur retournée est : 1. Détails : Traceback (most recent call last): File "/opt/scripts/Kaamelott-Quote.py", line 6, in print(random.choice(wikiquote.quotes(random.choice(wikiquote.search('Kaamelott',lang='fr')),lang='fr'))) UnicodeEncodeError: 'ascii' codec can't encode character '\xe7' in position 22: ordinal not in range(128)
J'ai essayé les lignes suivantes pour ces deux problèmes dans mon script, pas mieux :
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
Même avec un chmod +x sur le script
Je suis débutant en Jeedom et en script et j'ai beaucoup de mal avec le concept d'encodage..
Edit :
Après quelques recherche, la secodne ligne d'encoding est inutile car Python3 est par défaut en UTF-8
Mon seul problème est donc de lancer le script en python3 directement via le plugin
Edit 2 :
Bidouille : J'ai renommé mon fichier en Kaamelott.yolo et en laissant le env en début, je passe en Python3 !
MAIS, j'ai toujours un problème d'encodage :'(
Erreur dans l'exécution du terminal, la valeur retournée est : 1. Détails : Traceback (most recent call last): File "/opt/scripts/Kaamelott-Quote.yolo", line 5, in print(random.choice(wikiquote.quotes(random.choice(wikiquote.search('Kaamelott',lang='fr')),lang='fr'))) UnicodeEncodeError: 'ascii' codec can't encode character '\xea' in position 5: ordinal not in range(128)
Edit 3 :
J'ai changé de tactique, je lance un bloc php dans mon scénario : Nouveau bug : Le message arrive bien sur mon téléphone, uniquement, si le scénario est "Programmé" si je le lance manuellement ou sur un déclencheur, rien ...
HEELP :'(
Question générale, quand est-ce que Jeedom passe au full Python3 ?
Que puis-je faire ?
Cordialement.
***** Résolu *****
J'ai fini par avoir sa peau !
Voici mon script :
#!/usr/bin/env python3
# coding: utf8
import wikiquote
import random
#print("Test")
Quote = random.choice(wikiquote.quotes(random.choice(wikiquote.search('Kaamelott',lang='fr')),lang='fr'))
print(Quote.encode('ascii','xmlcharrefreplace'))
Et voici le "Bloc PHP"
$output=shell_exec('python3 Kaamelott-Quote.py 2>&1');
$output = ltrim($output, "b");
$scenario->setData('Quote', $output);
[Résolu] Python3 et Encoding
- PhilippeLc
- Timide
- Messages : 20
- Inscription : 12 sept. 2018, 16:02
- Contact :
Re: [Résolu] Python3 et Encoding
Bonjour,
je tente d’utiliser votre solution avec votre appel CODE BLOCK php mais cela ne fonctionne pas : les accents restent illisible pour GoogleCast :
Pourriez vous m'aider à comprendre ce problème d'encoding car j'ai le même problème pas ailleurs pour d'autres python3 ?
------------------------------------
[2019-09-22 21:18:39][SCENARIO] Start : Scenario lance manuellement.
[2019-09-22 21:18:39][SCENARIO] Exécution du sous-élément de type [action] : code
[2019-09-22 21:18:39][SCENARIO] Exécution d'un bloc code
[2019-09-22 21:18:41][SCENARIO] Exécution du sous-élément de type [action] : action
[2019-09-22 21:18:42][SCENARIO] Exécution de la commande [GoogleCast][Salon Google Home][Parle !] avec comme option(s) : {"background":"0","title":"","message":"cmd=tts|value=Quand il a ouvert le ventre du troll, j'ai reçu un jet d'acide qui m'a pratiquement acidifié!
"}
[2019-09-22 21:18:42][SCENARIO] Fin correcte du scénario
je tente d’utiliser votre solution avec votre appel CODE BLOCK php mais cela ne fonctionne pas : les accents restent illisible pour GoogleCast :
Pourriez vous m'aider à comprendre ce problème d'encoding car j'ai le même problème pas ailleurs pour d'autres python3 ?
------------------------------------
[2019-09-22 21:18:39][SCENARIO] Start : Scenario lance manuellement.
[2019-09-22 21:18:39][SCENARIO] Exécution du sous-élément de type [action] : code
[2019-09-22 21:18:39][SCENARIO] Exécution d'un bloc code
[2019-09-22 21:18:41][SCENARIO] Exécution du sous-élément de type [action] : action
[2019-09-22 21:18:42][SCENARIO] Exécution de la commande [GoogleCast][Salon Google Home][Parle !] avec comme option(s) : {"background":"0","title":"","message":"cmd=tts|value=Quand il a ouvert le ventre du troll, j'ai reçu un jet d'acide qui m'a pratiquement acidifié!
"}
[2019-09-22 21:18:42][SCENARIO] Fin correcte du scénario
JEEDOM 3.x/RPI3 - OpenCV/RPI3 - GOOGLE HOME&CAST AUDIO & CAST VIDEO - MI BOX S - BROADLINK RM PRO - RFPLAYER- ZIGATE - BLUETOOTH local&antenne - ZWAVE SIGMA - pont IKEA et PHILIPS HUE
https://mypidrone.com
https://mypidrone.com
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités