Executer un script python - mon 1er

Mon problème

bonjour ,

je me lance pour executer mon 1er script en python et j’aurais besoin d’aide pour tout mettre en place pour ça fonctionne (pour l’instant ça marche pas)

  • j’ai créé un répertoire config/python_scripts
  • j’ai mis mon script python dedans : test_anneau_haut.py
  • j’ai ajouté à configuration.yaml
python_script:
  test_anneau_haut:
    sequence:
    - service: python_script.test_anneau_haut
  • mon fichier python
#!/usr/bin/env python

import openzwave
from openzwave.node import ZWaveNode
from openzwave.value import ZWaveValue

# Indiquez le port série sur lequel votre contrôleur Z-Wave est connecté
device = "/dev/ttyACM0"

# Créez un objet de la bibliothèque python-openzwave
network = openzwave.network.ZWaveNetwork(device)

# Attendez que le réseau Z-Wave soit prêt
while not network.is_ready:
    pass

# Obtenez l'objet de nœud Z-Wave correspondant au périphérique FGWCEU-201
node = network.nodes[17]  # Remplacez "5" par l'ID de votre périphérique

# Obtenez l'objet de la valeur Z-Wave correspondant à l'anneau haut
value_id = (150, 2)  # Remplacez "37" et "1" par les ID de classe et d'instance de votre périphérique
value = node.get_value(value_id)

# Allumez l'anneau haut
value.data = True

# Enregistrez la nouvelle valeur dans le réseau Z-Wave
network.manager.pressButton(value.value_id)

# Attendez que la nouvelle valeur soit confirmée par le périphérique
while not value.is_polled:
    pass

# Déconnectez le réseau Z-Wave
network.stop()


  • après redémarrage de HA je trouve bien le /dev/service/Python Scripts: test_anneau_haut

  • lorsque j’appelle le service j’ai une erreur:

Logger: homeassistant.components.python_script.test_anneau_haut.py
Source: components/python_script/__init__.py:224
Integration: Python Scripts (documentation, issues)
First occurred: 18:04:49 (1 occurrences)
Last logged: 18:04:49

Error executing script: __import__ not found
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/python_script/__init__.py", line 224, in execute
    exec(compiled.code, restricted_globals)
  File "test_anneau_haut.py", line 3, in <module>
ImportError: __import__ not found

donc je suis certains qu’il me manque quelque chose, mais à ce stade je ne sais pas quoi
merci de votre aide

Ma configuration


HAOS sur RPI4 (armv7 - 32bit)
Home Assistant 2023.3.5
Supervisor 2023.03.1
Operating System 9.5
Interface utilisateur : 20230309.1 - latest


Salut,

facile 1 seul import

oui j’ai vu, mais je dois faire quoi pour corriger ?
merci

La première idée de réponse qui me vient c’est : trouver une autre solution.
Je ne sais pas quel est le contexte mais vu le code et vu la méthode, ça me semble une piste qui va mener à plus d’ennuis que de solutions : se connecter au contrôleur zwave en parallèle d’un add-ons zwave, qui utilise aussi l’usb, ça ne va jamais pouvoir se passer correctement pour l’un ou pour l’autre.

Techniquement dans HA OS, le python installé est minimaliste, donc il n’y a pas la classe zwave explicitée. Et installer ça dans une image docker, c’est pas vraiment la philosophie classique.
Encore un mauvais point pour le script python.

Le seule contournement que je vois c’est de passer pas appdaemon qui permet d’avoir un container avec les imports que TU décides.
Un exemple de config avec des classes additionnelles

Mais bon, le script est sans doute à réécrire en partie pour être invocable…

mon objectif est de pouvoir envoyer un ordre au controleur zwave de manière a exécuter une command_class qui est disponible en zwave et reconnue par un module mais pas implémentée dans les interface Zwave JS et Z-waveJS UI (en plus dans UI il y a un bug dans certains passage de paramètre que je souhaite corriger via les ordres sur openZawe API)

mon script à pour object de faire cela, mais d’après ce que je comprend, en tout cas dans ta réponse c’est qu’il risque d’y avoir conflit entre le dialogue Zwave JS et les ordres du script, notamment en utilisant la même ressource - la clé Zwave USB.

je suis débutant dans HA et là clairement ce que tu proposes me semble bien au delà de mes compétences.

Oui c’est ce que je pense. Pas testé mais en tout cas sur le papier ça ne me semble pas la meilleure méthode.

Après d’un point de vue général, pour un truc pas pris en charge ou les corrections et dont tu connais les changements, pourquoi ne pas créer une issue chez HA ? Avec un peu de chance, ils vont faire l’ajout

oui ç’est une bonne idée, on fait comment pour créer une issue chez HA ? (désolé de ces questions très trop basiques, mais je ne me suis à HA que il y a quelques jours)

Salut,

si c’est l’intégration ZWave de base que tu utilises, tu peux regarder sur la page de doc de celle-ci, si les services dispo ne peuvent pas faire ce que tu veux tu as en haut de la page un lien ers les « known issues » qui t’affichent les tickets ouverts sur github. et là tu peux en ouvrir une nouvelle avec le bon tag zwave

merci de ce lien,
j’ai ouvert 2 « issues » , l’une pour faire corriger le format du paramétrage des changements de couleur (bug sur la size du paramètre) set parameter 150 and 150 with Walli controller have not the good size · Issue #89999 · home-assistant/core · GitHub ,
l’autre pour demander d’implanter les fonctions indicator CC à ON et OFF avec changement d’intensité par anneau haut et bas, pour faire fonctionner les anneaux lumineux setting ring color with fibaro walli controller doesn't light the ring · Issue #90000 · home-assistant/core · GitHub,
comme spécifié dans la doc fibaro du walli controller.

1 « J'aime »