TFS HA Solar Forecat ML 8 Head Transformer KI (App-Version)

was heißt das? “neu aufbauen”? Und warum war um 13:23 shutdown - ich habe doch erst vor 10 Minuten das Update ausgeführt. Ach, weil ich SFML wahrscheinlich um die Uhrzeit geupdated habe?

Kann ja nicht sein: Die App steht auf “automatische Updates”. Das wäre irgendwie kontraproduktiv, oder ich verstehe ES einfach nicht!

1 „Gefällt mir“

Es gab ein Problem mit dem ersten Update, da wurde beim Push ein wichtiges File verschluckt. Daraufhin habe ich direkt ein neues Update angelegt, aber bis das von Home Assistant korrekt erkannt wird, vergeht manchmal eine Zeit das kann ich nicht beeinflussen und auch nicht ändern.

Aktuell gibt es noch ein weiteres Problem auf verschiedenen Systemen, dass ich gerade repariere. Das gute ist es geht nichts kaputt, es bricht nichts aber es muss leider noch einmal ein Update gefahren werden.

Ok, jetzt ist der Service gestoppt und nichts tut sich:

2026-04-23T10:53:42.525453Z [debug    ] weather_pipeline_next_refresh  hour=18 wait_s=18677
2026-04-23T10:53:42.937195Z [info     ] sfml_auto_import_periodic      imported=0 skipped=2626 total=2616
INFO:     172.30.32.1:38294 - "GET /health HTTP/1.1" 200 OK
2026-04-23T10:54:36.366852Z [info     ] weather_fetched                hours=72 source=icon_seamless
2026-04-23T10:54:36.378198Z [info     ] weather_fetched                hours=72 source=gfs_seamless
2026-04-23T10:54:36.385648Z [info     ] weather_fetched                hours=72 source=ecmwf_ifs025
2026-04-23T10:54:36.385737Z [info     ] weather_fetch_complete         sources=['icon_seamless', 'gfs_seamless', 'ecmwf_ifs025'] total_hours=216
2026-04-23T10:54:36.808609Z [info     ] physics_calculated             clearsky_total_kwh=335.61 daytime_hours=42 hours=72
2026-04-23T10:54:36.863400Z [info     ] forecast_validated             confidence=low corrected=41 critical=1 score=0.0 violations=54
2026-04-23T10:54:36.926013Z [info     ] forecast_persisted_to_db       forecast_id=430 hours=72 type=sfml
2026-04-23T10:54:36.926310Z [info     ] forecast_summary               confidence=low groups='Gruppe 1=87.91, Gruppe 2=73.68, Gruppe 3=99.97' score=0.0 today_kwh=81.48 total_72h_kwh=261.56 weather_sources=3
INFO:     172.30.32.1:38294 - "POST /api/forecast/run?forecast_type=sfml HTTP/1.1" 200 OK
2026-04-23T11:05:00.919828Z [debug    ] weather_pipeline_next_refresh  hour=12 wait_s=82799
INFO:     172.30.32.1:58600 - "GET /health HTTP/1.1" 200 OK
2026-04-23T11:24:37.361797Z [info     ] weather_fetched                hours=72 source=icon_seamless
2026-04-23T11:24:37.372874Z [info     ] weather_fetched                hours=72 source=gfs_seamless
2026-04-23T11:24:37.379916Z [info     ] weather_fetched                hours=72 source=ecmwf_ifs025
2026-04-23T11:24:37.380046Z [info     ] weather_fetch_complete         sources=['icon_seamless', 'gfs_seamless', 'ecmwf_ifs025'] total_hours=216
2026-04-23T11:24:37.654492Z [info     ] physics_calculated             clearsky_total_kwh=335.61 daytime_hours=42 hours=72
2026-04-23T11:24:37.707789Z [info     ] forecast_validated             confidence=low corrected=41 critical=1 score=0.0 violations=54
2026-04-23T11:24:37.717591Z [info     ] forecast_persisted_to_db       forecast_id=431 hours=72 type=sfml
2026-04-23T11:24:37.717767Z [info     ] forecast_summary               confidence=low groups='Gruppe 1=87.91, Gruppe 2=73.68, Gruppe 3=99.99' score=0.0 today_kwh=81.49 total_72h_kwh=261.58 weather_sources=3
INFO:     172.30.32.1:58600 - "POST /api/forecast/run?forecast_type=sfml HTTP/1.1" 200 OK
2026-04-23T11:53:42.526023Z [debug    ] weather_pipeline_next_refresh  hour=6 wait_s=58277
2026-04-23T11:53:42.526372Z [debug    ] weather_pipeline_next_refresh  hour=18 wait_s=15077
<frozen serve_forecast>:2854: DeprecationWarning: 'asyncio.iscoroutinefunction' is deprecated and slated for removal in Python 3.16; use inspect.iscoroutinefunction() instead
2026-04-23T11:53:43.368201Z [info     ] sfml_auto_import_periodic      imported=0 skipped=2626 total=2616
INFO:     172.30.32.1:55228 - "GET /health HTTP/1.1" 200 OK
2026-04-23T11:54:38.383761Z [info     ] weather_fetched                hours=72 source=icon_seamless
2026-04-23T11:54:38.386397Z [info     ] weather_fetched                hours=72 source=gfs_seamless
2026-04-23T11:54:38.388971Z [info     ] weather_fetched                hours=72 source=ecmwf_ifs025
2026-04-23T11:54:38.389010Z [info     ] weather_fetch_complete         sources=['icon_seamless', 'gfs_seamless', 'ecmwf_ifs025'] total_hours=216
2026-04-23T11:54:38.584199Z [info     ] physics_calculated             clearsky_total_kwh=335.61 daytime_hours=42 hours=72
2026-04-23T11:54:38.640817Z [info     ] forecast_validated             confidence=low corrected=38 critical=1 score=0.0 violations=53
2026-04-23T11:54:38.650555Z [info     ] forecast_persisted_to_db       forecast_id=432 hours=72 type=sfml
2026-04-23T11:54:38.650703Z [info     ] forecast_summary               confidence=low groups='Gruppe 1=86.23, Gruppe 2=74.59, Gruppe 3=98.66' score=0.0 today_kwh=66.05 total_72h_kwh=259.48 weather_sources=3
INFO:     172.30.32.1:55228 - "POST /api/forecast/run?forecast_type=sfml HTTP/1.1" 200 OK
2026-04-23T12:05:00.921170Z [debug    ] weather_pipeline_next_refresh  hour=12 wait_s=79199
INFO:     172.30.32.1:37802 - "GET /health HTTP/1.1" 200 OK
2026-04-23T12:24:39.347829Z [info     ] weather_fetched                hours=72 source=icon_seamless
2026-04-23T12:24:39.353197Z [info     ] weather_fetched                hours=72 source=gfs_seamless
2026-04-23T12:24:39.358627Z [info     ] weather_fetched                hours=72 source=ecmwf_ifs025
2026-04-23T12:24:39.358723Z [info     ] weather_fetch_complete         sources=['icon_seamless', 'gfs_seamless', 'ecmwf_ifs025'] total_hours=216
2026-04-23T12:24:39.585560Z [info     ] physics_calculated             clearsky_total_kwh=335.61 daytime_hours=42 hours=72
2026-04-23T12:24:39.651773Z [info     ] forecast_validated             confidence=low corrected=38 critical=1 score=0.0 violations=53
2026-04-23T12:24:39.662441Z [info     ] forecast_persisted_to_db       forecast_id=433 hours=72 type=sfml
2026-04-23T12:24:39.662641Z [info     ] forecast_summary               confidence=low groups='Gruppe 1=86.23, Gruppe 2=74.59, Gruppe 3=98.66' score=0.0 today_kwh=66.05 total_72h_kwh=259.48 weather_sources=3
INFO:     172.30.32.1:37802 - "POST /api/forecast/run?forecast_type=sfml HTTP/1.1" 200 OK
2026-04-23T12:53:42.526889Z [debug    ] weather_pipeline_next_refresh  hour=6 wait_s=54677
2026-04-23T12:53:42.527263Z [debug    ] weather_pipeline_next_refresh  hour=18 wait_s=11477
<frozen serve_forecast>:2854: DeprecationWarning: 'asyncio.iscoroutinefunction' is deprecated and slated for removal in Python 3.16; use inspect.iscoroutinefunction() instead
2026-04-23T12:53:43.848375Z [info     ] sfml_auto_import_periodic      imported=0 skipped=2626 total=2616
INFO:     172.30.32.1:56798 - "GET /health HTTP/1.1" 200 OK
2026-04-23T12:54:40.339820Z [info     ] weather_fetched                hours=72 source=icon_seamless
2026-04-23T12:54:40.342629Z [info     ] weather_fetched                hours=72 source=gfs_seamless
2026-04-23T12:54:40.345470Z [info     ] weather_fetched                hours=72 source=ecmwf_ifs025
2026-04-23T12:54:40.345516Z [info     ] weather_fetch_complete         sources=['icon_seamless', 'gfs_seamless', 'ecmwf_ifs025'] total_hours=216
2026-04-23T12:54:40.557901Z [info     ] physics_calculated             clearsky_total_kwh=335.61 daytime_hours=42 hours=72
2026-04-23T12:54:40.614340Z [info     ] forecast_validated             confidence=low corrected=41 critical=1 score=0.0 violations=55
2026-04-23T12:54:40.625110Z [info     ] forecast_persisted_to_db       forecast_id=434 hours=72 type=sfml
2026-04-23T12:54:40.625258Z [info     ] forecast_summary               confidence=low groups='Gruppe 1=89.87, Gruppe 2=76.02, Gruppe 3=103.11' score=0.0 today_kwh=83.54 total_72h_kwh=269.0 weather_sources=3
INFO:     172.30.32.1:56798 - "POST /api/forecast/run?forecast_type=sfml HTTP/1.1" 200 OK
2026-04-23T13:05:00.921429Z [debug    ] weather_pipeline_next_refresh  hour=12 wait_s=75599
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: warning: service s6rc-oneshot-runner is marked as essential, not stopping it
INFO:     Shutting down
INFO:     Waiting for application shutdown.
2026-04-23T13:23:49.775734Z [info     ] weather_pipeline_stopped      
2026-04-23T13:23:49.776178Z [info     ] periodic_feedback_cancelled   
2026-04-23T13:23:49.776539Z [info     ] sfml_periodic_sync_cancelled  
2026-04-23T13:23:49.777111Z [info     ] scheduler_stopped             
INFO:     Application shutdown complete.
INFO:     Finished server process [80]
Encrypted base model found, but no model key is configured.
Expected key file: /config/toorox_foresight_ha/model-key.b64
Encrypted base model found, but no model key is configured.
Expected key file: /config/toorox_foresight_ha/model-key.b64
Encrypted base model found, but no model key is configured.
Expected key file: /config/toorox_foresight_ha/model-key.b64
Encrypted base model found, but no model key is configured.
Expected key file: /config/toorox_foresight_ha/model-key.b64
Encrypted base model found, but no model key is configured.
Expected key file: /config/toorox_foresight_ha/model-key.b64
Encrypted base model found, but no model key is configured.
Expected key file: /config/toorox_foresight_ha/model-key.b64
Encrypted base model found, but no model key is configured.
Expected key file: /config/toorox_foresight_ha/model-key.b64
Encrypted base model found, but no model key is configured.
Expected key file: /config/toorox_foresight_ha/model-key.b64
Encrypted base model found, but no model key is configured.
Expected key file: /config/toorox_foresight_ha/model-key.b64
Encrypted base model found, but no model key is configured.
Expected key file: /config/toorox_foresight_ha/model-key.b64
Encrypted base model found, but no model key is configured.
Expected key file: /config/toorox_foresight_ha/model-key.b64

Machine nach wie vor kaputt:

Encrypted base model found, but no model key is configured.
Expected key file: /config/toorox_foresight_ha/model-key.b64

Das ist genau das Problem, was ich in meiner Antwort an dich beschrieben habe

Ich wiederhole mich gerne :slight_smile: das ist genau das Problem, dass ich gerade fixe. Ich muss auch verstehen, warum GitHub das file nicht publiziert.. lokal ist es da

Nun ist klar, dass Du noch dran bist​:wink:

1 „Gefällt mir“

Fehler gefunden warum GitHub hier ein Problem hat… :slight_smile: neues Update kommt gleich.. dann sollte Git das alles korrekt zu Home Assistant deployen.. der Supervisor den Container neu bauen und starten.. allerdings kann ich nicht sagen, wie lange es dauert das HA merkt das es ein neus Update gibt :slight_smile: → das liegt nicht in meiner Hand.. das ist das Problem mit Apps.. bei Integrationen ist das einfacher " Reload" und fertig.. :frowning:

1 „Gefällt mir“

Und genau das war mit meinem gestrigen Kommentar scherzhaft gemeint, Updates nicht nach 22 Uhr (wie vorigen Sonntag) zu veröffentlichen.

Ist sowohl für Tom und uns besser, als zu später Stunde Updates einzuspielen und auf Fixes zu warten… :wink:
Leider haben das nicht alle erkannt und mein Beitrag wurde gelöscht. :zipper_mouth_face:

1 „Gefällt mir“

Das Problem bei den Updates ist, ich muss die immer timen, wenn es zum Beispiel ein Update ist für SFML dass irgendwelche Auswirkungen auf das lernen oder de EOD hat, dann kann ich die immer erst nach Mitternacht veröffentlichen.

Bei TFS ist es etwas anderes, da es nur von SFML getriggert wird. Hier muss ich aber darauf achten, dass die User mit Alter oder langsamer Hardware nicht in den EOD laufen, sonst würde es das System überlasten. Eine weitere Schwierigkeit ist, dass es meine erste App ist, die ich gebaut habe und es dadurch wie im aktuellen Fall zu Problemen im File tree kommen kann. Ähnlich war es auch, als ich zum ersten Mal Ende Oktober vergangenen Jahres via HACS SFML ausgerollt habe.

Ich bin eben kein Spezialist für HACS und die Routinen von Home Assistant, wenn es genau um diesen Punkt geht.
Einfacher wäre es für mich einfach nur Zip Dateien zur Verfügung zu stellen, dann hätte ich diesen ganzen Trouble nicht.

Wie heißt die Version?

Ich mache nun erst einen Test.. bitte noch nicht updaten!

Wenn git dann mal wieder erreichbar ist :slight_smile:

Jetzt ist es da, danke! Und läuft… deinen Post zu spät gesehen… :face_with_spiral_eyes:

Da scheint sich was zu tun: V.22.6.0

2026-04-23T14:43:08.369133Z [info     ] finetune_dataset_building      actuals_count=1098 degradation_count=1464 groups=3 max_samples=200 step_hours=6 weather_count=1138
2026-04-23T14:43:33.896360Z [info     ] finetune_dataset_progress      offset=10/200 samples=10
2026-04-23T14:43:59.556407Z [info     ] finetune_dataset_progress      offset=20/200 samples=20
2026-04-23T14:44:25.051748Z [info     ] finetune_dataset_progress      offset=30/200 samples=30

So .. feuer frei! … sollte nun alles sauber durchlaufen

Versionsnummer ist 22.6.0 die hat HA nun auch sauber gezgen

4 „Gefällt mir“

Das ist die von Basti entwickelte Bereinigung.. einfach gesagt werden die Samples für das Training vorbereitet und alles was irgendwie suspekt ist.. wird korrigiert oder entfernt. Das muss nur einmal laufen.. danach beginnt das Fine-Tuning.. einfach laufen lassen.. ja nach größe der DB und HW kann das einen Moment dauern.. aber bei 200 ist ein Full-Stop eingebaut damit er sich nicht zu tode rödelt..
Wichtig das Log aktualisiert sich nicht zuverlässig selbst (HA Problem) also ruhig mal den Browser refreshen oder kurz aus der App rausgehen..

Vergesst bitte nicht (nach dem alles durchgelaufen ist) festzulegen wann der tägliche Fine-Tune Prozess laufen soll.. das war ja ein wichtiger Kritikpunkt damit es nicht mit euren Backup-Routinen oder anderen Dingen kollidiert. Ich würde 2 Uhr Morgens vorschlagen..

Ist wahrscheinlich ungünstig, die Uhrzeit jetzt zu verändern, weil der Delli rödelt wie hulle. Nach Uhrzeitveränderung muss ein Neustart erfolgen.

Standard war 23:30 Uhr?

Mich hat gerade eine Mail mit einer Frage erreicht, die vielleicht auch für andere hilfreich ist:

Zitat:
“TFS funktioniert nicht, der Forecast ist 3-4x zu hoch, und was sollen P10, P50, P90 sein? (…) Ich glaube, das ist kaputt, das ist doch alles schrott, raten kann ich auch alleine.”

Dazu eine kurze Einordnung:

TFS ist eine eigenständige App mit einer anderen Logik als SFML. Da TFS auf einem Transformer-Modell basiert, gibt es seine Vorhersagen nicht als einen einzelnen festen Wert aus, sondern als Quantile. Das sind Wahrscheinlichkeitsbereiche, die manche vielleicht noch aus Schule, Studium oder Statistik kennen.

Beispiel aus dem Log:

2026-04-23T14:55:34.131301Z [info     ] forecast_complete groups=4 horizon=72h lora=active p10=14.7kWh p50=24.9kWh p90=25.5kWh

Die Bedeutung ist vereinfacht:

  • P10: vorsichtige Untergrenze
  • P50: wahrscheinlichster bzw. mittlerer Erwartungswert
  • P90: optimistischere Obergrenze

Das ist die Spreizung die ihr auch in STATS seht..

Wichtig ist dabei:
TFS HA schreibt im Log immer die Gesamtwerte der jeweiligen Quantile für den kompletten Prognosehorizont, also hier für 72 Stunden ab dem Zeitpunkt der Berechnung.

SFML bekommt dagegen nicht einfach diesen 72h-Gesamtwert übergeben, sondern einen stündlich aufgelösten Forecast-Layer. Diesen verarbeitet SFML weiter und blendet ihn anschließend mit den eigenen Modellen und Werten.

Das heißt:
Der Wert im TFS-Log ist nicht direkt mit einem einzelnen Tageswert oder einem einzelnen SFML-Endwert vergleichbar.

Kurz gesagt:
Es ist also nichts kaputt. Und es ist auch kein „Schrott“ und mit Raten hat das ganz sicher nichts zu tun, sondern ein anderer Forecast-Typ mit anderer mathematischer Darstellung und anderer Weiterverarbeitung.

@Joachim-xo

Also damit meinte ich Samples bauen, Finte Tuning.. sorry wenn ich es nicht deutilich genug gesagt habe..

Also bitte erst verändert, wenn Samples gebaut und Fine Tuning durch sind..

Dein Beitrag wurde gelöscht, weil er im falschen Thread gepostet wurde, wie ich Dir mehrfach erklärt habe!!

@Tom-HA macht hier nämlich einen super Job, ist aber darauf angewiesen, dass seine Threads entsprechend der Vorgaben von Ihm gefüllt werden und nicht durch /OT/ “zugemüllt” werden.
Also bitte den Ball flach halten. :wink:

3 „Gefällt mir“