IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Arguments pour script python en tâche de fond


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Électricien
    Inscrit en
    Février 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Électricien

    Informations forums :
    Inscription : Février 2018
    Messages : 15
    Par défaut Arguments pour script python en tâche de fond
    Bonjour, je viens solliciter votre aide après pas mal de recherches infructueuses.
    Je ne sais pas si ce que je souhaite faire n'est pas possible, ou si je cherche avec les mauvais termes...

    J'utilise un raspberry pi, et un arduino mega, sur raspbian

    J'ai besoin pour mon installation domotique de créer un script python qui :
    - soit lancer en tache de fond pour fonctionner 24h/24 = ok
    - recevoir des messages en provenance du port série (usb) connecté à un arduino = ok
    - recevoir des arguments depuis la console, c'est là mon problème, pour transmettre une information à l'arduino
    Je trouve en effet comment lancer un script python avec un argument, et comment utiliser cette argument dans le script.
    Mais impossible de trouver comment donner un argument à un script déjà en route en tache de fond pour modifier son comportement.

    Exemple : j'ai un radar infrarouge qui va détecter ma présence, le radar est branché à mon arduino qui détecte le changement d'état et envoi l'information au raspberry via le script python qui va effectuer un curl pour mettre à jour l'état du radar dans domoticz ( applications de domotique sur Linux)
    Donc en fonction, je vais devoir par exemple allumer une lumière ou faire sonner une sirène. Donc domoticz va envoyer au script python un message pour lui dire passer la sortie 1 de l'arduino à 5 volts.

    Je ne sais pas si j'ai été clair. N'hésitez pas à me demander des précisions.
    J'utilise un arduino mega 2560 pour son grands nombres d'io car une extension sur le rpi directement n'est pas utilisable dans domoticz d'après mes recherches.
    Merci d'avance !
    Bonne journée !

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 748
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 748
    Par défaut
    Salut,

    Citation Envoyé par Ecko- Voir le message
    Je trouve en effet comment lancer un script python avec un argument, et comment utiliser cette argument dans le script.
    Mais impossible de trouver comment donner un argument à un script déjà en route en tache de fond pour modifier son comportement.
    On ne peut pas sans relancer le script (avec d'autres arguments).
    Par contre on peut essayer de communiquer avec le processus qui exécute le script via des mécanismes IPC. Le plus populaire étant les sockets réseau et le protocole le plus simple à utiliser étant HTTP.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    Électricien
    Inscrit en
    Février 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Électricien

    Informations forums :
    Inscription : Février 2018
    Messages : 15
    Par défaut
    Merci pour ta réponse rapide wiztricks. L'idée que j'ai eu me semble difficile à réaliser vue les compétences en python que j'ai..

    Je souhaite éviter de relancer le script car je dois établir la connexion Serial avec l'arduino et sa prend au moins 2 secondes, et je dois faire des actions beaucoup plus rapide que 2 secondes.

    Si non je pense qu'il est possible que le script python face une requête HTTP vers domoticz pour que domoticz lui renvoi les informations en conséquence. Et faire fonctionner les sorties en fonction par exemple :

    - requête pour connaitre l'état de l'interrupteur virtuel ECLAIRAGE
    - lecture de la réponse
    - activation de la sortie concerné (ou pas).

    Après j'ai peur que ce soit un peu lourd. Malgré que tout sera en local ?

    Si non j'ai une autre idée, je ne sais pas si se sera plus rapide,

    domoticz va lancer un petit script qui va mettre à jours l'état de l'interrupteur virtuel dans un fichier texte.
    le script python va lire le fichier texte à la recherche d'une différence et agir en conséquence.

    as-tu une idée à me proposer ?

    Merci encore

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 748
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 748
    Par défaut
    Salut,

    Citation Envoyé par Ecko- Voir le message
    Merci pour ta réponse rapide wiztricks. L'idée que j'ai eu me semble difficile à réaliser vue les compétences en python que j'ai..
    Si vous voulez faire de la programmation réseau... c'est pas juste savoir programmer avec Python qu'il faut. Et si vous n'avez même pas ce savoir là, il va falloir avoir la patience d'apprendre - chose que je ne peux faire à votre place.

    Citation Envoyé par Ecko- Voir le message
    as-tu une idée à me proposer ?
    domotics dispose déjà d'un serveur Web et d'une interface qui permet pas mal de choses. Si vous avez un besoin particulier, peut être que domoticz a une solution simple et vous avez même un forum de discussion qui sera plus a même de répondre.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre averti
    Homme Profil pro
    Électricien
    Inscrit en
    Février 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Électricien

    Informations forums :
    Inscription : Février 2018
    Messages : 15
    Par défaut
    Pardon je me suis mal exprimé. Le script python va fonctionner sur le même raspberry que domoticz
    Et domoticz propose pas mal de choses avec lles requêtes json, c'est une idée à creuser


    Donc j'ai pu tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import requests
    r = requests.get("https://login:mdp!@ip:port/json.htm?type=devices&rid=52", verify=False)
    print(r.text)
    j'ai bien le retour d'information souhaité, mais c'est plutôt long.. quelques secondes...

    Je vais me tourner vers une autre solution.

    Peut être un fichier texte qui serve de base de donnée, ou une vrai bdd comme MySQL mais ça va compliquer les choses... Je vais tester avec la modification d'un fichier texte...

    pour une soixantaine d'entrée je pense que ça ne sera pas trop lourd
    Plutôt me diriger vers un xml car python sur un fichier texte donne peu d'outils si j'ai bien compris.

  6. #6
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6

Discussions similaires

  1. [Python 3.X] commander un scripte python en tâche de fond via le terminal LX
    Par jawad-gods dans le forum Général Python
    Réponses: 1
    Dernier message: 14/02/2018, 08h24
  2. Lancer un script python en tâche planifiée
    Par Leniouns dans le forum Général Python
    Réponses: 13
    Dernier message: 17/07/2012, 17h02
  3. aide pour script python
    Par bansan dans le forum Général Python
    Réponses: 1
    Dernier message: 28/11/2008, 23h51
  4. aide pour script python
    Par bansan dans le forum Programmation multimédia/Jeux
    Réponses: 0
    Dernier message: 28/11/2008, 19h41
  5. [MySQL] création d'un script en tâche de fond pour mysql
    Par boubourse92 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/12/2007, 09h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo