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 :

Problème de comparaison


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2017
    Messages : 7
    Par défaut Problème de comparaison
    Bonsoir à tous,

    Alors voilà, je suis en Terminale STI2D SIN et j'ai en projet de commander un portail automatique selon des horaires définis à partir d'un site web (jusque là aucun soucis). J'utilise une base de donnée MySQL pour les horaires, ainsi je peux facilement marier site et script Python géré par un Raspberry PI 3.

    En attendant la livraison du moteur, je simule l'ouverture et la fermeture avec des LED rouge (portail fermée) et verte (ouvert). Je compare donc les horaires de la base de donnée par rapport à l'heure actuelle. Tout fonctionne concernant l'heure d'ouverture. Si l'heure récupérée est inférieur à l'heure actuelle, LED rouge et inversement.

    Néanmoins j'ai une double comparaison mais elle ne s'effectue pas. J'ai comme l'impression que le script ne prend en compte que l'heure d'ouverture et pas de fermeture, comment résoudre ce soucis ?


    Désolé si mes explications ne sont pas claires mais je vous laisse en dessous une photo de ma DB sur PHPmyAdmin ainsi que mon script.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    import RPi.GPIO as GPIO
    from twilio.rest import TwilioRestClient
    import time
    import datetime
    import threading
    import MySQLdb
     
     
    GPIO.setmode(GPIO.BOARD)
    GPIO.setup(40, GPIO.OUT)
    GPIO.setup(38, GPIO.OUT)
     
    db = MySQLdb.connect(host="localhost",    # your host, usually localhost
                        user="root",         # your username
                       passwd="Orel_27130",  # your password
                        db="projet")        # name of the data base
     
     
     
     
    day = datetime.datetime.now()
    day = day.isoweekday()
     
     
    if day == 3 :
        while day == 3:
            # calcul du time delta + affichage de l'heure actuelle au format H24
            midnight = datetime.datetime.combine(datetime.date.today(), datetime.time.min)
            now_relative = datetime.datetime.now() - midnight
            print time.strftime("%H:%M:%S")
     
            # Requete SQL
            cursor1 = db.cursor()
            cursor1.execute("SELECT time_open FROM time WHERE id = 3")
            time_open = cursor1.fetchone()
            cursor2 = db.cursor()
            cursor2.execute("SELECT time_close FROM time WHERE id = 3")
            time_close = cursor2.fetchone()
     
     
            # Si Time open est superieur ou egale a l'heure actuelle et si time close est inferieur a l'heure actuelle
            if(time_open[0] >= now_relative and time_close[0] < now_relative):
                print ("Fermee")
                GPIO.output(38, False)
                GPIO.output(40, True)   
            else:
                print ("Ouvert")
                GPIO.output(38, True)
                GPIO.output(40, False)
    Nom : XjYiS.png
Affichages : 136
Taille : 51,3 Ko

    Merci d'avance,
    iDezwin

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Vous pensez bien qu'un test du genre if a > 0 and b < 0 fonctionne... Sinon çà se saurait et Python n'aurait pas un tel succès.
    Donc si çà fonctionne "en général" mais pas dans votre cas c'est peut être que vous comparez des patates avec des oranges... J'en sais rien mais "print" des différentes variables, print (type(...)) des différentes variables, ... est un bon début pour s'assurer qu'on compare bien des choses comparables.

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

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2017
    Messages : 7
    Par défaut
    Salut,
    Merci de la réponse rapide.
    Donc il faudrait que je convertisse tout en seconde ?

    iDezwin

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Citation Envoyé par iDezwin Voir le message
    Donc il faudrait que je convertisse tout en seconde ?
    Faut-il tout convertir en secondes ou transformer en datetime la chose retournée par le SGDB? Tant que vous ne vérifiez pas ce que la requête SQL vous retourne vous ne connaissez pas encore le problème et envisager une solution sera prématuré.

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

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 215
    Par défaut
    Affiche Time_open[0], time_close[0] et now_relative.

    Peux-tu nous donner ces 2 valeurs Time_open[0] et time_close[0].

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2017
    Messages : 7
    Par défaut
    Salut,

    Voici les print de toutes les valeurs :

    1ere ligne = time_open[0]
    2eme ligne = time_close[0]
    3eme ligne = now_relative

    Nom : print all.png
Affichages : 134
Taille : 529 octets

    Edit : Time_open[0] et time_close[0] correspondent bien aux valeurs de la database

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/03/2006, 12h39
  2. Réponses: 11
    Dernier message: 22/03/2006, 21h57
  3. problème de comparaison table dans requète.
    Par Sendo dans le forum Access
    Réponses: 8
    Dernier message: 09/03/2006, 11h10
  4. Problème de comparaison (chez lycos)
    Par Tuscelan dans le forum Langage
    Réponses: 4
    Dernier message: 10/11/2005, 18h13
  5. Problème de comparaison de dates
    Par MiJack dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/03/2004, 21h43

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