Python ne semble pas s'exécuter

Le fichier /var/www/html/python/monpython.py contient le code de l’ancien post et pas votre code python.
Vous pouvez vérifier son contenu en exécutant sous OS/DB:

cat /var/www/html/python/monpython.py

Montrez le contenu du bloc code de votre scénario et le log de son exécution.

Tout à fait juste, c’est l’ancien code!

#! /usr/bin/env python3
import requests
from sys import argv
from bs4 import BeautifulSoup
res = requests.get("https://www.meteoblue.com/fr/meteo/semaine/villecresnes_france_2968823")
soupe=BeautifulSoup(res.content, "html.parser")
print(soupe.find_all(class_ ="current_description")[0].span.next.next.next.next.split()[0],end='')
#fin du script python3

C’est ce que je vous ai écrit hier:

Et pour cette demande ?

Je ne comprend toujours pas l’intérêt de se compliquer la via à vouloir exécuter du code python depuis un bloc code :thinking:

C’est trop simple d’utiliser le plugin script probablement

Merci pour cette idée également. Afin de ne pas vous faire perdre votre temps, je vais juste résumé ce que je désire faire.

  • J’aimerai pouvoir lire et écrire des données en rs232, via un convertisseur USB-serial. Malheureusement (j’ai l’impression d’être seul à vouloir faire de la rs232 :frowning: ); il n’y a pas de plugin à cet effet.

  • Je ne suis pas expérimenté en Linux. (Je ne sais trop comment répondre à jpty qui se dévoue fortement pour moi; merci !)

  • Force est de constater qu’il y a de multiples approches possibles.

  • Reste que n’ai pas compris la philosophie du code que l’on peut insérer dans un script, si finalement le script le recopie dans un répertoire pour pouvoir l’exécuter et pourquoi il faudrait utiliser un plugin script. Tout ça est dû à mon manque de connaissances.

  • Le plus important la solution la plus simple possible!!! Aucun problème s’il faut utiliser un plugin (script) pour se faciliter la vie !!!

Après avoir appuyé sur éxecuter, il n’y a rien sous « Analyse » « log »
Sous « Analyse » « temps réel » il y a :
Exécution du scénario [Aucun][Aucun][test rs232] déclenché par : user

Il y a sans doute un autre log que vous désirez voir mais où ???
Merci

Votre bloc code est incomplet. Et ne correspond pas à ce que j’ai écrit.
Il manque le début et la fin soit la sauvegarde dans le fichier et l’exécution du python.
La syntaxe de ce que vous avez écrit est incorrecte.

Voir la version complète dans mon post:

Le log de l’exécution d’un scénario est accessible dans le scénario en cliquant là:

Ce n’est pas exécuter du python dans un bloc code. C’est créer un script par un bloc code et ensuite l’exécuter.
Le plugin script est plus simple quand on a un script qui fonctionne. Sinon c’est un placard rouge avec l’erreur et refus de sauvegarde. Suivi après essai de correction de La commande XXXX existe déjà qu’il faut alors renommer. Puis un nouveau message rouge … = boucle infinie pour moi avec mon niveau en python proche de 0.
La suite de ce fil sera dans le debug du python qui ne fonctionne pas tel quel.

@sil J’ai corrigé une erreur dans mon python au dessus. Copier, coller à refaire dans le scénario.

AUTRE SOLUTION avec le plugin script:

En utilisant le plugin script, il faut créer un script et y mettre cette commande:

Et dans le fichier, writeSerial.PY, mettre ce contenu:

#! /usr/bin/env python3
import serial
ser = serial.Serial(
    port='/dev/ttyS1',
    baudrate=1200,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS
)

if ser.isOpen():
    ser.close()
ser.open()
if ser.isOpen():
    ser.write(str.encode('$ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz\r')) 
ser.close()

J’avais bien compris ca, justement :blush:

Cette fois ça fonctionne bravo :wave: :wave: et merci :pray: !!!

Comment fait-on, si on modifie quelque chose dans le code, pour qu’il fasse un « refresh » du fichier .py ?

Logiquement, il doit être possible de réutiliser ce script depuis un autre scénario.
Dans ce cas comment fait-on l’appel ? (juste monpython.py ne fonctionne pas!)

Dernière question… (ouf…) comment passer une variable (exemple envoyer la luminosité d’un de mes capteurs; le logocal ID est ILL::value)

Encore une fois mille merci.

Ainsi, le code est plus facile à implémenter, car il n’y a pas besoin de créer un fichier.

Y a-t-il d’autres avantages ?

Merci

Bonjour

Quelqu’un aurait une suggestion pour ce post ?
MErci

Bonjour,
Je ne vois pas à quelle question, vous n’avez pas eu de réponse.

Comment fait-on, si on modifie quelque chose dans le code, pour qu’il fasse un « refresh » du fichier .py ?

  • Comment réutiliser (appeler) ce script depuis un autre scénario.

  • comment passer une variable (exemple envoyer la luminosité d’un de mes capteurs; le logocal ID est ILL::value)

Merci

Bonjour jpty,

Je viens de tester votre idée d’utiliser le plugin script.
Malheureusement il doit y avoir encore une astuce car il donne ce code erreur:

Le log n’indique rien de particulier:
[2022-12-15 17:36:10]INFO : Exécution de la commande [Appartement][Test envoi RS232][WriteSerial] avec les paramètres {« user_login »:« admin »,« user_id »:« 1 »}

Il manque une permission; comment l’activer ?

Merci

Bonjour,

Comment afficher la valeur de puissance-1 de mon capteur :

ser.write([Appartement][Consommation électrique][Puissance-1])

Qui provoque cette erreur:

D’avance merci pour le tuyau qui permettrait de comprendre comment afficher/passer cette variable

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