Gesamtwerte
{# Temperatur #}
{% if totals.temperature is not null %}
{% endif %}
{% if totals.pressure is not null %}
{% endif %}
{% if totals.massKg is not null %}
{% endif %}
{% if totals.fillLevelPercent is not null %}
{% endif %}
Durchschnittstemperatur
{{ totals.temperature|number_format(2) }}°C
Durchschnittsdruck
{{ totals.pressure|number_format(2) }} bar(g)
Aktuelle Gesamtmasse
{{ totals.massKg|number_format(2) }} kg
{% if totals.maxMassAt0C is defined and totals.maxMassAt0C is not null %}
{% if totals.usableMassKg is not null %}
{{ totals.maxMassAt0C|number_format(2) }} kg bei 0°C
{% endif %}
Nutzbar: {{ totals.usableMassKg|number_format(2) }} kg
{% endif %}
Füllstand
{{ totals.fillLevelPercent|number_format(1) }}%
{% for group in sensorGroups.groups %}
{% set sensorNames = [] %}
{% if group.temperatureSensors is defined %}
{% for sensor in group.temperatureSensors %}
{% set sensorNames = sensorNames|merge([(sensor.hatName ?? '')|lower, ('ch' ~ (sensor.channel ?? ''))|lower]) %}
{% endfor %}
{% endif %}
{% if group.pressureSensors is defined %}
{% for sensor in group.pressureSensors %}
{% set sensorNames = sensorNames|merge([(sensor.hatName ?? '')|lower, ('ch' ~ (sensor.channel ?? ''))|lower]) %}
{% endfor %}
{% endif %}
{# Alarm-Status #}
{% if group.alarmsEnabled and group.alarmThresholds %}
{% set hasAlarm = false %}
{% if group.temperatureAverage is not null %}
{% if group.alarmThresholds.temperature.min is defined and group.temperatureAverage < group.alarmThresholds.temperature.min %}
{% set hasAlarm = true %}
{% elseif group.alarmThresholds.temperature.max is defined and group.temperatureAverage > group.alarmThresholds.temperature.max %}
{% set hasAlarm = true %}
{% endif %}
{% endif %}
{% if group.pressureAverage is not null %}
{% if group.alarmThresholds.pressure.min is defined and group.pressureAverage < group.alarmThresholds.pressure.min %}
{% set hasAlarm = true %}
{% elseif group.alarmThresholds.pressure.max is defined and group.pressureAverage > group.alarmThresholds.pressure.max %}
{% set hasAlarm = true %}
{% endif %}
{% endif %}
{% endfor %}
{% else %}
{{ group.name }}
{% if group.description %}{{ group.description }}
{% endif %}
{{ hasAlarm ? 'Alarm' : 'OK' }}
{% endif %}
{# Alarm-Warnungen #}
{% if group.alarms is defined and group.alarms is not empty %}
{% endif %}
{# Keine API-Sensordaten (Gruppe konfiguriert, aber API liefert nichts) #}
{% if (group.temperatureSensors is not defined or group.temperatureSensors is empty) and (group.pressureSensors is not defined or group.pressureSensors is empty) %}
{% endif %}
{# Druck-Sensoren #}
{% if group.pressureSensors is defined and group.pressureSensors is not empty %}
{% endif %}
{# H₂-Masse Sektion #}
{% if group.massKg is defined and group.massKg is not null %}
{% if group.tankCount is defined and group.tankCount is not null %}
{% endif %}
{% endif %}
Alarm!
-
{% for alarm in group.alarms %}
- {{ alarm.message }} {% endfor %}
Keine Sensordaten von der API (API offline oder HAT-Namen/Channels passen nicht zur Konfiguration).
{% endif %}
{# Temperatur-Sensoren #}
{% if group.temperatureSensors is defined and group.temperatureSensors is not empty %}
Temperatursensoren {% if group.alarmThresholds and group.alarmThresholds.temperature %} {% endif %}
{% if group.showAverage and group.temperatureAverage is not null and group.temperatureSensors|length > 1 %}
Durchschnitt:
{{ group.temperatureAverage|number_format(2) }}°C
{% endif %}
{# Zeige immer die aktuellen Werte an, auch wenn showIndividual false ist #}
{% for sensor in group.temperatureSensors %}
{% if sensor.channel is not null %}Ch{{ sensor.channel }}{% endif %}
{% if sensor.value is defined and sensor.value is not null %}
{{ sensor.value|number_format(2) }}{% if sensor.unit %}{{ sensor.unit }}{% else %}°C{% endif %}
{% else %}
--
{% endif %}
{% endfor %}
Drucksensoren {% if group.alarmThresholds and group.alarmThresholds.pressure %} {% endif %}
{% if group.showAverage and group.pressureAverage is not null and group.pressureSensors|length > 1 %}
Durchschnitt:
{{ group.pressureAverage|number_format(2) }} bar
{% endif %}
{# Zeige immer die aktuellen Werte an, auch wenn showIndividual false ist #}
{% for sensor in group.pressureSensors %}
{% if sensor.channel is not null %}Ch{{ sensor.channel }}{% endif %}
{% if sensor.value is defined and sensor.value is not null %}
{% set displayUnit = sensor.unit ? (sensor.unit|lower == 'bar' ? 'bar (g)' : sensor.unit) : ' bar' %}
{{ sensor.value|number_format(2) }}{{ displayUnit }}
{% else %}
--
{% endif %}
{% endfor %}
H₂-Masse
Gesamt:
{{ group.massKg|number_format(2) }} kg
Nutzbar:
{{ (group.usableMassKg ?? (group.massKg - 60.0))|number_format(2) }} kg
Füllstand:
{{ (group.fillLevelPercent ?? ((group.massKg / 1246.0) * 100))|number_format(1) }}%
Behälteranzahl:
{{ group.tankCount }}
Sensor-Sektionen
Keine Sensor-Sektionen verfügbar
Es wurden keine Sensor-Sektionen für diesen Datalogger konfiguriert oder keine Daten sind verfügbar.
{% if is_granted('ROLE_ADMIN') %} Sektionen konfigurieren {% endif %}
Debug: Sektionen in DB gefunden, aber nicht verarbeitet:
{% endif %}
-
{% for group in allGroups %}
-
{{ group.name }} (ID: {{ group.id }}, Type: {{ group.type ?? 'null' }}, Active: {{ group.active ? 'Ja' : 'Nein' }})
Sensoren in Config: {{ group.sensors|length }}, Show Average: {{ group.showAverage ? 'Ja' : 'Nein' }}, Show Individual: {{ group.showIndividual ? 'Ja' : 'Nein' }}
{% endfor %}