def calculate_min_max_consumption_watt():
""" Returns the lowest and highest Wattage consumed for each phase. """
FIELDS = {
'total_min': ('currently_delivered', ''),
'total_max': ('currently_delivered', '-'),
'l1_max': ('phase_currently_delivered_l1', '-'),
'l2_max': ('phase_currently_delivered_l2', '-'),
'l3_max': ('phase_currently_delivered_l3', '-'),
}
data = {}
for name, args in FIELDS.items():
field, sorting = args
try:
read_at, value = ElectricityConsumption.objects.filter(**{
'{}__gt'.format(field): 0, # Skip (obvious) zero values.
'{}__isnull'.format(field): False, # And skip empty data.
}).order_by(
'{}{}'.format(sorting, field)
).values_list('read_at', field)[0]
except IndexError:
continue
data.update({
name: (
formats.date_format(timezone.localtime(read_at), 'DSMR_GRAPH_LONG_DATE_FORMAT'),
int(value * 1000)
)
})
return data
评论列表
文章目录