[résolu] Impossible de lancer un script

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
Corbaak
Messages : 6
Inscription : 11 sept. 2021, 23:04

[résolu] Impossible de lancer un script

Message par Corbaak »

Bonjour,

Tout nouveau sur Domoticz je viens de passer la journée à essayer de configurer mes prises meross sur celui ci.

J'ai au final réussi à mettre en place MerossIot et a faire mes scripts sur Raspberry OS, et ils fonctionnent !
Après avoir tatouillé sur Domoticz, j'ai réussi à faire en sorte que mon interrupteur ne fasse plus d'erreur en lançant le script.

En effet j'ai bien une jolie ligne verte dans les log avec écris "Executing script: /home/domoticz/domoticz/scripts/imprimante_on.sh"
Mais rien ne se passe... Pourtant lorsque je lance exactement la même ligne sur Raspberry OS ça fonctionne... Avec le même utilisateur que celui utilisé par Domoticz... Jusque là je me tapais la tête contre les murs avec les erreurs, mais maintenant que je n'ai même plus de log je suis perdu, je ne sais plus où chercher...

Au secours
Dernière modification par Corbaak le 12 sept. 2021, 12:48, modifié 1 fois.
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Impossible de lancer un script

Message par Keros »

Bonjour Corbaak et bienvenue sur le forum ;)

Évite d'écrire "au secours" : on est sur un forum d'entre-aide, ce n'est pas la police, les pompiers ni le samu.

Est-ce que tu as fait un Chmod +x sur ton fichier script ?

Je ne comprends pas pourquoi tu "n'as même plus de log" ? Tu peux expliciter ce que tu as fait, comment tu appel ton script ?
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Corbaak
Messages : 6
Inscription : 11 sept. 2021, 23:04

Re: Impossible de lancer un script

Message par Corbaak »

Merci déjà d'avoir répondu, désolé si je suis resté trop vague. Alors voilà le topo là où je bloque.

Je lance (enfin j'essaye vu que c'est la que je bloque) mon script sur un interrupteur sur domoticz
interupteur.JPG
interupteur.JPG (45.68 Kio) Consulté 1554 fois
Mais rien ne se passe, pourtant dans les logs de domoticz je n'ai plus d'erreur (j'avais au départ une erreur 512 puis 256 que j'ai réglé) que j'ai réglé en ajoutant les droits d'exécution pour le premier et en faisant le script shell pour le 2eme
log.JPG
log.JPG (30.53 Kio) Consulté 1554 fois
Quand je lance exactement la même commande sur Raspberry OS ça fonctionne très bien
putty.JPG
putty.JPG (11.04 Kio) Consulté 1554 fois
Et pour info mes scripts sh et python :
sh.JPG
sh.JPG (11.57 Kio) Consulté 1554 fois
Dernière modification par Corbaak le 12 sept. 2021, 10:18, modifié 4 fois.
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Impossible de lancer un script

Message par Keros »

Essaye avec seulement deux // entre script: et home
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Corbaak
Messages : 6
Inscription : 11 sept. 2021, 23:04

Re: Impossible de lancer un script

Message par Corbaak »

En retirant juste un des 3 / j'obtient ça
log2 erreur.JPG
log2 erreur.JPG (20.09 Kio) Consulté 1547 fois
Du coup j'ai mis le lien relatif
interrupteur3.JPG
interrupteur3.JPG (74.98 Kio) Consulté 1547 fois
Et là j'ai le même résultat qu'avant (donc pas d'erreur mais aucune réaction sur la prise)
log3.JPG
log3.JPG (17.52 Kio) Consulté 1547 fois
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Impossible de lancer un script

Message par Keros »

Tu as essayé un autre script SH (création d'un txt par exemple) pour voir si c'est le SH qui s'exécute pas ou si c'et le lancement du python qui ne se fait pas?
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Corbaak
Messages : 6
Inscription : 11 sept. 2021, 23:04

Re: Impossible de lancer un script

Message par Corbaak »

Merci j'ai modifier mes scripts shell pour avoir un peu plus d'info et au final, j'en ai pas beaucoup
sh3.JPG
sh3.JPG (12.22 Kio) Consulté 1514 fois
Du coup j'ai mes scripts totalement ok quand je les lances manuellement et j'ai absolument rien quand j'utilise mes boutons (donc c'est a priori bien le sh qui ne se lance pas)
Corbaak
Messages : 6
Inscription : 11 sept. 2021, 23:04

Re: Impossible de lancer un script

Message par Corbaak »

J'ai rien dis, j'ai bien une erreur ! Merci ! (C'est rare d'être heureux d'avoir une erreur)

J'ai remodifié mon script sh car même si il est localisé dans script il est lancé a partir du répertoire domoticz du coup je lance le script python avec ce sh :
sh4.JPG
sh4.JPG (13.42 Kio) Consulté 1511 fois
Et ça lance bien le fichier python du coup même lancé avec Domoticz. Par contre j'ai une erreur sur le python du coup (mais ayant une erreur je peux me relancer dans des recherches)

Code : Tout sélectionner

Traceback (most recent call last):
  File "scripts/imprimante_on.py", line 5, in <module>
    from meross_iot.http_api import MerossHttpClient 
ModuleNotFoundError: No module named 'meross_iot'
Alors que tout ce lance toujours très bien via le terminal
Corbaak
Messages : 6
Inscription : 11 sept. 2021, 23:04

Re: Impossible de lancer un script

Message par Corbaak »

Pour information j'ai réglé mon dernier problème et maintenant tout fonctionne.

Code : Tout sélectionner

#!/usr/bin/python3
import asyncio 
import os 
import sys
if not '/usr/local/lib/python3.7/dist-packages' in sys.path:
    sys.path.append('/usr/local/lib/python3.7/dist-packages')
    
#Mon erreur etait la il fallait ajouter le dossier de package au sys path
if not '/home/domoticz/.local/lib/python3.7/site-packages' in sys.path:
    sys.path.append('/home/domoticz/.local/lib/python3.7/site-packages')

from meross_iot.http_api import MerossHttpClient 
from meross_iot.manager import MerossManager 

EMAIL = os.environ.get('MEROSS_EMAIL') or ".@.com" 
PASSWORD = os.environ.get('MEROSS_PASSWORD') or "" 

async def main():
    # Setup the HTTP client API from user-password
    http_api_client = await MerossHttpClient.async_from_user_password(email=EMAIL, password=PASSWORD)

    # Setup and start the device manager
    manager = MerossManager(http_client=http_api_client) 
    await manager.async_init()

    # Retrieve all the MSS310 devices that are registered on this account
    await manager.async_device_discovery() 
    plugs = manager.find_devices(device_name="Imprimante") 

    if len(plugs) < 1: 
        print("No MSS310 plugs found...") 
    else:
        # Turn it on channel 0 Note that channel argument is optional for MSS310 as they only have one channel
        dev = plugs[0]
        # The first time we play with a device, we must update its status
        await dev.async_update()
        # We can now start playing with that
        print(f"Turning on {dev.name}...") 
        await dev.async_turn_on(channel=0)
    # Close the manager and logout from http_api
    manager.close() 
    await http_api_client.async_logout() 


if __name__ == '__main__':
    # Windows and python 3.8 requires to set up a specific event_loop_policy. On Linux and MacOSX this is not necessary.
    if os.name == 'nt': 
        asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) 
    loop = asyncio.get_event_loop() 
    loop.run_until_complete(main()) 
    loop.close()

Répondre