Erreur 256 script Python
Publié : 21 janv. 2019, 21:40
Bonsoir, après des heures à chercher une solution je me décide à venir vous demander de l'aide....
Je vous explique mon système : je souhaite faire une carte d’interface pour gérer de nombreux relais (45) et plusieurs entrée sur le quel sera connecté des radars avec une double résistance.
Donc mon système se compose de :
un Raspberry avec domoticz
un arduino mega
en gros l'idée est de pouvoir activer des relais par domoticz. Je n'utilise pas les GPIO du Raspberry car je ne trouve pas comment utiliser une extension de GPIO dans domoticz donc j'ai programmé un script en python et mon arduino mega pour faire simplement :
Switch virtuel ECLAIRAGE = ON -> ARDUINO -> Commutation relais
J'utilise donc un fichier xml pour lister les sorties, et leurs état actuel. J'ai un script python qui tourne en fond pour vérifier si l'état dans le fichier xml change, et si il change, le script python envoi un message en serial à l'arduino pour commander la sortie correspondante.
manuellement, tout fonctionne, c'est à dire lorsque je fais les opération, moi même en ligne de commande dans le terminal du RPi.
Donc pour que domoticz le fasse à ma place j'ai configuré un switch on off avec les commandes suivantes :
script:///home/pi/domoticz/scripts/python/ordre.py Portail 1
et
script:///home/pi/domoticz/scripts/python/ordre.py Portail 0
donc il ne se passe rien et dans le log j'ai : Error: Error executing script command (/home/pi/domoticz/scripts/python/ordre.py). returned: 256
j'ai mis un chmod +x sur le ordre.py et même un +777
un ls -l donne :
-rwxrwxrwx 1 pi pi 376 janv. 21 21:22 ordre.py
voilà le script :
J'ai essayé sans les arguments, ça ne marche pas. J'ai même essayé de passer par un script shell qui lance le script python, mais rien n'y fais. J'ai essayé pas mal de choses...
J'ai installé python3-dev mais quand je relance domoticz je n'ai pas : "PluginSystem: Started, Python version " qui s'affiche ?
Je précise que le script python doit être lancé par python3 pour utiliser la librairie lxml.
Je soupçonne vraiment que domoticz lance le script en python2 et sa ne fonctionne pas...
Si quelqu'un a une idée parce que la je sèche complet !
Merci d'avance !
Bonne soirée
Je vous explique mon système : je souhaite faire une carte d’interface pour gérer de nombreux relais (45) et plusieurs entrée sur le quel sera connecté des radars avec une double résistance.
Donc mon système se compose de :
un Raspberry avec domoticz
un arduino mega
en gros l'idée est de pouvoir activer des relais par domoticz. Je n'utilise pas les GPIO du Raspberry car je ne trouve pas comment utiliser une extension de GPIO dans domoticz donc j'ai programmé un script en python et mon arduino mega pour faire simplement :
Switch virtuel ECLAIRAGE = ON -> ARDUINO -> Commutation relais
J'utilise donc un fichier xml pour lister les sorties, et leurs état actuel. J'ai un script python qui tourne en fond pour vérifier si l'état dans le fichier xml change, et si il change, le script python envoi un message en serial à l'arduino pour commander la sortie correspondante.
manuellement, tout fonctionne, c'est à dire lorsque je fais les opération, moi même en ligne de commande dans le terminal du RPi.
Donc pour que domoticz le fasse à ma place j'ai configuré un switch on off avec les commandes suivantes :
script:///home/pi/domoticz/scripts/python/ordre.py Portail 1
et
script:///home/pi/domoticz/scripts/python/ordre.py Portail 0
donc il ne se passe rien et dans le log j'ai : Error: Error executing script command (/home/pi/domoticz/scripts/python/ordre.py). returned: 256
j'ai mis un chmod +x sur le ordre.py et même un +777
un ls -l donne :
-rwxrwxrwx 1 pi pi 376 janv. 21 21:22 ordre.py
voilà le script :
Code : Tout sélectionner
#!/usr/bin/python3.5
#coding=utf-8
import sys
from xml.etree import ElementTree as ET
nomSortie = sys.argv[1]
etatSortie = sys.argv[2]
tree = ET.parse("bdd.xml")
sortie = tree.find(nomSortie+"/etat")
sortie.text = etatSortie
tree.write("bdd.xml")
J'ai installé python3-dev mais quand je relance domoticz je n'ai pas : "PluginSystem: Started, Python version " qui s'affiche ?
Je précise que le script python doit être lancé par python3 pour utiliser la librairie lxml.
Je soupçonne vraiment que domoticz lance le script en python2 et sa ne fonctionne pas...
Si quelqu'un a une idée parce que la je sèche complet !
Merci d'avance !
Bonne soirée