|
@@ -1,3 +1,4 @@
|
|
|
|
|
+# coding=utf-8
|
|
|
|
|
|
|
|
import logging
|
|
import logging
|
|
|
|
|
|
|
@@ -30,13 +31,13 @@ class MailSender:
|
|
|
|
|
|
|
|
self.mongoClient = pymongo.MongoClient(os.getenv('MONGODB_HOST'))
|
|
self.mongoClient = pymongo.MongoClient(os.getenv('MONGODB_HOST'))
|
|
|
|
|
|
|
|
- self.mongoDB = self.mongoClient["MedidoresCondusal"]
|
|
|
|
|
|
|
+ self.mongoDB = self.mongoClient["Medidores"]
|
|
|
self.meterLogsCollection = self.mongoDB["meters_logs"]
|
|
self.meterLogsCollection = self.mongoDB["meters_logs"]
|
|
|
self.schedulerCollection = self.mongoDB["mail_scheduler"]
|
|
self.schedulerCollection = self.mongoDB["mail_scheduler"]
|
|
|
|
|
|
|
|
self.now = datetime.now()
|
|
self.now = datetime.now()
|
|
|
- self.hora_inicio = "09:00:00"
|
|
|
|
|
- self.hora_fin = "08:00:00"
|
|
|
|
|
|
|
+ self.hora_inicio = "00:00:00"
|
|
|
|
|
+ self.hora_fin = "00:00:00"
|
|
|
self.ayer = self.now - timedelta(days=1)
|
|
self.ayer = self.now - timedelta(days=1)
|
|
|
|
|
|
|
|
self.sg_api_url = os.getenv("SG_API_URL")
|
|
self.sg_api_url = os.getenv("SG_API_URL")
|
|
@@ -86,8 +87,8 @@ class MailSender:
|
|
|
regs = 0
|
|
regs = 0
|
|
|
for doc in result:
|
|
for doc in result:
|
|
|
for med in doc['mediciones']:
|
|
for med in doc['mediciones']:
|
|
|
- if med['registro'] == 5001:
|
|
|
|
|
- totalEnergy = totalEnergy + float(med['lectura'])
|
|
|
|
|
|
|
+ if med['registro'] == 4999:
|
|
|
|
|
+ totalEnergy = totalEnergy + float(med['lectura'])/10
|
|
|
regs = regs + 1
|
|
regs = regs + 1
|
|
|
|
|
|
|
|
return regs, totalEnergy
|
|
return regs, totalEnergy
|
|
@@ -99,8 +100,8 @@ class MailSender:
|
|
|
|
|
|
|
|
self.logger.info("Fecha Inicio: " + finicio)
|
|
self.logger.info("Fecha Inicio: " + finicio)
|
|
|
self.logger.info("Fecha Fin: " + ffin)
|
|
self.logger.info("Fecha Fin: " + ffin)
|
|
|
-
|
|
|
|
|
- resp = self.meterLogsCollection.find({"logDate" : {"$gte":finicio, "$lte":ffin},"serialNumber": self.serialNumber, "meterLogNumber":5})
|
|
|
|
|
|
|
+ print({"logDate" : {"$gte":finicio, "$lte":ffin},"serialNumber": self.serialNumber, "meterLogNumber":2})
|
|
|
|
|
+ resp = self.meterLogsCollection.find({"logDate" : {"$gte":finicio, "$lte":ffin},"serialNumber": self.serialNumber, "meterLogNumber":2})
|
|
|
resultstr = dumps(resp)
|
|
resultstr = dumps(resp)
|
|
|
result = loads(resultstr)
|
|
result = loads(resultstr)
|
|
|
|
|
|
|
@@ -111,12 +112,12 @@ class MailSender:
|
|
|
fileToSend = "_".join([self.now.strftime("%Y%m%d"), self.serialNumber, "energy_data.csv"])
|
|
fileToSend = "_".join([self.now.strftime("%Y%m%d"), self.serialNumber, "energy_data.csv"])
|
|
|
self.logger.info("Obteniendo información de la base de datos para el medidor {0}".format(self.serialNumber))
|
|
self.logger.info("Obteniendo información de la base de datos para el medidor {0}".format(self.serialNumber))
|
|
|
result = self._getLogs()
|
|
result = self._getLogs()
|
|
|
- self.logger.info("Escribindo el archivo {0}".format(fileToSend))
|
|
|
|
|
|
|
+ self.logger.info("Escribiendo el archivo {0}".format(fileToSend))
|
|
|
self._makeCSV(fileToSend, result)
|
|
self._makeCSV(fileToSend, result)
|
|
|
_, energiaTotal = self._calculateEnergy(result)
|
|
_, energiaTotal = self._calculateEnergy(result)
|
|
|
|
|
|
|
|
recipients = []
|
|
recipients = []
|
|
|
-
|
|
|
|
|
|
|
+ self.logger.info("Leyendo información de destinatarios")
|
|
|
with open("recipients.txt",'r') as recipientList:
|
|
with open("recipients.txt",'r') as recipientList:
|
|
|
for rec in recipientList.readlines():
|
|
for rec in recipientList.readlines():
|
|
|
recipients.append({"email": rec})
|
|
recipients.append({"email": rec})
|
|
@@ -136,7 +137,7 @@ class MailSender:
|
|
|
"hora_fin": self.hora_fin,
|
|
"hora_fin": self.hora_fin,
|
|
|
"fecha_inicio": self.ayer.strftime("%Y-%m-%d ") ,
|
|
"fecha_inicio": self.ayer.strftime("%Y-%m-%d ") ,
|
|
|
"fecha_fin": self.now.strftime("%Y-%m-%d"),
|
|
"fecha_fin": self.now.strftime("%Y-%m-%d"),
|
|
|
- "button_link": "http://40.85.159.114/data/meter/" + "/" + fileToSend
|
|
|
|
|
|
|
+ "button_link": "https://energy.inverlec.solar/data/meter/" + fileToSend
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
],
|
|
],
|
|
@@ -144,18 +145,19 @@ class MailSender:
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
headers = {'Content-Type': 'application/json', 'Authorization': 'Bearer ' + self.sg_api_key}
|
|
headers = {'Content-Type': 'application/json', 'Authorization': 'Bearer ' + self.sg_api_key}
|
|
|
-
|
|
|
|
|
|
|
+ self.logger.info("Enviando correo electrónico")
|
|
|
r = requests.post(self.sg_api_url, json=data, headers=headers)
|
|
r = requests.post(self.sg_api_url, json=data, headers=headers)
|
|
|
- self.logger.info(r)
|
|
|
|
|
|
|
+ self.logger.info("El resultado del envio de correo es: {0}".format(r))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
if __name__ == "__main__":
|
|
|
- sender = MailSender("0208069934")
|
|
|
|
|
- scheduler = BlockingScheduler()
|
|
|
|
|
|
|
+ sender = MailSender("0223412115")
|
|
|
|
|
+ # scheduler = BlockingScheduler()
|
|
|
|
|
|
|
|
- scheduler.add_job(sender.sendMail, 'cron', hour=10, minute=00)# 8
|
|
|
|
|
|
|
+ # scheduler.add_job(sender.sendMail, 'cron', hour=16, minute=35)
|
|
|
# scheduler.add_job(sender.sendMail, 'cron', hour=7, minute=41)# 8
|
|
# scheduler.add_job(sender.sendMail, 'cron', hour=7, minute=41)# 8
|
|
|
|
|
|
|
|
- scheduler.start()
|
|
|
|
|
|
|
+ # scheduler.start()
|
|
|
|
|
+ sender.sendMail()
|