Bladeren bron

Se ajustan multiplicadores para Wh y VARh

Oscar Alfredo Leiva Salomón 6 jaren geleden
bovenliggende
commit
76017c4f20
2 gewijzigde bestanden met toevoegingen van 5 en 77 verwijderingen
  1. 0 75
      mongotest.py
  2. 5 2
      sendMail.py

+ 0 - 75
mongotest.py

@@ -1,75 +0,0 @@
-from mongoengine import connect, EmbeddedDocument, Document, StringField, IntField, ListField, EmbeddedDocumentField
-
-connect('Medidores', host='192.168.100.5', port=27017, username='mailScheduler', password='pqowieuryt')
-
-class Medicion(EmbeddedDocument):
-    descripcion = StringField()
-    registro = IntField()
-    lectura = StringField()
-
-class Logs(Document):
-    meta = {'collection': 'meters_logs'}
-    serialNumber = StringField()
-    meterLogNumber = IntField()
-    logDate = StringField()
-    saveDate = StringField()
-    mediciones = ListField(EmbeddedDocumentField(Medicion))
-
-
-class LogRetriever:
-
-    def __init__(self, serial_number, log_number, register):
-        self.serial_number = serial_number
-        self.log_number = log_number
-        self.register = register
-
-    def _make_pipeline(self, start_date, end_date, aggregate_by):
-        pipeline= [
-            {'$project':
-                {
-                    'serialNumber': 1,
-                    'meterLogNumber': 1,
-                    'mediciones': 1,
-                    'logDate': 1,
-                    'hour': {'$hour': {'$dateFromString':  {'dateString': '$logDate'}}},
-                    'day': {'$dayOfMonth': {'$dateFromString':  {'dateString': '$logDate'}}},
-                    'month': {'$month': {'$dateFromString':  {'dateString': '$logDate'}}},
-                    'year': {'$year': {'$dateFromString':  {'dateString': '$logDate'}}},
-                }
-            },
-            {'$unwind': '$mediciones' },
-            {'$match': {
-                'serialNumber': self.serial_number, 
-                'meterLogNumber': self.log_number, 
-                "mediciones.registro": self.register, 
-                'logDate': {'$gte': start_date, '$lt': end_date}}},
-            {'$group': 
-                {
-                    '_id': aggregate_by,
-                    'date': { '$min': '$logDate'},
-                    'total': {'$sum': { '$toInt': "$mediciones.lectura"}}
-                }
-            },     
-            {'$sort': { 'date': -1 }}
-        ]
-
-        return pipeline
-
-        def getByDay(self, start_date, end_date):
-            aggregate_by = {
-                'hour': None,
-                'day': '$day',
-                'month': None,
-                'year': None
-            }
-
-serial_number = '0223406118'
-log_number = 2
-register = 4999
-start_date = '2019-07-22 00:00:00' # String
-end_date = '2019-07-23 00:00:00' # String
-
-
-
-
-mediciones = Logs.objects.aggregate(*pipeline)

+ 5 - 2
sendMail.py

@@ -76,7 +76,10 @@ class MailSender:
                 line=[]
                 line.append(doc['logDate'])
                 for med in doc['mediciones']:
-                    line.append(med['lectura'])
+                    if med['registro'] in [4999, 5007, 5001, 5009]:
+                        line.append(float(med['lectura'])*100)
+                    else:
+                        line.append(med['lectura'])
                 writer.writerow(line)
             out.close()
        
@@ -88,7 +91,7 @@ class MailSender:
         for doc in result:
             for med in doc['mediciones']:
                 if med['registro'] == 4999:
-                    totalEnergy = totalEnergy + float(med['lectura'])/10
+                    totalEnergy = totalEnergy + float(med['lectura'])*0.1
                     regs = regs + 1
         
         return regs, totalEnergy