Hallo zusammen,
ich brauche noch ein bisschen Unterstützung bei dem Thema.
Meine Infrastruktur:
- PV-Anlage mit SMA Wechselrichter (Sunny Tripower) 10 kWp (Ost/West - Ausrichtung)
- Wallbox SMA EV Charger
- sonnenBatterie 10 (5,5 kWh)
- Home Assistant auf Raspberry Pi 4
- EOS auf proxmox VM mit Docker
Das Ziel:
- die sonnenBatterie "netzdienlich" steuern
EOS habe ich, soweit wie ich das verstanden habe, konfiguriert. Dafür hat sich die API schon mal als sehr nützlich erwiesen. Meine Infrastruktur ist also soweit dort hinterlegt. Ich habe das Interval auf 600 gestellt, weil ein Optimierungsdurchlauf ca. 120 Sek. dauert und der Server sonst kaum noch Ruhe findet.
Für die Integration in Home Assistant habe ich mich an dem Home Assistant EOS addons repository orientiert. Ich nutze das Addon nicht, weil sonst mein Raspi glühend von der Wand fällt. Die Daten werden in eine MariaDB-Datenbank auf einer anderen proxmox VM geschrieben.
Ich würde ja gerne meine Konfig für EOS, Payload für die Optimierung, oder Response von der Optimierung hier teilen, aber ich kann als Neuling noch keinen Dateien hochladen.
Für den Payload nutze ich, neben statischen Werten für preis_euro_pro_wh_akku und einspeiseverguetung_euro_pro_wh, die API vom EOS Server. Um die Werte abrufen zu können, habe ich command_line-sensoren definiert.
Bspw.:
command_line:
- sensor:
name: EOS Total Load Forecast
unique_id: eos_total_load_forecast
command: >
today=$(date +%Y-%m-%d);
after_tomorrow=$(date -d @$(($(date +%s) + 86400 + 86400)) +%Y-%m-%d)
url="http://192.168.178.10:8503/v1/prediction/list?key=load_mean_adjusted&start_datetime=${today}T00:00&end_datetime=${after_tomorrow}T00:00";
curl -s "$url" |
jq -c '[.[] | if type == "number" then (. * 100 | round) / 100 else empty end | select(.)] | .[:48] | {gesamtlast: .}'
scan_interval: 3600
value_template: >
{% set data = value | from_json %}
{% if data.gesamtlast is iterable and data.gesamtlast | length > 0 %}
{{ "%.2f"|format(data.gesamtlast[0]) }}
{% else %}
unavailable
{% endif %}
json_attributes:
- gesamtlast
Für diesen Forecast wäre es gut, wenn man die Measurement-Daten einpflegen könnte. Und hier kommt ihr ins Spiel.
Das habe ich noch nicht hinbekommen.
Gibt es hier jemanden, der mir da auf die Sprünge helfen kann?
Des Weiteren habe ich in meinen Optimierungsdaten noch keinen Anhaltspunkt gefunden, wann ich den Akku denn nun "netzdienlich" laden soll.
Das hier sind die wesentlichen Werte:
ac_charge: 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0.625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
dc_charge: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
discharge_allowed: 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
eautocharge_hours_float: null
start_solution: 6, 20, 4, 14, 0, 14, 5, 5, 20, 13, 17, 12, 8, 13, 12, 7, 12, 9, 13, 13, 13, 10, 7, 11, 12, 7, 11, 11, 13, 9, 11, 9, 11, 10, 7, 13, 13, 7, 11, 7, 8, 9, 11, 13, 7, 12, 11, 13, 16
washingstart: 16
Also, ich stehe da etwas auf dem Schlauch...