статус с резервуара теперь берется из бд сайта

This commit is contained in:
2024-01-23 13:48:05 +03:00
parent f7dbad696a
commit 71e9fc37e9
8 changed files with 93 additions and 69 deletions

View File

@@ -1,5 +1,5 @@
from django.db import models
from datetime import datetime
from datetime import datetime, timedelta
# select UNIX_TIMESTAMP(datetime), level_percentage, radar_low_reg, status_reg from tcs
@@ -12,6 +12,26 @@ class MbTankRecord(models.Model):
def __str__(self):
return f"({self.id}) {self.dt}: radar={self.radar_raw}, level={self.level}"
@staticmethod
def load_stats():
result = {
'last_update': None, # последнее обновление, unix time
'level': None, # текущее показание, пересчитанное в %
'radar': None, # текущее показание с радара
'status': None, # статусный регистр
'last_radar_values': [] # последние показания за 15 минут
}
last_save = MbTankRecord.objects.order_by('-dt').first()
if last_save is not None:
result['last_update'] = last_save.dt.timestamp()
result['level'] = last_save.level
result['radar'] = last_save.radar_raw
result['status'] = last_save.status
query = MbTankRecord.objects.filter(dt__gt=(datetime.now() - timedelta(minutes=15))).order_by('dt')
result['last_radar_values'] = [(int(item.dt.timestamp()), item.radar_raw) for item in query]
return result
class MbPumpRecord(models.Model):
dt = models.DateTimeField(verbose_name="Время записи", default=datetime.now)