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
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()
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...