Hi,
Ich hatte vor kurzem ein ähnliches Vorhaben und habe es im HomeAssistant wie folgt gelöst:
2 Template Sensoren angelegt.
Der erste liest die Batteriedaten aus dem Json Paket aus, wenn es denn mal gesendet wird. Der zweite Template Sensor macht eine Art Erhaltung des Messwertes, weil es bei meiner Anlage immer dazu kam, das die Batterieinformation nur kurz verfügbar war und dann wieder durch ein neues Datenpaket überschrieben (ungültig, weil nicht verfügbar) wurde.
Der Inhalt der beiden Templates sieht dann wie folgt aus:
{% if states('sensor.packdata') is not none %}
{% set v = states("sensor.packdata").replace("'",'"')|from_json %}
{% for i in v %}
{% if i.sn == "DIEBATTERIESERIENNUMMER" and i.maxVol is not none and i.maxVol not in ["unknown", "unavailable"] %}
{{ (i.maxVol | float / 100) | round(2) }}
{% endif %}
{% endfor %}
{% endif %}
Der zweite Template Sensor hat diesen Inhalt:
{% set v = states('sensor.solarflow_packdata_maxvol_1') %}
{% if states('sensor.packdata') not in ['', 'unknown', 'unavailable'] and v not in ['', 'unknown', 'unavailable'] %}
{{states('sensor.solarflow_packdata_maxvol_1')}}
{% else %}
{{ states('sensor.solarflow_packdata_maxvol_1_preserve') }}
{% endif %}
Being Fragen kannst du gern auch diese. Github Issue nutzen. Dort hatte ich das teilweise auch schon hingeschrieben
https://github.com/z-master42/solarflow/issues/7#issuecomment-1962083999