def ComprobarVelocidad(client, imeis): global imeix print("Comprobar Velocidad de comunicacion:") dataT = obtenerDataT(imeis) for x in range(len(imeis)): imeix = imeis[x] print(str(x + 1) + ": " + imeis[x] + "....................") tiempoAcumulado = 0 npruebas = 3 for i in range(npruebas): client.publish( dataT[x], '{"state":{"reported":{}}}') #publicas y esperas respuesta start_time = time.time() errCom = EsperaRespuesta("Programming", "", "") if errCom == True: break tiempoEnResponder = time.time() - start_time tiempoAcumulado += tiempoEnResponder print("tiempo en responder, en el mensaje" + str(i + 1) + ": " + str(tiempoEnResponder) + " segundos") time.sleep(1) if errCom == False: tiempoMedio = tiempoAcumulado / npruebas print("tiempo medio en responder: " + str(tiempoMedio) + " segundos") time.sleep(3) PintaryGuardarResultado(imeis[x], "ComprobarComunicacion", errCom)
def AbrCerrSelenoide(client, imeis): global imeix eAbrCerr = input( "\nPulsa 'a' --> abrir valvula de forma manual, por defecto se mandará orden de cerrar \n> " ) dataT = obtenerDataT(imeis) if eAbrCerr == 'a': print("Abrir selenoide:") for x in range(len(imeis)): imeix = imeis[x] print(str(x + 1) + ": " + imeis[x] + "....................") client.publish( dataT[x], '{"state":{"reported":{"M":"0","A":"1","GMT":"+01"}}} ' ) #publish (Se abren en todas las valvulas) errCom = EsperaRespuesta("Programming", "Manual: Valve open", "") PintaryGuardarResultado(imeis[x], "AbrirSelenoide", errCom) time.sleep(1) else: print("Cerrar selenoide:") for x in range(len(imeis)): imeix = imeis[x] print(str(x + 1) + ": " + imeis[x] + "....................") client.publish( dataT[x], '{"state":{"reported":{"M":"0","A":"0","GMT":"+01"}}} ' ) #publish (Se abren en todas las valvulas) errCom = EsperaRespuesta("Programming", "Manual: Valve closed", "") PintaryGuardarResultado(imeis[x], "CerrarSelenoide", errCom) time.sleep(1)
def funcionSM(client, imeis, nombre, orden): global imeix print(nombre + ": ") sombraUp = obtenerSombraUp(imeis) for x in range(len(imeis)): imeix = imeis[x] print(str(x + 1) + ": " + imeis[x] + "....................") GuardarLogExcel(imeis[x], nombre) client.publish(sombraUp[x], '{"state":{"reported":{' + orden + '}}}') #publish (Se cambia el modo de energía) time.sleep(1)
def funcionDT(client, imeis, orden, resp1, resp2, resp3): global imeix print(orden + ": ") dataT = obtenerDataT(imeis) for x in range(len(imeis)): imeix = imeis[x] print(str(x + 1) + ": " + imeis[x] + "....................") client.publish(dataT[x], '{"state":{"reported":{"GMT":"+01","Com":"' + orden + '"}}}') #publish (Se abren en todas las valvulas) errCom = EsperaRespuesta(resp1, resp2, resp3) PintaryGuardarResultado(imeis[x], orden, errCom) time.sleep(1)
def ObtenerSombra(client, imeis, coment): global imeix print("Obtener Sombra " + coment + ": ") sombraGet = obtenerSombraGet(imeis) dataT = obtenerDataT(imeis) for x in range(len(imeis)): imeix = imeis[x] print(str(x + 1) + ": " + imeis[x] + "....................") GuardarLogExcel(imeis[x], "ObtenerSombra" + coment) client.subscribe(dataT[x]) client.publish(sombraGet[x], "") #publish (se obtiene valor sombra) EsperaRespuesta("", "", "") time.sleep(1) client.unsubscribe(dataT[x])
def BorraryPonerSombra(client, imeis, soloPonerSombra): global imeix print("Borrar y poner Sombra nueva:") print( "Nota: En el caso de existir error de comunicación, se recomienda continuar hasta el final del programa. " ) sombraUp = obtenerSombraUp(imeis) sombraDel = obtenerSombraDel(imeis) for x in range(len(imeis)): imeix = imeis[x] print(str(x + 1) + ": " + imeis[x] + "....................") #(borrar programas en dispositivo) errCom = False if soloPonerSombra == False: client.publish( sombraUp[x], '{"state":{"reported":{"P0":"0","P1":"0","P2":"0","P3":"0","P4":"0","P5":"0","P6":"0","P7":"0","P8":"0","P9":"0","GMT":"+01"}}}' ) errCom = EsperaRespuesta("Programming", "", "") time.sleep(1) client.publish(sombraDel[x], "") #publish (Borrar Sombra) time.sleep(1) client.publish( sombraUp[x], '{"state":{"reported":{"M":"0","A":"0","EMode":"1","TPSM":"16","GMT":"+01"}}}' ) #publish (se pone una sombra por defecto) time.sleep(1) PintaryGuardarResultado(imeis[x], "BorrarSombra", errCom)
def ProbarSelenoide(client, imeis): global imeix imeisAveriados = [] eAutoManu = input( "\nPulsa 'm' probar de forma manual [Open->Close], por defecto será automatica [Synchro] \n> " ) print("Prueba selenoide:") dataT = obtenerDataT(imeis) for x in range(len(imeis)): imeisAveriados.append(False) for x in range(len(imeis)): imeix = imeis[x] print(str(x + 1) + ": " + imeis[x] + "....................") print("Nota:Coloca el selenoide al siguiente dispositivo.") CparaContinuar() if eAutoManu == "m": for n in range(2): if n == 0: client.publish( dataT[x], '{"state":{"reported":{"M":"0","A":"1","GMT":"+01"}}}' ) #publish (Se abren en todas las valvulas) imeisAveriados[x] = EsperaRespuesta( "Programming", "Manual: Valve open", "") elif n == 1: client.publish( dataT[x], '{"state":{"reported":{"M":"0","A":"0","GMT":"+01"}}}' ) #publish (Se abren en todas las valvulas) imeisAveriados[x] = EsperaRespuesta( "Programming", "Manual: Valve closed", "") time.sleep(1) if imeisAveriados[x]: break else: client.publish( dataT[x], '{"state":{"reported":{"GMT":"+01","Com":"IniSincro"}}}' ) #publish (Se abren en todas las valvulas) imeisAveriados[x] = EsperaRespuesta("Programming", "Synchronized valve", "") time.sleep(1) PintaryGuardarResultado(imeis[x], "PruebaSelenoide", imeisAveriados[x]) ElimIMEISconError(imeis, imeisAveriados)
def ProbarContador(client, imeis): global valorCont, imeix contOk, imeisAveriados = [], [] dataT = obtenerDataT(imeis) for x in range(len(imeis)): contOk.append(False) imeisAveriados.append(False) print("Prueba Contador:") for n in range(3): print("Parte " + str(n + 1) + ":") if n == 0 or n == 2: for x in range(len(imeis)): if imeisAveriados[x] == False: imeix = imeis[x] print( str(x + 1) + ": " + imeis[x] + "....................") client.publish( dataT[x], '{"state":{"reported":{"GMT":"+01","Com":"RESETCOUNTER"}}}' ) #publish (Borra el contador) imeisAveriados[x] = EsperaRespuesta("Programming", "", "") time.sleep(1) if imeisAveriados[x] == False: client.publish(dataT[x], '{"state":{"reported":{}}}' ) #publish (Actualiza los valores) imeisAveriados[x] = EsperaRespuesta( "Programming", "", "") time.sleep(1) elif n == 1: algunOk = False for x in range(len(imeis)): if imeisAveriados[x] == False: algunOk = True break if algunOk: print("Lista de Imeis:") for x in range(len(imeis)): if imeisAveriados[x] == False: print(imeis[x]) print( "\nNota:Junta 5 veces los cables de caudal de los dispositivos." ) CparaContinuar() for x in range(len(imeis)): if imeisAveriados[x] == False: imeix = imeis[x] print( str(x + 1) + ": " + imeis[x] + "....................") client.publish(dataT[x], '{"state":{"reported":{}}}' ) #publish (Actualiza los valores) imeisAveriados[x] = EsperaRespuesta( "Programming", "", "") if int(valorCont) > 1: contOk[x] = True time.sleep(1) print("Resultado de las pruebas__") for x in range(len(imeis)): if contOk[x] and imeisAveriados[x] == False: print(imeis[x] + ": Ok test") GuardarLogExcel(imeis[x], "ProbarContador(Ok)") else: print(imeis[x] + ": Failed test") GuardarLogExcel(imeis[x], "ProbarContador(Failed)") ElimIMEISconError(imeis, imeisAveriados)