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

  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 752
    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 752
    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 752
    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 752
    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

  7. #7
    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 bm pour ton intervention, mais je connais domoticz déjà en bonne partie. Sans avoir la prétention de le connaître de fond en comble..
    Je ne suis pas ici pour demander qu'on code à ma place, je suis là pour demander des idées à propos d'un script python. Après je me débrouille pour trouver des exemples de codes si je ne sais pas faire.
    Je pense que pour 99% des gens qui viennent demander de l'aide sur un forum, une telle réponse que:
    Information ici www.domoticz.com n'est vraiment pas qu'on est venu chercher. A moins de ne pas savoir à quoi serve google ? A part prendre de haut la personne qui cherche de l'aide, je ne vois pas à quoi sa sert ?
    A moins que vous n'ayez pas lu le post que j'ai fait ?


    Mr wiztricks m'a donné des indications de comment faire ce que je recherchais et j'ai trouvé ma solution. Et je l'en remerci d'ailleurs.

  8. #8
    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
    Par défaut
    A part prendre de haut la personne qui cherche de l'aide, je ne vois pas à quoi sa sert ?
    A moins que vous n'ayez pas lu le post que j'ai fait ?
    1 // Ce qui sert sur ce forum c'est d'écrire du code ( et pas que 3 lignes ... ) et de chercher une aide
    parce que c'est un forum de développement informatique

    2 // Et de plus il y a une charte
    Ensuite cliquer sur le bouton "RESOLU" est la première des bonnes pratiques de celui qui veut progresser

  9. #9
    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
    Salut ouais

    J'édite mon message pour que vous compreniez bien ma réaction.

    C'est comme si vous veniez sur un forum de mécanique pour demander un conseil pour changer une pièce de votre clio et qu'on vous répond : www.renault.fr

    C'est un peu énervant.
    Quand j'ai dit que je ne demandais pas de ligne de code, l'intention était de dire que je n'étais pas là pour qu'on code à ma place. Il m'a donné des informations qui ont pu m'aider à trouver une solution, le code en conséquence je l'ai trouvé tout seul sur internet.

    Donc bon je ne sais pas si c'est que répondre à des questions basique ou je sais pas quoi vous énerve mais niveau entraide comme vous dites, votre aide est pas vraiment au top niveau

  10. #10
    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
    Par défaut
    Désolé que mon aide soit insuffisante
    Un développeur développe en écrivant du code
    Un conseil : renseignez mieux votre profil ( étudiant, électricien, c'est trop général )


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