Besteht Interesse, dass ich Erkläre wie man selbstlernende Solar-Prognosen erhält?

DISCLAIMER:
Das ist kein Projekt für Anfänger. Es sind Kenntnisse in MQTT, Python, Datenbankstrukturen, SSH und Model-Training notwendig.

Problem:
Die integrierte Solar-Prognose ist ziemlich ungenau…

Lösung:
Eine intelligente selbstlernde Prognose auf Basis von Machine-Learnig

Wer Interesse daran hat, wie man soetwas umsetzen kann - dann ist das hier der Thread. Einfach melden

3 „Gefällt mir“

Ja, das würde mich auf jeden Fall interessieren :+1:

Du kennst das EOS-Projekt vom Akkudoktor? Akkudoktor-EOS · GitHub

Basiert Dein Projekt da drauf? Ist das ähnlich angelegt oder ganz was anderes?

Nein, dass kenne ich nicht. Ich habe auch keine Beziehungen zum " Akkudoktor" oder irgendwelche anderen Youtuber / Streamer / … ich mache meine eigenen Projekte ohne irgendwelche monetären Ansprüche (durch YouTube, Kooperationen,.. wie es Andreas und Co machen) ich habe nicht einmal einen Youtube-Channel - ich komme aus der Linux-Community seit mehr als 25 Jahre und glaube an Open-Source.

Also die Antwort ist ein sehr klares und deutliche NEIN! - ich kenne es nicht einmal. Meine Projekte sind eigene Projekte die ein persönliches Problem lösen, die ich gern teile das andere sie weiterentwickeln oder für sich nutzen, da sie ein ähnliches Problem haben oder sagen " cooler Kram"

2 „Gefällt mir“

Super.. kein Problem! Ich muss nur erstmal klären wie ich hier Python-Skripte anhängen kann. Den Code zu posten, ist sicherlich auch möglich aber wir reden hier z.t. über mehrere hundert Zeilen + Erklärungen. Vielleicht ließt Simon ja mit und kann dazu etwas sagen?

1 „Gefällt mir“

Da bietet sich GitHub an.

Prinzipiell schon, aber… es ist nicht möglich zu tracken wer sie ggf. kommerziell nutzt. Das möchte ich verhindern, da es meine private Arbeit ist und ich nicht möchte das sich jemand daran bereichert. Ich habe da schon sehr sehr sehr schlechte Erfahrungen bei Linux-Projekten gemacht. Daher lieber hier im kleinen Kreis und per PN oder E-Mail.

Ja bitte

Vor allem “kein Projekt für Anfänger”

Klingt richtig spannend

Und wenn es dann Probleme oder Nachfragen gibt, lesen es andere und wissen nicht, worum es geht, weil der Code hier nicht zu finden ist? Das klingt umständlich und widerspricht meiner Meinung nach der Motivation dieses Forums.
Kommerziellen Interessen kannst du mit der entsprechenden Lizenz begegnen.

4 „Gefällt mir“

Oha! Ich wollte Dir gar nichts. Ich finde sowas grundsätzlich interessant, leider verstehe ich von dem, was es für die Umsetzung braucht, zu wenig.

Bislang warte ich darauf, dass es beim akkudoktor-eos ein userinterface und für mich funktionale Schnittstellen gibt.

Daher war ich neugierig.

Ein Forum ist übrigens für den gemeinsamen Austausch und Diskussion, also warum dann diese „Geheimniskrämerei?“

BTW: Ich habe den Thread mal in den Showroom verschoben.

2 „Gefällt mir“

Für mich klingt das wie die YouTube Werbungen: Ich zeige Dir xy, Du musst Dich nur kostenlos zu meinem Webinar anmelden.

Nein, ich habe weder einen YouTube-Channel noch Interesse an Schulungen jedweder Art. Es ist das Gegenteil.. ich stelle die benötigen Skripte umsonst gern zur Verfügung und jeder kann sie für sich anpassen und nutzen wie er möchte - Einschränkung: Nur zu privaten Zwecken

2 „Gefällt mir“

Hey Harry,
vielen Dank fürs Verschieben! Zu deiner Frage:
Das Forum erlaubt es nicht, Skripte anzuhängen – vermutlich aus gutem Grund (Missbrauch, Hacking etc.). Natürlich könnte man dies umgehen, indem man die Dateien beispielsweise als xyz.py.txt benennt. Das wäre jedoch ein klarer Verstoß gegen die Regeln. Das Einstellen der Skripte ist ebenfalls schwierig, da es sich nicht nur um *.py-Dateien, sondern auch um die dazugehörigen Joblib-Dateien handelt.
Ein Kopieren des gesamten Codes würde vermutlich ebenfalls Probleme verursachen, da er insgesamt mehrere hundert Zeilen umfasst.
Allein nur das Ausführungsscript sind 121 Zeilen (!)

und hinzu kommen noch die anderen Skripte und Dateien.. :

Daher mein Angebot: Ich schicke das Skript + Dateien gerne jedem, der Interesse hat, zur eigenen privaten Verwendung zu. (Wie Du sehen kannst inclusive einer “requirements.txt” die automatisch die benötigten Bibliotheken installiert.

Benötigte Umgebungen / Bibliotheken:

certifi==2025.10.5
charset-normalizer==3.4.3
idna==3.10
joblib==1.5.2
mysql-connector-python==9.4.0
numpy==2.3.3
paho-mqtt==2.1.0
pandas==2.3.3
python-dateutil==2.9.0.post0
pytz==2025.2
requests==2.32.5
scikit-learn==1.7.2
scipy==1.16.2
six==1.17.0
threadpoolctl==3.6.0
tzdata==2025.2
urllib3==2.5.0

Hinweis:
scikit-learn und numpy laufen meines Wissen definitiv nicht auf dem HA - daher wie bei den Anderen Skripten ebenfalls extern ausführen.

Das Thema Github wurde ja schon erwähnt. Und wenn Du dein Projekt nicht öffentlich machen willst, dann hast Du wahrscheinlich ein privates Projekt am Start.
Diese kannst Du auch nur mit ausgesuchten Usern teilen, siehe:
Settings → Access → Collaborators

Hätte auch den Vorteil, das willige User auch bei der Weiterentwicklung unterstützen könnten.

Gruß Osorkon

Zur besseren Erklärung (Danke Harry für den Hinweis in einem Thread!!)

Worm geht es:
Ich lade zu dynamischen Strompreisen meine Akkus und nutze sie bei Strompreis-Spitzen. Das ist aus der Not heraus geboren, da ich nur eine begrenzte Anzahl an Solarpanele nutzen darf / kann (Mietwohnung). Somit ist für mich sehr wichtig zu wissen mit wieviel Ertrag kann ich bei meiner Anlage in den kommenden zwei Tagen rechnen.
Zwar bietet HA einen Forecast, doch der ist zu ungenau, da pauschalisiert und oftmals um mehrere kWh daneben.
Gleichwohl möchte ich wissen, wie effektiv meine Anlage läuft und die Prognose " trifft" um Verschattungen, Dreck, Leistungswerte,.. zu tracken.

Fazit: Die Prognose muss zwingend auf meine (oder allg. “die”) örtlichen Gegebenheiten angepasst sein. YAML ect.. hilft da nicht weiter. Also entschied ich mich ein selbstlernendes Skript zu schreiben, dass sich täglich neu trainiert und so immer weiter an die 100% Prognose herankommt. Es basiert auch Machine-Learning und gewichtet eine Vielzahl von Sensoren, Vorhersagen und gleicht diese jede Nacht mit der tatsächlichen Tagesleistung ab. Diese verarbeitet das Skript und korrigiert sich immer weiter.

Info: Mir war wichtig das es lokal passiert ohne irgendwelche KI (streng genommen ist es aber eine lokale KI) Anbindung oder Versand von Daten nach außen.

Man sieht an dem Screenshot sehr gut das Problem! “Prognose offiziell” ist das was HA mit Solar-Forcast prognostiziert. Das weicht sehr deutlich von dem Tatsächlichen Werten und dem Ergebnis meines Moduls ab :slight_smile: heute war es sehr bewölkt und hat immer wieder geregnet.

Einschränkungen / Hinweise: Viele der benötigen Bibliotheken und Umgebungen laufen nicht nativ auf dem HA. Ich entschied mich dagegen, den CORE von HA anzufassen und die Dinge “händisch” hinzuzufügen - zumal sie nach einem Update eh wieder weg gewesen wären.
Daher entschied ich mich die gesamte Arbeit auf einen Raspberry PI auszulagern. Das hat mehrere Vorteile, die sich jeder denken kann.

Vorgehen: Zunächst werden (in meinem Fall das kann aber jeder so machen wie er will) Langzeit-Statistiken mittels SQL aus der Datenbank gezogen. Bei mir sind das u.A. LUX, W/m2, Temp, Wind,.. und der jeweils dazugehörige Ertrag an dem Tag. Diese Daten werden dann ein Model übergeben das damit trainiert wird.

Via API wird die Wetter-App (DWD) ebenfalls angebunden und ein Service und Deamon eingerichtet. Das wars…

Was passiert nun: Das Skript startet nun via Cron-Job und holt sich die Wetterporognose, gleicht diese ab mit bekannten Daten aus dem Modul und vergleicht diese mit dem Ertrag und berechnet eine Prognose. um Mitternacht gleicht es die erstelle Prognose mit dem tatsächlichen “IST-Wert” und bezieht die Abweichung mittels Gewichtung der einzelnen Sensoren beim Erstellen der neuen Prognose mit ein.
Je länger das Skript läuft, desto genauer wird es - eben selbst lernend. Ich bin mittlerweile bei einer Treffergenauigkeit von 87,3%.

Alle drei Monate wird das Training wiederholt, da sich bis dahin weitere Daten angesammelt haben

Was kann ich mit den Daten machen? Nunja, zum Beispiel kann ich das Ergebnis nutzen um Verbräuche / Erträge in einen Kontext zu setzen. Sicherlich sehr nützlich für Besitzer von E-Autos oder eben wie in meinem Fall das Laden von Akkus (dynamischer Stromtarif) da ich weiß wieviel ich am nächsten Tag erzeuge und wieviel ich brauche.

Wie kommen die Daten / Ergebnisse des Skriptes zurück in den HA? Die Ergebnisse werden mittels MQTT an den HA gesendet. Hierzu wird ein Topic erstellt mir dem entsprechendem Payload.

Wie immer.. wer die Skripte haben möchte, sie anpassen / ausprobieren möchte You are welcome!

1 „Gefällt mir“

hallo,

klingt interessant, mich interessiert es

Kein Problem… welche Datenbank nutzt Du, aktuell ist es für die MariaDB. > ich könnte es umschreiben / eine Version für die Standart HA DB machen…

Anbei die Skripte + Anleitung… bitte UNBEDINGT die Hinweise in den *.txt Dateien beachten! logischer Weise müsst ihr den Namen ersetzen - = . und .txt entfernen :slight_smile:

Hinweis: Diese Version ist für die MariaDB (!!)

Beginnen wir zunächst mit der Anleitung (ein pdf) ich habe die Befehle in blau gekennzeichnet. Bitte zu erst lesen und dann entscheiden ob ihr weitermachen möchtet :slight_smile:

Nach dem Download einfach .txt entfernen und in .pdf ändern

Anleitung Solarforcast VS02-pdf.txt (103,9 KB)

und hier die Skripte… bitte unbedingt die Hinweise vor dem Code lesen und beachten! - Natürlich nur den Code selber mit Nano kopieren - oder einem anderen Editor.
extract_model_weights-py.txt (4,3 KB)
solar_forecast_model-py txt.txt (6,9 KB)
solar_data_analysis-py.txt (5,7 KB)
config-json.txt (483 Bytes)
export_data-py.txt (10,9 KB)

Danke für Bereitstellung. :heart_hands: :grinning_face:

Habe mal die Anleitung überflogen, muss aber als Linux Legastheniker feststellen, dass ich nur die Hälfte verstehe. :grin:

Du setzt in Deinem Setup einen Raspberry Pi ein, weil für bestimmte Teile die Abhängigkeiten in der Home Assistant OS Umgebung fehlen und die sich nicht nach installieren lassen, richtig?

Viele der SmartHome Enthusiasten hier, setzen Proxmox ein. Ich gehen davon aus, dass sich das ganze auch problemlos in einem LXC in Proxmox umsetzen lässt.

Würde mir mal das mal anschauen, auch wenn der Solar Forecast für heute fast eine Punktladung war. :grinning_face:

Gruß Osorkon

1 „Gefällt mir“

Vielen Dank Osorkon für dein Feedback… tatsächlich lässt es sich auch in der Eingabeaufforderung von Windows umsetzen. Das Grundprinzip ist: Verbinden via SSH in das Verzeichnis wechseln, in dem die Skripte liegen und diese nacheinander ausführen.

Zu deiner Frage bzgl. Pi.. das macht aus vielen Gründen Sinn. Datensicherheit, keine Probleme bei Systemabstürzen, Neuinstallationen,.. aber natürlich hast Du Recht, man muss sich im Terminal bewegen können. Daher mein Hinweis auf " Nicht für Anfänger" :slight_smile:

Wenn bei Dir die Erzeugung mit der Prognose passte, brauchst Du das Skript eigentlich nicht.