Page 1 sur 1
[résolu] Impossible de lancer un script
Publié : 11 sept. 2021, 23:18
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
Re: Impossible de lancer un script
Publié : 12 sept. 2021, 08:37
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 ?
Re: Impossible de lancer un script
Publié : 12 sept. 2021, 09:22
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 (45.68 Kio) Consulté 1556 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 (30.53 Kio) Consulté 1556 fois
Quand je lance exactement la même commande sur Raspberry OS ça fonctionne très bien

- putty.JPG (11.04 Kio) Consulté 1556 fois
Et pour info mes scripts sh et python :

- sh.JPG (11.57 Kio) Consulté 1556 fois
Re: Impossible de lancer un script
Publié : 12 sept. 2021, 09:26
par Keros
Essaye avec seulement deux // entre script: et home
Re: Impossible de lancer un script
Publié : 12 sept. 2021, 09:35
par Corbaak
En retirant juste un des 3 / j'obtient ça

- log2 erreur.JPG (20.09 Kio) Consulté 1549 fois
Du coup j'ai mis le lien relatif

- interrupteur3.JPG (74.98 Kio) Consulté 1549 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 (17.52 Kio) Consulté 1549 fois
Re: Impossible de lancer un script
Publié : 12 sept. 2021, 09:47
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?
Re: Impossible de lancer un script
Publié : 12 sept. 2021, 10:24
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 (12.22 Kio) Consulté 1516 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)
Re: Impossible de lancer un script
Publié : 12 sept. 2021, 10:33
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 (13.42 Kio) Consulté 1513 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
Re: Impossible de lancer un script
Publié : 12 sept. 2021, 12:35
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()