Les prints dans les scripts python ne fonctionnent pas

Bonjour,

Je commence à m’initier à Jeedom et j’essaie de faire mes premiers scripts en python. Le but final étant d’interagir avec des variables de virtuels ; autant dire que j’en suis loin !
En effet, j’essaie pour le moment tout bêtement d’afficher « Hello » avec le script suivant :

#! /usr/bin/env python3

print("Hello")

En revanche, je ne vois rien dans les logs hormis le fait que mon script a soit disant été exécuté.
Pourriez-vous me mettre sur la piste ?

Merci.

Bonjour,

Pour toute demande d’aide veuillez fournir:

  • capture d’écran de la page santé jeedom
  • capture de la config
  • logs

Avec une petite recherche vous auriez pu trouvé que jeedom utilise python pour exécuter les script dont le nom termine par .py en minuscule, votre entête ne servant à rien dans ce cas.

Et comme pour l’instant, en principe vous êtes sous debian buster (d’où le besoin de la page santé) c’est python2.7 qui est exécuté et vous avez donc une erreur de syntaxe car votre fichier se termine probablement par .py en minuscule (d’où le besoin de la capture de la config)

Renommez votre fichier en .PY en majuscule et cela fonctionnera.

Bonjour,
La première ligne sert à forcer l’exécution avec Python 3 selon les recherches que j’ai faites sur internet.
J’ai bien essayé en nommant mon script avec l’extension .py ET .PY ; rien n’y changeant.
Voici la page santé demandé :

Une photo des logs scripts :

Suite dans un autre message car je ne peux mettre que deux images

Et enfin voici la configuration de mon plugin :

Merci de votre aide

Et la page avec la config de la commande?

Oui, sauf si le script est explicitement appelé avec une version comme j’ai expliqué dans mon premier message.

Voici la configuration, tout est laissé par défaut sauf erreur de ma part :

Oui, sauf si le script est explicitement appelé avec une version comme j’ai expliqué dans mon premier message.

Dans ce cas je retire la première ligne alors ?

Voici les paramètres avancés :

non, c’est le but de renommer le fichier en .PY pour que python ne soit pas forcé par jeedom

c’est pas les paramètres avancés que je voudrais voir mais la config de base

Est-ce que c’est ça ?

Je suis désolé mais je suis très novice.
Qu’est-ce que vous entendez par « config de base » ? Config de quoi ?

la liste de vos commandes

C’est pas ce que j’ai envoyé il y a 7 minutes ? Juste avant les paramètres avancés ?
Je n’ai qu’une commande, celle que j’ai envoyée

Si j’ai été trop vite.

Vous devez d’abord « rafraichir » les commandes infos via:

  • la commande action « refresh » de l’équipement
  • un cron d’auto-actualisation
  • (une sauvegarde de l’équipement fait un refresh forcé)

sinon la commande ne sera pas à jour

J’ai bien trouvé le bouton pour refresh
J’ai demandé à faire un cron ce jour à 11h30
Je pense que ça a donc été fait (sinon comment le forcer à le faire ?)

Aucun changement au niveau des logs ; toujours pas de « Hello » visible

Ah j’avais pas vu, votre commande est une info/numérique et vous faite un print d’une string "hello", cela ne peut pas marcher :wink:

J’avais aussi essayé de faire

test = 2
print(test)

Mais sans succès

J’ai également de passer ma commande en action au lieu d’info mais il n’y a pas eu de changement.

Comment faire alors ?

Non, passez en info/autre ou fait un print(5) dans une info/numérique

J’ai réussi à le faire fonctionner.
J’ai simplement modifier le type en mettant « autre » au lieu de numérique.
Egalement, j’ai cliqué plusieurs fois sur le bouton refresh et sauvegarder avant d’avoir quelque chose qui fonctionne. Avant de mettre le sujet en résolu, est-il possible tout de même que les prints soient affichés dans les logs plutôt que dans une petite notification en bas à droite de l’écran ?

Non, c’est votre script et c’est le log du plugin.

D’accord merci beaucoup
Je mets ce sujet en résolu !

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