Erreur script python

Bonsoir a tous,
je voudrais associer a une action un script python ( qui fonctionne en local )

#!/usr/bin/env python
#import the required modules
import RPi.GPIO as GPIO
import time


GPIO.setwarnings(False)
# set the pins numbering mode
GPIO.setmode(GPIO.BOARD)

# Select the GPIO pins used for the encoder K0-K3 data inputs
GPIO.setup(11, GPIO.OUT)
GPIO.setup(15, GPIO.OUT)
GPIO.setup(16, GPIO.OUT)
GPIO.setup(13, GPIO.OUT)

# Select the signal used to select ASK/FSK
GPIO.setup(18, GPIO.OUT)
GPIO.setup(22, GPIO.OUT)

# 1110 run socket 2
GPIO.output (13, True)
GPIO.output (16, True)
GPIO.output (15, True)
GPIO.output (11, False)
# let it settle, encoder requires this
time.sleep(0.1)	
# Enable the modulator
GPIO.output (22, True)
# keep enabled for a period
time.sleep(0.25)
# Disable the modulator
GPIO.output (22, False)
GPIO.cleanup()

ce fichier est mis dans le répertoire
var/www/html/plugins/script/data
je pense que les droits sont bons
-rwxrwxrwx 1 root www-data 749 janv. 10 21:37 start2.py
j’utilise le plugin script de la manière suivante

et lorsque que je l’exécute j’ai l’erreur suivante

Erreur exécution de la commande [SALON-CUISINE][AllumerCafe][on] : Erreur sur python /var/www/html/plugins/script/data/start2.py 2>&1 valeur retournée : 1. Détails : Traceback (most recent call last): File « /var/www/html/plugins/script/data/start2.py », line 12, in GPIO.setup(11, GPIO.OUT) RuntimeError: No access to /dev/mem. Try running as root!

je vous donne également les droits du fichier /dev/mem
crwxrwx–x 1 root www-data 1, 1 janv. 10 18:34 mem

jeedom ver 4.1.28
Merci d’avance pour vos réponses

Bonsoir
deplace /dev/mem sous /var/www/…
car je ne pense pas que l’utilisateur www-data puisse remonter aussi haut !

bonjour,
En fait le fichier mem est vide , je l’ai créé en lieu et place avec les mêmes droits, mais toujours la même erreur, il semble que www.data n’ait pas accès à la librairie RPi.GPIO ?
merci de suivre mon problème

si la librairie n’était pas accessible
il y aurait un message d’erreur au niveau de " import "

Exact , j’ai regardé dans
sys/class/gpio mais ???

Bonjour,

Vous avez écrit l’intégralité de votre message en gras, c’est vraiment inconfortable à lire.
De plus le code n’était pas dans une balise Texte préformaté comme ceci:

saisissez ou collez du code ici

J’ai modifié en partie cela mais il y a toujours les marqueurs de gras ** en markdown donc c’est toujours illisible.
Veuillez editer et corriger votre post et faire plus attention à l’avenir

1 « J'aime »

Voila c’est fait
Mille excuses

Bonjour,

Il faut exécuter le script avec sudo (sudo /var/www/html/plugins/script/data/start2.py) pour qu’il puisse accéder à /dev/mem (qui n’est pas un fichier ordinaire … et ce n’est jamais une bonne idée de modifier les droits des fichiers qui se trouve dans /dev)

Édit : les commandes pour remettre /dev/mem comme il était avant (à faire en root ou en préfixant avec sudo)

chmod u=rw,g=r,o= /dev/mem
chown root:kmem /dev/mem
1 « J'aime »

ok c’est fait pour /dev/mem
Par contre j’ai une erreur lorsque j’ajoute sudo /var/…

Erreur exécution de la commande [SALON-CUISINE][AllumerCafe][on] : Erreur sur python Sudo /var/www/html/plugins/script/data/start2.py 2>&1 valeur retournée : 2. Détails : python: can't open file 'Sudo': [Errno 2] No such file or directory

Peut on créer un script qui lance le script
sudo /var/www/html/plugins/script/data/start2.py, mais pour le mot de passe ???

C’est sudo et non Sudo

1 « J'aime »

J’avais essayé avec sudo , même erreur

Non ça ne peut pas être là même erreur, impossible puisque celle-ci indique Sudo avec un S majuscule.

Donc essayez avec sudo et montrez l’erreur reçue

Erreur exécution de la commande [SALON-CUISINE][AllumerCafe][on] : Erreur sur python sudo /var/www/html/plugins/script/data/start2.py 2>&1 valeur retournée : 2. Détails : python: can’t open file ‹ sudo ›: [Errno 2] No such file or directory

Et vous tapez quelle commande exactement ? Êtes vous déjà dans l’interpréteur python ?

Parce que je ne comprend pas pourquoi vous recevez une erreur python, mais dans le context python c’est normal que sudo ne soit pas reconnu.

J’utilise le bouton Tester dans l’onglet commande du plugin script ( comme présenté au début du sujet)

ok j’ai touvé une solution qui marche, j’ai crée un fichier AllumerCafe.sh

#!/bin/bash
sudo python /var/www/html/plugins/script/data/start2.py

et j’ai remplacé dans la commande du plugin script
/var/www/html/plugins/script/data/start2.py
par
/var/www/html/plugins/script/data/AllumerCafe.sh:
Super café bien chaud demain matin :grin:
Merci a tous de m’avoir aidé

ah oui, vous ne pouviez pas utiliser sudo dans la commande script du plugin évidement!
si le plugin script détecte que le fichier se termine par .py il va en fait executer python [path_du_fichier_donné] donc avec sudo … cela donnait python sudo ... donc vous êtiez bien déjà dans l’interpréteur python comme je le suspectais.

et vous n’aviez pas tag le plugin script, donc non ce n’était pas clair que vous faisiez cela :wink:

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.