{% extends "layout.html" %} {% block title %}OptiWarm - Dashboard{% endblock %} {% block content %}
{{ active_zones }}/{{ active_locations }}
{{ active_boilers }}/{{ total_boilers }}
{% if avg_temperature %}{{ avg_temperature }}°C{% else %}--°C{% endif %}
{% if billing_period_cost %}{{ billing_period_cost }}{% else %}--{% endif %}
| Location | Zone | Current Temp | Min Required |
|---|---|---|---|
| {{ zone.location_name }} | {{ zone.zone_name }} | {% if zone.current_temp %} {{ zone.current_temp }}°C {% else %} -- {% endif %} | {% if zone.min_required_temp %} {{ zone.min_required_temp }}°C {% else %} -- {% endif %} |
No heating zones active
Zones will appear here when heating rules are active
| Boiler | Location | Hours | Session Cost |
|---|---|---|---|
| {{ boiler.name }} | {{ boiler.location_name }} | {{ boiler.hours_running }}h | {{ boiler.session_cost }} |
No active heating
Boilers will appear here when they are actively heating
| Timestamp | Location | Zone | Event | Details |
|---|---|---|---|---|
| {{ event.day_exec.strftime('%Y-%m-%d') if event.day_exec else 'N/A' }} {% if not event.time_from and not event.time_to %} All Day {% else %} ( {% if event.time_from %} {{ event.time_from.strftime('%H:%M') }} {% else %} 00:00{% endif %} - {% if event.time_to %} {{ event.time_to.strftime('%H:%M') }} {% else %} 24:00 {% endif %} ) {% endif %} | {{ event.location_name }} | {{ event.zone_name }} | {{ event.ruletype_name}} | {% if event.active %}Active{% else %}Inactive{% endif %} |
| No activity data | ||||