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

Ich habe es mal bei mir Installiert, Proxmox auf Intel NUC. Keine Probleme,

2026-04-16T05:33:59.754153Z [info     ] finetune_starting              batch_size=16 dropout=0.15 horizon=24 lr=3e-05 max_epochs=30 output=pretrained_full.safetensors patience=5 pretrained=pretrained_full.safetensors seq_len=72 warmup_epochs=2
...
2026-04-16T06:38:42.031585Z [info     ] training_complete              baseline_val_loss=1.038001 best_val_loss=0.158247 duration_s=3873 epochs=16 improvement_percent=84.75 samples_train=1952 status=complete test_loss=0.319664

Eine Warnmeldung gibt es, ich denke aber das du die schon kennst:

<frozen serve_forecast>:2854: DeprecationWarning: 'asyncio.iscoroutinefunction' is deprecated and slated for removal in Python 3.16; use inspect.iscoroutinefunction() instead

CPU in Proxmox:

Gruß Ralf

Ist an sich nur ein Hinweis, das mit der kommenden Version in Python 3.16 eine Änderung eintritt und dieser Befehl nicht mehr verwendet und daraus entfernt wird. Da HA mit den Versionen eh hinterher ist, kann man das momentan getrost ignorieren.

1 „Gefällt mir“

Auch bei mir gabs keine Probleme bei der Installation und beim ersten Durchlauf. Allerdings habe ich 5 Panel-Gruppen…kA, ob er nun die letzte Panelgruppe ausblendet und nur die ersten 4 macht….

gecheckt im Log hat er alle 5…

weitergemacht hat er aber nur mit 4 wie es scheint…oder das heißt was anderes:

Gedauert hats auf meinem i7 wie man sieht 30min, improvement_percent=90.41

Mal beobachten, was morgen passiert.

@Twix1212
Das steht in der Beschreibung, er “macht” nur 4 Gruppen! Mehr ist einfach völliger Overkill und Unsinn auf Home Assistant.. das wird sich auch nicht ändern macht logisch auch super wenig sinn, erzeugt nur Noise ohne Mehrwert. Das ist bei SFML aber auch so, nur SFML ist da “gnädiger” . Logisch ist es so:
4 Himmelsrichtungen oder 3 Himmelrichtung + 1 Tilt oder 2 Himmelsrichtunge + 2 Tilt usw.
Tilt macht erst ab einer Differenz von 30 +/- Sinn und Azimut bei +/- 40 Grad (Kompasswert) .. alls andere ist völlg sinnbefreit und erzeugt Noise und Hintergrundrauschen in SFML. Der Transformer würde es komplett “kicken” da es logisch und mathematisch irrelvant ist.

Gruß Zara

Danke für die Rückmeldung.

Das ist bei mir historisch gewachsen - es waren immer 5 Gruppen und dementsprechend sind auch die Dashboards anegelegt. Daher wollte ich das schlicht nicht verwerfen, weil es einen Rattenschwanz an Änderungen nachsich ziehen würde (inkl historische Daten usw…)

So lange das SFML damit umgehen kann (ob TFS jetzt ne Gruppe irgendwo anders dazu rechnet oder wie auch immer) und sich nicht erhängt, passt das für mich.

1 „Gefällt mir“

Nein, TFS hängt sich nicht auf, es ergibt nur absolut keinen Sinn. Da quasi immer eine Gruppe fehlt, sind die übergebenen Layer grundsätzlich zu niedrig (um die einzelnen Stundenwerte der fehlenden Gruppe reduziert), und SFML würde wie verrückt dagegenarbeiten.
Also bitte De-Installieren sonst hast Du mittelfristig ein echtes Problem ..

LG
Zara

1 „Gefällt mir“

Hi @Tom-HA

kann es ein, dass TFS HA eine Zeitverschiebung hat im Protokoll? Also so 2 Stunden?

2026-04-17T07:06:20.359478Z [info     ] weather_fetched                hours=72 source=icon_seamless
2026-04-17T07:06:20.362109Z [info     ] weather_fetched                hours=72 source=gfs_seamless
2026-04-17T07:06:20.364650Z [info     ] weather_fetched                hours=72 source=ecmwf_ifs025
2026-04-17T07:06:20.364700Z [info     ] weather_fetch_complete         sources=['icon_seamless', 'gfs_seamless', 'ecmwf_ifs025'] total_hours=216
2026-04-17T07:06:20.564585Z [info     ] physics_calculated             clearsky_total_kwh=36.84 daytime_hours=42 hours=72
2026-04-17T07:06:20.643998Z [info     ] forecast_validated             confidence=high corrected=2 critical=0 score=0.82 violations=6
2026-04-17T07:06:20.667960Z [info     ] forecast_persisted_to_db       forecast_id=268 hours=72 type=sfml
2026-04-17T07:06:20.668216Z [info     ] forecast_summary               confidence=high groups='Gruppe 1=11.31' score=0.82 today_kwh=5.59 total_72h_kwh=11.31 weather_sources=3
INFO:     172.30.32.1:38190 - "POST /api/forecast/run?forecast_type=sfml HTTP/1.1" 200 OK

Aktuelle Uhrzeit war 09:06 Uhr als dies im Protokoll erschien und nicht 07:06 Uhr.

Ist bestimmt die UTC-Zeit. :wink:

1 „Gefällt mir“

Ottokar hat es eigentlich schon korrekt beantwortet. Code ist grundsätzlich UTC das hängt mit dem Umstand zusammen, dass nicht alle Länder Sommer- / Winterzeit kennen und es eine Baseline bedarf.
Wetterdaten zum Bespiel kommen grundsätzlich in UTC und vieles mehr. SFML hat an sehr vielen Stellen (ich glaube rund 400) konverter die UTC auf den jeweiligen Standort anpassen. Das ist besonder kritisch bei Wetterdaten und der Prognose an sich, die würde sich sonst verschieben. → Sehr tricky besonders bei Sommer / Winterzeit Umstellungen.

Home Assistant ist leider nicht durchgängig local / UTC → ein echtes Problem! SFML hat, um das abzufangen, dafür einen Code der quasi die Zeitstempel übersetzt zwischen Anzeige / Training / Prognose / Wetter / … da auch SFML ausschließlich in UTC programiert ist (also ohne Winter- / Sommerzeit)
TFS braucht den also nicht zusätzlich.. den BUG in HA selbst, kannst Du gut selber sehen:

Startzeit TFS = Local // Logs selber = UTC.. . man muss kein Mathegenie sein um zu verstehen was das für die Entwickler von Integrationen bedeutet und wieviel Umwege es auf Code-Ebene bedeutet es zu synchronisieren / synchron zu halten. → Irgendwie unlogisch das das erste Log 2 Std vor dem eigentlichen Start der App liegt .. der berühmte Glitch in der Matrix :slight_smile: (verursacht von HA selbst)

Hier siehst Du den "Glitch in der Matrix" und den seit Jahren nicht gefixten BUG in Home Assistant der die HÖLLE für jeden Entwickler ist :slight_smile: → HA hilft sich hier mit TZ-Code..

Gruß Zara

1 „Gefällt mir“

Besteht Interesse daran, dass ich das Training und die Funktion in einem separaten Thread erkläre – also wie es funktioniert und was ich hier mache?

8 „Gefällt mir“

Okay los gehts.. ich werde das ein wenig aufgliedern das es nicht so erschlagend ist

Hallo zusammen,ich habe mir auf meiner Anlage TFS am Mittwoch installiert und mit meinem Verständnis scheint das zu laufen.Aber:

Im Protokoll der TFS App erscheint ab und zu folgende Meldung:

2026-04-17T16:09:37.080317Z [error    ] multi_model_fetch_failed       error=

Weiß jemand wo das Problem liegen könnte?

Danke und Gruß

Hallo @Ralf14

Das ist ein Fehler der nicht direkt etwas mit TFS zu tun hat. Er konnte keine Wetterdaten “abholen” das kommt öfter mal vor wenn die Wetterdienste nicht erreichbar sind. Ist aber kein Problem! Es ist ein Sicherheitsnetz eingebaut..

Danke für die Rückmeldung, da bin ich beruhigt. :+1:

1 „Gefällt mir“

Guten Morgen, als Info, dies lief heute Früh um 6 als Fehler in SFML und TFS.

SFML

2026-04-19 06:00:01 - custom_components.solar_forecast_ml.data.data_weather_pipeline_manager - INFO - Pipeline: Weather update SUCCESS
2026-04-19 06:00:30 - custom_components.solar_forecast_ml.forecast.forecast_tfs_client - DEBUG - TFS fetch failed
Traceback (most recent call last):
  File "/usr/local/lib/python3.14/site-packages/aiohttp/client_reqrep.py", line 539, in start
    message, payload = await protocol.read()  # type: ignore[union-attr]
                       ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/aiohttp/streams.py", line 707, in read
    await self._waiter
asyncio.exceptions.CancelledError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<frozen forecast_tfs_client>", line 44, in fetch_forecast
  File "/usr/local/lib/python3.14/site-packages/aiohttp/client.py", line 1521, in __aenter__
    self._resp: _RetType = await self._coro
                           ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/aiohttp/client.py", line 788, in _request
    resp = await handler(req)
           ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/aiohttp/client_middlewares.py", line 36, in single_middleware_handler
    return await middleware(req, handler)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/aiohttp_client.py", line 72, in _ssrf_redirect_middleware
    resp = await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/aiohttp/client.py", line 766, in _connect_and_send_request
    await resp.start(conn)
  File "/usr/local/lib/python3.14/site-packages/aiohttp/client_reqrep.py", line 534, in start
    with self._timer:
         ^^^^^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/aiohttp/helpers.py", line 713, in __exit__
    raise asyncio.TimeoutError from exc_val
TimeoutError
2026-04-19 06:00:31 - custom_components.solar_forecast_ml.forecast.forecast_rule_based_strategy - DEBUG - Physics+LSTM blend active

TFS

2026-04-19T03:47:17.258464Z [info     ] forecast_summary               confidence=high groups='Gruppe 1=4.95, Gruppe 2=4.87' score=0.94 today_kwh=3.22 total_72h_kwh=9.82 weather_sources=3
INFO:     172.30.32.1:36178 - "POST /api/forecast/run?forecast_type=sfml HTTP/1.1" 200 OK
INFO:     172.30.32.1:59084 - "GET /health HTTP/1.1" 200 OK
2026-04-19T04:00:31.712679Z [error    ] multi_model_fetch_failed       error=
2026-04-19T04:00:34.043725Z [info     ] weather_fetched                hours=72 source=icon_seamless
INFO:     172.30.32.1:56352 - "GET /health HTTP/1.1" 200 OK
2026-04-19T04:00:37.936220Z [info     ] weather_fetched                hours=72 source=gfs_seamless
2026-04-19T04:00:39.278948Z [info     ] weather_fetched                hours=72 source=ecmwf_ifs025
2026-04-19T04:00:39.279258Z [info     ] weather_fetch_complete         sources=['icon_seamless', 'gfs_seamless', 'ecmwf_ifs025'] total_hours=216
2026-04-19T04:00:39.701638Z [info     ] physics_calculated             clearsky_total_kwh=16.87 daytime_hours=42 hours=72
2026-04-19T04:00:39.815076Z [info     ] forecast_validated             confidence=high corrected=0 critical=0 score=0.94 violations=2
2026-04-19T04:00:39.835213Z [info     ] forecast_persisted_to_db       forecast_id=345 hours=72 type=sfml
2026-04-19T04:00:39.835674Z [info     ] forecast_summary               confidence=high groups='Gruppe 1=4.95, Gruppe 2=4.87' score=0.94 today_kwh=3.22 total_72h_kwh=9.82 weather_sources=3
2026-04-19T04:00:39.942067Z [info     ] weather_fetched                hours=72 source=icon_seamless
2026-04-19T04:00:39.946290Z [info     ] weather_fetched                hours=72 source=gfs_seamless
2026-04-19T04:00:39.949691Z [info     ] weather_fetched                hours=72 source=ecmwf_ifs025
2026-04-19T04:00:39.949747Z [info     ] weather_fetch_complete         sources=['icon_seamless', 'gfs_seamless', 'ecmwf_ifs025'] total_hours=216
2026-04-19T04:00:40.363915Z [info     ] physics_calculated             clearsky_total_kwh=16.87 daytime_hours=42 hours=72
2026-04-19T04:00:40.497707Z [info     ] forecast_validated             confidence=high corrected=0 critical=0 score=0.94 violations=2
2026-04-19T04:00:40.517321Z [info     ] forecast_persisted_to_db       forecast_id=346 hours=72 type=sfml
2026-04-19T04:00:40.517633Z [info     ] forecast_summary               confidence=high groups='Gruppe 1=4.95, Gruppe 2=4.87' score=0.94 today_kwh=3.22 total_72h_kwh=9.82 weather_sources=3
INFO:     172.30.32.1:56352 - "POST /api/forecast/run?forecast_type=sfml HTTP/1.1" 200 OK

der Error war ohne Text.
Grüße

Habe beide Fehler bei mir in den Logs nicht.

Wie sehen bei Euch die Werte (CPU-Auslastung / RAM-Nutzung) in der TFS-App aus?

Die RAM-Nutzung steht jetzt schon sehr lange auf 58,7%.

CPU wie bei dir. RAM bei 20% war aber auch schon bei 35%

Edit: 8Gb RAM gesamt im System

Ist das ungewöhnlich?

Bei mir taucht TFS heute nicht im Blend auf, die App Leif aber die ganze Zeit, hab noch nicht gefunden was da möglicherweise schief gegangen ist…ggf. kann mir jemand sagen wonach ich im Log schauen sollte?

Moin,

hab mir auch gerade die App version installiert.

Umgebung:

Proxmox auf Xeon E-2176 mit 32GB ECC Ram

HAOS unter Proxmox. 6 Cores (von 12) zugeteilt. 10GB Ram.

Installation verlief problemlos

Erstes Training dauerte grob 25Min mit 11 Epochen.

Kann ich irgendwo in SFML sehen, dass die Werte aus der APP genutzt werden, oder diese verbunden ist?

Grüße