Erste KI-basierte Solarprognose die selbst lernt und deine Anlage kennenlernt - veröffentlicht-!

Statistik Sensoren

- Tagesertrag Solar
DC kwh Sensor (Verbrauchszähler →Täglich)

  • Netzbezug heute
    Was heute bezogen wurde Integral →Verbrauchszähler → Täglich

  • Netzbezug Jahr
    siehe Oben nur Jahreszähler

  • Akkuladung Sonne
    Hier habe ich einen Watt Sensor erstellt + Integral →Verbrauchszähler täglich

{% set LADE = states('sensor.hoymiles_batterie_ladeleistung') | float(0) %}
{% set NETZ = states('sensor.hoymiles_netzleistung') | float(0) %}
{% set SOLAR = states('sensor.bkw_produktion') | float(0) %}

{# Wir berechnen zuerst, wie viel Netzstrom in den Akku fließt (dein vorhandener Sensor) #}
{% set NETZ_ANTEIL = 0 %}
{% if (LADE > 20) and (NETZ > 20) %}
  {% set NETZ_ANTEIL = [LADE - SOLAR, 0] | max %}
{% endif %}

{# Die reine Solar-Ladung ist die Gesamtladeleistung minus dem Netzanteil #}
{% set SOLAR_LADELEISTUNG = (LADE - NETZ_ANTEIL) | round(1) %}

{# Ausgabe nur, wenn aktiv geladen wird (> 30W) #}
{% if LADE > 30 %}
  {{ [SOLAR_LADELEISTUNG, 0] | max }}
{% else %}
  0
{% endif %}
  • Akkuladung Netz
    Analog zu Oben mit Folgenden Template
{% set LADE = states('sensor.hoymiles_batterie_ladeleistung') | float(0) %}
{% set NETZ = states('sensor.hoymiles_netzleistung') | float(0) %}
{% set SOLAR = states('sensor.bkw_produktion') | float(0) %}

{# Die Netzladeleistung ist die Ladeleistung minus der Solarleistung. #}
{% set DIFF = (LADE - SOLAR) | round(1) %}

{# Die Ausgabe ist nur erlaubt, wenn aktiv geladen (LADE > 50W) UND Netzbezug stattfindet (NETZ > 50W). #}
{% if (LADE > 30) and (NETZ > 30) %}
  {# Wir geben den positiven Wert der Differenz aus, mindestens aber 0, falls die Rechnung negativ ist #}
  {{ [DIFF, 0] | max }}
{% else %}
  {# Wenn die Bedingungen nicht erfüllt sind (z.B. Akku lädt gerade nicht), ist der Wert 0. #}
  0
{% endif %}

Strompreis
Ist ein Sensor, der aus einer Input number ein ct/kWh macht

{{ states('input_number.aktueller_strompreis') | float(0) * 100 }}

Weather

Ist einfach ein Wetter was du im HA integriert hast.

1 „Gefällt mir“

Das dachte ich mir schon fast, nur auf dem ersten Screenshoot (kein Raspi) erklärt sich mir nicht der Wert bei “davon Netz”, der kann ja nicht höher sein als der Gesamtverbrauch, maximal Gesamtverbrauch + Solar ?!
Bei “Übersicht und Finanzen” stehen auch diese zu hohen Werte, Einspeisung kann auch nicht 22kWh sein in diesem Jahr (das erst zwei Tage hat), mir scheint, da werden Daten von letztem Jahr mitgenommen?!
Bei meinem zweiten (nicht Raspi) System, sehen die Werte alle plausibel aus bis auf “kwh Einspeisung” die liegt real dieses jahr bei 0,0002kWh

Ich kann dich beruhigen,
bei meinem Raspi System passt es auch noch nicht.
Wir warten einfach ab. :upside_down_face:

Danke @Gurumir für dein Lob und Feedback!!! Viel Spaß mit der neuen Version! - Fairer Weise muss ich aber sagen, dass es aktuell mit dem Lernen auch durchaus noch etwas dauern kann, da in weiten Teilen das Wetter echt " schwierig ist.

Zara

Bei Energiefluss? Doch, da steht auch etwas drin.

Wie gesagt, ich denke, dass das schon passt. Denn gesamtheitlich zeigt er mir ja was an:

Wenn ich die Prognose mit den o.g. Gruppenprognosen zusammenzähle, kommt da das gleiche raus. Also grob aus dem Kopf jedenfalls.

yield ist Energie nicht Leistung!

Da hab ich auch was stehen:

1 „Gefällt mir“

Service-Tweet :wink:

Einige Systeme, oder Systeme mit vielen Integrationen als auch Proxmox auf “kleiner” HW haben um 23:30 Uhr einen Fehler geworfen… Ich habe mir die LOG`s angesehen:

Logger: homeassistant.components.go2rtc.server
Quelle: components/go2rtc/server.py:344
Integration: go2rtc (Dokumentation, Probleme)
Erstmals aufgetreten: 2. Januar 2026 um 23:31:02 (1 Vorkommnis)
Zuletzt protokolliert: 2. Januar 2026 um 23:31:02

Go2rtc server didn't terminate gracefully. Killing it

oder:

Logger: homeassistant.components.hassio.coordinator
Quelle: helpers/update_coordinator.py:461
Integration: Home Assistant Supervisor (Dokumentation, Probleme)
Erstmals aufgetreten: 2. Januar 2026 um 23:30:49 (1 Vorkommnis)
Zuletzt protokolliert: 2. Januar 2026 um 23:30:49

Error fetching hassio data: Error on Supervisor API:

Das sind nur Info-Logs von go2rtc (INF = Info, kein Fehler), die zeigen, dass der Dienst gestartet wurde und dann wieder beendet wurde (“terminated”). Dabei handelt es sich aber nicht um einen Dienst meiner Integration!

Was ist der Auslöser / hat es mit der Integration zu tun?

JaEin… der EOD verbraucht für ca. 5 - 20 Sek die Leistung die das System “anbietet”.
Hat man in Proxmox eine falsche Zuweisung - kann es im Kontext mit vielen anderen Integrationen " Eng" werden.
Gleiches gilt für schwächer HW insgesamt.

Es handelt sich aber NICHT um einen Absturz oder Hängen! Es wird “nur” anders Priorisiert.
Das kann bei der einen oder anderen nicht “sauber” programmierten Integration zu sogenannten “Hic-Ups” führen.

Es ist also ein Leistungsthema das sehr viele unabhängige Gründe haben kann zum Beispiel:

  • Code (allg),
  • Kernel,
  • fremde Integrationen
  • fehlerhafte Templates
  • viele Yaml-Spielerein
  • viele Berechnungen

ich kann es daher nicht pauschal identifizieren, da ich nicht weiß wer von euch welche Integrationen laufen hat, ob Proxmox korrekt konfiguriert ist, welche Treiber ihr nutzt,.. ect ect ect..

Daher kann ich auch nicht Debuggen… was ich aber machen kann und werde ist folgendes:

Ich werde einen sleep einbauen, damit HA ein wenig “Durchatmen” kann - um eine Kettenreaktion zu vermeiden - noch mehr Last vom System zu nehmen um die maximale Kompatibilität zu erreichen.

Auswirkung:

  • Das Training wird ca. 1-2 Sekunden länger dauern (bei ~70-90 Epochen × 0.01s)
  • Der Event-Loop bekommt regelmäßig Kontrolle zurück
  • Der Supervisor sollte keine Timeouts mehr bekommen (von anderen Integrationen,..)

Das Training läuft dann “smoother” und gibt dem System zwischen den Berechnungen Zeit zum Atmen. - so bleibt es kompatibel mit möglichst vielen Systemen und HA Supervisor bleibt toleranter - ohne allgemeine Drama-Meldungen.

Fazit:
Aktuell schaut es “hässlich” aus, ist aber kein BUG oder Problem. Passieren tut da nichts..

Zara

4 „Gefällt mir“

Kurze Frage, ist es normal das hier 0 von 50 Samples bleibt und bei AI Samples auch auf 0 bleibt?

du findest die aktuellen Samples die Vorhanden sind nur in der Log!
z.B.:

2026-01-02 23:30:00 - custom_components.solar_forecast_ml.production.production_scheduled_tasks - WARNING - AI model training incomplete: Need 50 samples, got 36

Ja das hab ich auch gesehen, auch die Warnung um 23:30 Uhr das noch nicht genug Samples verfügbar sind kommt. Laut der Meldung 7 von 50 Samples.

Hier auch noch 0/50, aber mal schauen heute ist die Sonne wieder da.

2026-01-02 23:30:00 - custom_components.solar_forecast_ml.ai.ai_predictor - INFO - AI training started: 1 outputs
2026-01-02 23:30:00 - custom_components.solar_forecast_ml.ai.ai_predictor - INFO - Prepared 0 training samples from 0 days, 1 outputs
2026-01-02 23:30:00 - custom_components.solar_forecast_ml.production.production_scheduled_tasks - WARNING - AI model training incomplete: Need 50 samples, got 0

ich wiederhole mich, die Samples werden im Moment nur noch in der Log angezeigt!

1 „Gefällt mir“

Moin,
die Berechnung “Solar direkt ins Haus” funktioniert noch nicht richtig

@Tom-HA

Was hat es hiermit auf sich? bis zum Update auf 12.4.0 gestern hatte ich hier fast rund 150 von 200 Training Readiness - nun ist es nicht mehr verfügbar.

Beginnt es hier wieder komplett von 0?

Diese Sensoren werden nicht mehr zur Verfügung gestellt und können gelöscht werden

1 „Gefällt mir“

siehe hier

training readiness, ml service status und pattern count kann gelöscht werden

Ah okay, hatte mich schon gewundert - muss dazu sagen, dass ich die vergangenen Tage wenig hier drin war, weil unterwegs usw. Daher habe ich noch so rund 200 Beiträge bisher nicht lesen können und das eben erst gesehen, dass es da nichts mehr anzeigt wurde.

Dann bin ich mal gespannt ob sich das hier mit den neuen Versionen bessert.

Ich hab mir eine Entität für diese Leistung angelegt. Möchte aber jetzt gerne die “automatisch Berechnung” nutzen, nur kann ich die Entität nicht aus dem Feld löschen. Ich kann nur eine andere "drüber” speichern.
Jemand eine Idee?

Leerzeichen eintragen

1 „Gefällt mir“