salve a tutti, ho un problema che non riesco proprio a risolvere. in pratica uso python sul mio raspberry per fargli leggere i dati per il consumo di corrente tramite un sensore e finquà tutto ok.
il problema è che ogni 5 minuti leggo il db (mysql, in locale) e devo tramite la variabile sempre aggiornata di aggiornare i valori minimi e massimi... ma non funziona mi fa solo massimi e tra l'altro la esegue anche se la condizione è falsa... sto impazzendo.. se qualcuno è in grado di aiutarmi... grazie
Lo script
L'ho dovuto tagliare per postarlo, ho tenuto solo la parte incriminata... ovviamente le variabili vengono rienpite... e con i print di prova è tutto ok ma non lo esegue come da programma...codice:... if(t.minute == 1) or (t.minute == 5) or (t.minute == 10) or (t.minute == 15) or (t.minute == 20) or (t.minute == 25) or (t.minute == 30) or (t.minute == 35) or (t.minute == 40) or (t.minute == 45) or (t.minute == 50) or (t.minute == 55): if id_media: sqlb = "SELECT min,max FROM consumi WHERE id='%s'" % (id_media) # Execute the SQL command c.execute(sqlb) # Fetch all the rows in a list of lists. results = c.fetchall() for rowb in results: minpw = rowb[0] maxpw = rowb[1] minpw = int(minpw) maxpw = int(maxpw) if(z < minpw): print "z al momento e ",z," invece minpw e ",minpw querymin = ("""UPDATE consumi SET min=%s WHERE id=%s""", (z, id_media)) c.execute(*querymin) # Commit your changes in the database conn.commit() elif(z > maxpw): print "z al momento e ",z," invece maxpw e ",maxpw querymax = ("""UPDATE consumi SET max=%s WHERE id=%s""", (z, id_media)) c.execute(*querymax) # Commit your changes in the database conn.commit() else: print "Dati invariati!!!" if id_media: queryista = ("""UPDATE consumi SET istant=%s WHERE id=%s""", (z, id_media)) c.execute(*queryista) # Commit your changes in the database conn.commit() print "potenza attuale e: ",z time.sleep(10) except KeyboardInterrupt: ser.close()

Rispondi quotando