Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

Erreur à l'écriture d'un fichier XML lors de l'exécution d'un script Python

Réservé à l'utilisation et la programmation de scripts dans JEEDOM
Répondre
nicolt
Timide
Messages : 17
Inscription : 13 avr. 2019, 08:45

Erreur à l'écriture d'un fichier XML lors de l'exécution d'un script Python

Message par nicolt » 04 août 2019, 14:44

Bonjour,
J'ai écrit un script en python pour lire les données d'une sonde connectée en Modbus. Dans les dernières lignes du script, celui-ci doit créer un fichier XML pour stocker les données (ou le modifier si il existe déjà).

Lorsque j'exécute le fichier directement depuis le RPi grace à la commande :

Code : Tout sélectionner

python2.7 /home/pi/Desktop/code.py
le code fonctionne à merveille et le fichier se crée et s'actualise correctement.

Mais Lorsque j'effectue la commande depuis le Plugin Script j'ai ce message d'erreur qui s'affiche :
Erreur dans l'exécution du terminal, la valeur retournée est : 1. Détails : Traceback (most recent call last): File "/home/pi/Desktop/code.py", line 299, in export(b_1, nom1) #Export des données de b_1 sous le nom1 (Bassin_7B) File "/home/pi/Desktop/code.py", line 167, in export with open("/home/pi/Desktop/Data.xml", "w") as f: IOError: [Errno 13] Permission denied: '/home/pi/Desktop/Data.xml'
Voici la ligne incriminée :

Code : Tout sélectionner

	with open("/home/nicolas/Bureau/test.xml", "w") as f:
		f.write(tree)
Je précise que cette ligne fait parti d'une fonction export() que j'ai créée et qui se trouve vers le milieu du fichier (ligne 167) et qu'elle pose problème lors de son appel en ligne 299.

Et voici la configuration de Script :
Type Script : Script
Type : Action/Défaut
Requète : /home/pi/Desktop/code.py (Emplacement temporaire du fichier, juste pour les tests)

Quelqu'un aurait-il une solution à ce problème ?

En vous remerciant
Nico

Naboleo
Actif
Messages : 746
Inscription : 20 janv. 2017, 09:57

Re: Erreur à l'écriture d'un fichier XML lors de l'exécution d'un script Python

Message par Naboleo » 04 août 2019, 15:28

Salut,

A priori, c'est un problèmle de droits :
Quand tu testes à la main, tu utilises le user "pi" qui à le droit d'écrire chez lui dans /home/pi
Depuis jeedom le user d’exécution est "www-data" ... Et à tous les coups, il ne peux pas écrire chez son voisin.

Donc ajoute des droits ou change d'emplacement : /tmp/ par exemple (/home/www-data/ n'existe pas)
Pi4/4Go +SSD 32Go (Wifi et bluetooth actifs) + Clé USB Z-Wave Everspring + rfxcom (RTS) + Google Home
7 Danfoss LC-13
2 velux module DIO
7 volets RTS
3 Sonoff
IFTTT
Capteur porte, de présence, et prise intelligente...

nicolt
Timide
Messages : 17
Inscription : 13 avr. 2019, 08:45

Re: Erreur à l'écriture d'un fichier XML lors de l'exécution d'un script Python

Message par nicolt » 04 août 2019, 16:07

Super ! J'ai juste changé les droits du fichier créé manuellement et ça a marché direct ! je te remercie Naboleo !

Par contre maintenant j'ai un autre problème, le plugin ne parviens pas à lire une donnée dans le fichier. Je reçois cette erreur :
String could not be parsed as XML
Pourtant j'ai tout paramétré comme expliqué dans la doc...

Voici la configuration :
Type Script : XML
Type : Info/Numérique
Requète : Bassin_7B > Temperature
Options : http://192.168.1.33/home/pi/Desktop/Data.xml

Voici le fichier XML dans son ensemble :

Code : Tout sélectionner

<?xml version="1.0" ?>
<bassins>
   <Bassin_7B>
      <Sonde>10</Sonde>
      <Last>04/08/2019 12:12:39</Last>
      <sterror>0</sterror>
      <Temperature>22.1</Temperature>
      <Saturation>100.8</Saturation>
      <Concentration>8.81</Concentration>
   </Bassin_7B>
</bassins>
Une piste ?

Naboleo
Actif
Messages : 746
Inscription : 20 janv. 2017, 09:57

Re: Erreur à l'écriture d'un fichier XML lors de l'exécution d'un script Python

Message par Naboleo » 04 août 2019, 16:16

nicolt a écrit :
04 août 2019, 16:07
Type : Info/Numérique
Salut,

J'ai pas trop d'idée, mais tu peux essayer de choisir le type "autre", ton fichier contient aussi une date, qui peut-être assimilée à du texte
Pi4/4Go +SSD 32Go (Wifi et bluetooth actifs) + Clé USB Z-Wave Everspring + rfxcom (RTS) + Google Home
7 Danfoss LC-13
2 velux module DIO
7 volets RTS
3 Sonoff
IFTTT
Capteur porte, de présence, et prise intelligente...

Avatar de l’utilisateur
Salvialf
Helper
Messages : 1334
Inscription : 24 févr. 2018, 09:37
Contact :

Re: Erreur à l'écriture d'un fichier XML lors de l'exécution d'un script Python

Message par Salvialf » 04 août 2019, 21:15

nicolt a écrit :
04 août 2019, 16:07
Super ! J'ai juste changé les droits du fichier créé manuellement et ça a marché direct ! je te remercie Naboleo !

Par contre maintenant j'ai un autre problème, le plugin ne parviens pas à lire une donnée dans le fichier. Je reçois cette erreur :
String could not be parsed as XML
Une piste ?
Salut,

J'ai déjà été confronté au même problème que j'ai résolu en modifiant le fichier .htaccess: viewtopic.php?f=31&t=37465&p=619044&hil ... ML#p679706

A essayer...
VM Jeedom 3.2.16 sous Proxmox 5.4 sur NUC5i5RYH (Debian 9.9)
Helper Officiel Jeedom
Widgets développés
Téléchargement d'icônes domotique (Topic Forum)

nicolt
Timide
Messages : 17
Inscription : 13 avr. 2019, 08:45

Re: Erreur à l'écriture d'un fichier XML lors de l'exécution d'un script Python

Message par nicolt » 15 août 2019, 16:06

@Salvialf oui j'avais vu ton post mais j'ai également vu le suivant dans lequel tu dis avoir eu à refaire la manipulation après une mise à jour... Je vais donc reposer la question que tu avais posé à l'époque : Existe t'il un autre moyen pour donner cette permission de manière permanente ?

nicolt
Timide
Messages : 17
Inscription : 13 avr. 2019, 08:45

Re: Erreur à l'écriture d'un fichier XML lors de l'exécution d'un script Python

Message par nicolt » 15 août 2019, 16:52

Je viens d'essayer la modification sans succès. Je suis dans l'impasse totale

nicolt
Timide
Messages : 17
Inscription : 13 avr. 2019, 08:45

Re: Erreur à l'écriture d'un fichier XML lors de l'exécution d'un script Python

Message par nicolt » 03 sept. 2019, 10:57

Bonjour ! Petit UP car je n'ai toujours pas trouvé de solution à ce jour ? Suis-je le seul à ne pas pouvoir lire de fichiers XML ? C'est sensé être une fonction de base du plugin Script mais ça ne fonctionne tout simplement pas chez moi.
J'obtiens toujours la réponse "String could not be parsed as XML". Pourtant mon fichier est tout à fait basique ! J'ai même essayé avec un bête copier/coller de l'exemple présent dans la doc, sans succès. J'ai également téléchargé de nombreux exemples de fichiers XML mais aucun ne fonctionne ! Je bloque complètement !

En vous remerciant.
Nico

glenan
Actif
Messages : 1479
Inscription : 08 mai 2017, 21:38
Localisation : Bretagne

Re: Erreur à l'écriture d'un fichier XML lors de l'exécution d'un script Python

Message par glenan » 02 oct. 2019, 15:22

Bonjour

J'ai aussi un problème avec un script qui fonctionnait normalement jusqu'à lors.
Indice UV
http://wxdata.weather.com/wxdata/weathe ... c=*&unit=m
indice_uv.png
indice_uv.png (208.5 Kio) Consulté 750 fois
je reçois toutes les heures :

Code : Tout sélectionner

[2019-10-02 14:00:12][ERROR] : Erreur pour [Météo][(sc) Indice_UV][UV] : String could not be parsed as XML
Il est possible que cela vienne du site weather.com car si on saisi cette url, il n'y a pas de réponse.
Jeedom Smart Z-Wave+ & RFXCOM - NAS Syno DS415+
1 BROADLINK MP1 / Gestion aquarium
4 Roller Shutter 2 - 3 Door/Windows Sensor 2 FGDW-002 - 1 Dimmer 2 FGD-212 - Bypass 2 FGB-002 - 2 FGWPE/F Wall Plug Gen5 - M. Sensor FGMS-001 - Oregon RAR502

glenan
Actif
Messages : 1479
Inscription : 08 mai 2017, 21:38
Localisation : Bretagne

Re: Erreur à l'écriture d'un fichier XML lors de l'exécution d'un script Python

Message par glenan » 03 oct. 2019, 19:31

Je confirme que lorsque le site weather.com ne répond pas, le message d'erreur est bien "String could not be parsed as XML"

et ces derniers jours, ce site est souvent hs (au moins pour renvoyer ce genre d'info).

Alors que la dernière erreur date de 14h, je copié/collé l'url et le site répond bien actuellement.
Jeedom Smart Z-Wave+ & RFXCOM - NAS Syno DS415+
1 BROADLINK MP1 / Gestion aquarium
4 Roller Shutter 2 - 3 Door/Windows Sensor 2 FGDW-002 - 1 Dimmer 2 FGD-212 - Bypass 2 FGB-002 - 2 FGWPE/F Wall Plug Gen5 - M. Sensor FGMS-001 - Oregon RAR502

Répondre

Revenir vers « [Plugin officiel] Scripts »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité