{% extends 'base.html.twig' %} {% import 'components/datalogger_tabs.html.twig' as tabs %} {% block title %}BMS / Charger - {{ datalogger.name }}{% endblock %} {% block content %} {{ tabs.renderTabs(datalogger, app.request.attributes.get('_route')) }}
{# Victron – Ladezustand, Spannung, Ladestatus #}

Victron

{% if victron.error is not defined and victron.victron is defined %} {{ victron.victron.connected ?? false ? 'Verbunden' : 'Nicht verbunden' }} {% endif %}
{% if victron.error is defined %}

{{ victron.error }}

{% elseif victron.victron is defined %} {% set v = victron.victron %}
{% if v.battery_soc_estimated_pct is defined or v.battery_soc_pct is defined %}
Batterie SOC (geschätzt) {{ v.battery_soc_estimated_pct ?? v.battery_soc_pct ?? '-' }}%
{% endif %} {% if v.battery_voltage_v is defined %}
Batteriespannung {{ v.battery_voltage_v }} V
{% endif %} {% if v.battery_current_a is defined %}
Batteriestrom {{ v.battery_current_a }} A
{% endif %} {% if v.battery_power_w is defined %}
Batterieleistung {{ v.battery_power_w }} W
{% endif %} {% if v.charge_state_text is defined %}
Ladezustand {{ v.charge_state_text }}
{% endif %} {% if v.error_text is defined and v.error_text %}
Fehler {{ v.error_text }} (Code: {{ v.error_code ?? '-' }})
{% endif %} {% if v.serial_number is defined %}
Seriennummer {{ v.serial_number }}
{% endif %} {% if v.port is defined %}
Port {{ v.port }}
{% endif %}
{% if v.battery_soc_estimation is defined and v.battery_soc_estimation is iterable %}
SOC-Schätzung (Details)
{{ v.battery_soc_estimation|json_encode(2) }}
{% endif %} {% else %}

Keine Victron-Daten vorhanden.

{% endif %}
{# BMS – Batterien, verbundene Geräte, Fehler #}

BMS (Battery Management System)

{% if bms.battery_bms is defined %} {{ bms.battery_bms.connected ?? false ? 'Verbunden' : 'Nicht verbunden' }} {% endif %}
{% if bms.battery_bms is defined %} {% set bb = bms.battery_bms %} {% set batteries = bb.batteries is defined and bb.batteries is iterable ? bb.batteries : [] %} {% set visibleBatteryCount = batteries|length > 0 ? batteries|length : (bb.battery_count ?? 0) %} {% if bms.error is defined %}

{{ bms.error }}

{% endif %} {% if bb.battery_snapshot_fallback is defined and bb.battery_snapshot_fallback %}

Batterieinformationen stammen aus dem letzten erfolgreichen BMS-Snapshot{% if bb.battery_snapshot_stored_at is defined and bb.battery_snapshot_stored_at %} ({{ bb.battery_snapshot_stored_at|date('d.m.Y H:i:s') }}){% endif %}.

{% endif %}
Batterieanzahl {{ visibleBatteryCount }}
{% if bb.link_quality_pct is defined %}
Link-Qualität {{ bb.link_quality_pct }}%
{% endif %} {% if bb.timestamp is defined %}
Zeitstempel {{ bb.timestamp }}
{% endif %}
{% if batteries|length > 0 %}

Batterien

{% for bat in batteries %} {% endfor %}
Name / MAC SOC % Spannung Weitere
{{ bat.name ?? bat.mac ?? '-' }} {{ bat.battery_level ?? bat.soc_pct ?? bat.soc ?? '-' }} {{ bat.voltage_v ?? bat.voltage ?? '-' }}
{{ bat.connected ?? false ? 'Connected' : 'Disconnected' }} {{ bat.problem ?? false ? 'Problem' : 'OK' }}
{% if bat.error is defined and bat.error %}
Hinweis: {{ bat.error }}{% if bat.stale is defined and bat.stale %} (stale){% endif %}
{% endif %} {% if bat.snapshot_fallback is defined and bat.snapshot_fallback %}
Quelle: letzter erfolgreicher Snapshot
{% endif %} {% if bat.current_a is defined %}
Strom: {{ bat.current_a }} A
{% endif %} {% if bat.power_w is defined %}
Leistung: {{ bat.power_w }} W
{% endif %} {% if bat.temperature_c is defined %}
Temp: {{ bat.temperature_c }} °C
{% endif %} {% if bat.link_quality_pct is defined %}
Link: {{ bat.link_quality_pct }}%
{% endif %} {% if bat.cycles is defined %}
Zyklen: {{ bat.cycles }}
{% endif %} {% if bat.cell_count is defined %}
Zellen: {{ bat.cell_count }}
{% endif %} {% if bat.delta_voltage is defined %}
Delta V: {{ bat.delta_voltage }} V
{% endif %}
{% if bat.cell_voltages is defined and bat.cell_voltages is iterable and bat.cell_voltages|length > 0 %} {% set sortedCellVoltages = bat.cell_voltages|sort %}
Zellspannung: min {{ (sortedCellVoltages|first)|number_format(3, '.', '') }} V / max {{ (sortedCellVoltages|last)|number_format(3, '.', '') }} V
{% endif %} {% if bat.temp_values is defined and bat.temp_values is iterable and bat.temp_values|length > 0 %}
Temp-Sensoren: {{ bat.temp_values|join(' / ') }} °C
{% endif %}
Rohdaten
{{ bat|json_encode(2) }}
{% endif %} {% if bb.errors is defined and bb.errors|length > 0 %}

Fehler / Geräte

    {% for err in bb.errors %}
  • {{ err.name ?? err.mac ?? 'Unbekannt' }} {% if err.link_quality_pct is defined %} (Link: {{ err.link_quality_pct }}%){% endif %}
    {{ err.error }}
  • {% endfor %}
{% endif %} {% if bb.discovered_devices is defined and bb.discovered_devices|length > 0 %}

Erkannte Geräte

{% set discoveredDeviceLabels = [] %} {% for dev in bb.discovered_devices %} {% if dev is iterable %} {% set label = dev.name ?? dev.mac ?? dev.id ?? (dev|json_encode) %} {% set discoveredDeviceLabels = discoveredDeviceLabels|merge([label]) %} {% else %} {% set discoveredDeviceLabels = discoveredDeviceLabels|merge([dev]) %} {% endif %} {% endfor %}

{{ discoveredDeviceLabels|join(', ') }}

{% endif %} {% else %}

Keine BMS-Daten vorhanden.

{% endif %}
{% endblock %}