Olá, não achei a solução através de SQL mas como eu estou desenvolvendo em Django consegui resolver usando só python mesmo.
No arquivo views.py eu usei este trecho de código:
for item in registros_por_item:
tempo_ligado = [] #LISTA COM OS INTERVALOS DE TEMPO QUE O ITEM FICOU LIGADO
total_tempo_ligado = timedelta() #VARIAVEL COM A SOMA DOS INTERVALOS
j=0
try:
if item[0].tarefa == 'desligou':
tempo_ligado.append(item[0].dia - dia_inicio)
for i in range(len(item)):
if item[i].tarefa == 'desligou':
if i > 0:
tempo_ligado.append(item[i].dia - item[i-1].dia)
j=i
if item[j].tarefa == 'ligou':
tempo_ligado.append(dia_fim - item[j].dia)
except IndexError:
pass
for i in tempo_ligado:
total_tempo_ligado += i
gasto_por_item.append(total_tempo_ligado) #LISTA COM O TOTAL DE HORAS LIGADO DE CADA ITEM
for a in range(len(registros_por_item)):
dicionario[itens[a].descricao]=gasto_por_item[a],arredonda( (float(itens[a].potencia)/1000)*gasto_por_item[a].seconds/3600 )
No template eu adicionei este trecho:
<h1>Consumo em Horas</h1>
<ul>
{% for key, value in dicionario.items %}
<li><b>{{key}}</b> - {{value.0}}</li>
{% endfor %}
</ul>
<h1>Consumo em KW/h</h1>
<ul>
{% for key, value in dicionario.items %}
<li><b>{{key}}</b> - {{value.1}}</li>
{% endfor %}
</ul>
O resultado ficou assim:
Agora falta só arrumar uns detalhes. Obrigado a todos que ajudaram.