Plugin Sript et mise à jour 3.3.39 et strech

Salut à tous,

J’ai un jeedom qui tourne depuis 2014. Aucun soucis avec jusqu’à ce que je passe sous Strech.
J’ai fait les mises à jour vers la version 3.3.39.

Depuis mes scripts ne fonctionne plus. ils me renvoient toujours 0.
Pourtant quand je les lance depuis la console en ssh. Ils me renvoient la bonne valeur.

J’ai 3 scripts qui récupèrent une valeur analogique via un mcp3008.
Dans le plugin je n’ai rien touché, j’appel mon script python comme avant avec un argument:
/var/www/html/plugins/script/core/ressources/mcphydroext.py hydroext

Texte préformaté
#!/usr/bin/python

import spidev
import time
import os
import sys

Open SPI bus

spi = spidev.SpiDev()
spi.open(0,0)
spi.max_speed_hz = 5000

Function to read SPI data from MCP3008 chip

Channel must be an integer 0-7

def ReadChannel(channel):
adc = spi.xfer2([1,(8+channel)<<4,0])
data = ((adc[1]&3) << 8) + adc[2]
return data

Read sensor data

hydroext = (ReadChannel(1)*(5/1024.0))

if sys.argv[1] == « hydroext »:
print ((hydroext - 1.677) / 0.031)
else:
print « Erreur »
Texte préformaté

Qu’es ce qui a changé depuis strech?

Je vous remercie

JC

def ReadChannel(channel):
    adc = spi.xfer2([1,(8+channel)<<4,0])
    data = ((adc[1]&3) << 8) + adc[2]
    return data





hydroext = (ReadChannel(1)*(5/1024.0))

if sys.argv[1] == « hydroext »:
    print ((hydroext - 1.677) / 0.031)
else:
    print « Erreur »

ton script ressemble a ca ? car sur ta présentation je ne vois pas les identations ?

oui c’est Bien ca.

lorsque tu utilise le </> il faut copier ton script entre les triple cote …

j’ai pas compris. Tu peux m’expliquer stp?

Lorsque tu clique sur l’icone </>

il te faut copier ton script et le coller la ou c’est indiqué

En python la syntaxe et les espaces en début de ligne sont significatif si tu ne les présente pas c’est comme si tu oubliait des mots … et l’on ne comprend plus le sens.

Salut

Voici donc mon code

#!/usr/bin/python
 
import spidev
import time
import os
import sys
 
# Open SPI bus
spi = spidev.SpiDev()
spi.open(0,0)
spi.max_speed_hz = 5000
 
# Function to read SPI data from MCP3008 chip
# Channel must be an integer 0-7
def ReadChannel(channel):
  adc = spi.xfer2([1,(8+channel)<<4,0])
  data = ((adc[1]&3) << 8) + adc[2]
  return data
 
# Read sensor data
hydroext = (ReadChannel(1)*(5/1024.0))

  
if sys.argv[1] == "hydroext":
  	print ((hydroext - 1.677) / 0.031)
else:
  	print "Erreur"
  

Comment puis je savoir si tout est ok au niveau des autorisations?

merci de ton aide

ls -al

dans le répertoire ou se trouve ton script

pi@olive:/var/www/html/sh $ ls -al
total 40
drwxrwxr-x  2 www-data www-data 4096 janv. 25 17:39 .
drwxrwxr-x 20 www-data www-data 4096 mars  22 10:30 ..
-rwxrwxr-x  1 www-data www-data 1414 janv. 14 11:41 date-sun-info.php
-rwxrwxr-x  1 www-data www-data 1151 janv. 21 16:51 elevsolb.py
-rwxrwxr-x  1 www-data www-data 1191 janv. 24 20:18 elevsolc.py
-rwxrwxr-x  1 www-data www-data 1166 janv. 21 08:01 elevsol.py
-rwxrwxr-x  1 www-data www-data 1333 janv. 25 15:36 isconnect.sh
-rwxrwxr-x  1 www-data www-data 2895 janv. 25 16:12 pylon-script.py
-rwxrwxr-x  1 www-data www-data 1497 janv. 30 16:59 relay.py
-rwxrwxr-x  1 www-data www-data  270 janv.  1 23:48 test-php.php
pi@olive:/var/www/html/sh $ 

J’ai ca

-rwxr-xr-x 1 www-data www-data   500 Mar 22 09:07 mcphydroext.py
-rwxr-xr-x 1 www-data www-data   498 Mar 21 17:45 mcphydrovs.py
-rwxr-xr-x 1 www-data www-data   460 Mar 21 17:43 mcplumino.py

Les droits sont ok non?

quand je lance directement dans la console un des scripts ca focntionne dans la console, mais pas dans jeedom.
J’ai un lancement de script toute les minutes dans jeedom.

yes ca me semble pas mal

a tu tester au travers d’un plugin-script ?

oui j’ai tester a travers le plugins en cliquant sur le bouton test. ca me renvoie toujours zero.
alors que dans le terminal le ca me renvoi environ 30.

Dans le plugin script j’ai mis dans « type de donnee »: « numerique » ca me donne 0.
quand je met « autre » ca me renvoi cela:

Résultat de la commande : /usr/lib/python2.7/dist-packages/pkg_resources/__init__.py:1294: UserWarning: /var/www/.cache/Python-Eggs is writable by group/others and vulnerable to attack when used with get_resource_filename. Consider a more secure location (set with .set_extraction_path or the PYTHON_EGG_CACHE environment variable). warnings.warn(msg, UserWarning) 57.8928931452

La valeur 57.89… me parait correct.

C’est bon, j’ai fait un

sudo chmod g-wx,o-wx /var/www/.cache/Python-Eggs

Ca fonctionne .

C’etait un probleme de droit sur Python -eggs.

Dur changement de version de jeedom!! :face_with_raised_eyebrow: :face_with_raised_eyebrow: :face_with_raised_eyebrow: :face_with_raised_eyebrow:

Je te remercie de ton aide.

ouai il y a un warning dans l’affaire …

en console si tu te place dans le répertoire sur script et que tu fait :
./nom_du_script.py
sans lancer python ca dit quoi ?

C’est bon, j’ai fait un

sudo chmod g-wx,o-wx /var/www/.cache/Python-Eggs

Ca fonctionne .

C’etait un probleme de droit sur Python -eggs.

Dur changement de version de jeedom!! :face_with_raised_eyebrow: :face_with_raised_eyebrow: :face_with_raised_eyebrow: :face_with_raised_eyebrow:

Je te remercie de ton aide.

J’ai le plugins teleinfo qui ne fonctionne pas non plus.

Ca doit etre aussi un probleme sur le port serie.

Content pour toi je commençais a être en panne d’idée sauf que c’était bien un problème de droits !

Bonjour,

Ce matin, j’ai du refaire un

sudo chmod g-wx,o-wx /var/www/.cache/Python-Eggs

Ce n’est pas permanent? Comment le rendre definitif?

Merci
jc

C’est quoi ce Python-Eggs (ca me parle pas)

c’est un modul spécifique ?

C’est une librairie de spi dev.