{% macro tile(label, value, unit) %}
{{ label }}
{% if value is none %}—{% else %}{{ value }}{% endif %} {% if unit %}{{ unit }}{% endif %}
{% endmacro %} {% if error %} {% endif %} {% if tiles %} {% if tiles.stale or tiles.error %}

Showing last-known values {% if tiles.data_ts %}from {{ tiles.data_ts.strftime('%Y-%m-%d %H:%M UTC') }}{% endif %} {% if tiles.error %} — {{ tiles.error }}{% endif %}.

{% endif %}
{{ tile('Current power', '%.2f'|format(tiles.current_power) if tiles.current_power is not none else none, tiles.current_power_unit) }} {{ tile("Today's yield", '%.2f'|format(tiles.today_energy) if tiles.today_energy is not none else none, tiles.today_energy_unit) }} {{ tile('This month', '%.1f'|format(tiles.month_energy) if tiles.month_energy is not none else none, tiles.month_energy_unit) }} {{ tile('Battery SOC', '%.0f'|format(tiles.battery_soc_pct) if tiles.battery_soc_pct is not none else none, '%') }} {{ tile('Open alarms', tiles.alarm_count if tiles.alarm_count is not none else none, '') }}
{% if tiles.data_ts %} Last reading: {{ tiles.data_ts.strftime('%Y-%m-%d %H:%M UTC') }}. {% endif %} Refreshes every 30 seconds. {% elif not error %}

No live data yet.

{% endif %}