Fox ESS in Home Assistant: Modbus statt Cloud – aber wie richtig umstellen?

Hallo zusammen,

seit 2023 habe ich meine Fox ESS H3 PV-Anlage über die Cloud in Home Assistant eingebunden. Leider ist die Cloud in letzter Zeit immer wieder ausgefallen. Deshalb möchte ich die Sensoren nun mit meinem Modbus-Anschluss, den ich seit 2024 parallel betreibe, zusammenführen.

Idealerweise sollen die Daten vorrangig aus dem Modbus übernommen werden, sobald dieser läuft. Heute bin ich jedoch beim Arbeiten mit der SQL-Datenbank an meine Grenzen gestoßen.

Hat jemand einen Tipp, wie ich das am besten umsetzen kann?

1 „Gefällt mir“

Ich bin mir nicht ganz sicher, ob ich dein Szenarion verstanden habe.

Anyway…ModBUS (over TCP/IP) ist realtime fähig. Das klingt erstmal toll, heißt aber auch, dass es Massen von Messwerten rasendschnell transportieren kann. …und die Geräte, die ModBUS nutzen, machen auch regen Gebrauch davon.
Grds. brauchst du eine DB, die nur dann Messwerte in die DB schreibt, wenn sich ein Datum auch geändert hat. Platt ausgedrückt, schreiben dir die Systeme sonst 5000x hintereinander „20°C“ in die DB.

Das wird nur EINE der Funktionen sein, welche die Cloud aktuelle für dich bereitstellt. Was du da vor hast, klingt ein bisschen nach lokalem reverse engineering der Cloud. Das ist nicht wenig anspruchsvoll. Gut wäre, wenn du vielleicht irgendein fertiges Stück HW und / oder SW zwischen die PV-Anlage und HA schalten könntest, welche die Daten für dich bereinigt.
Um das ganz klar zu sagen: Mit SQLight ist da längst das Ende der Fahnenstange erreicht.

Sorry, wenn ich keine besseren Nachrichten habe, aber das stellt meinen Kenntnisstand von vor ein paar Jahren da. Evtl. hat sich da mittlerweile etwas getan. …aber so bist du wenigstens schon Mal „vorgewarnt“.

Mit einer großen Anzahl an Messwerten hatte ich bisher keine Probleme. Allerdings ist die Cloud-Anbindung von FoxESS unzuverlässig, was dazu führt, dass Werte wie Einspeisung, Verbrauch und PV-Produktion nicht korrekt erfasst werden.

Deutlich zuverlässigere und genauere Daten erhalte ich über Modbus mit dem Waveshare RS485, der die Daten lokal in gleicher Weise liefert wie die Cloud.

Dank GPT habe ich mittlerweile herausgefunden, wie ich den alten Sensor in den neuen umbenennen kann. Leider funktioniert dies jedoch nicht wie erwartet. Ich vermute, dass dies an der zusätzlichen InfluxDB in meinem System liegt.

Vermutlich müsste ich die Sensoren sowohl in der home-assistant_v2-Datenbank als auch in der InfluxDB umbenennen. Gibt es möglicherweise noch weitere Speicherorte in der Langzeitdatenbank, die berücksichtigt werden müssen?

Wenn ich den neuen Sensor einfach im Energie-Dashboard einsetze, fehlen mir sämtliche historischen Daten aus dem Jahr 2023. Gibt es eine Möglichkeit, diese zu übernehmen?

Ah, Ok! Dann bist du schon weiter als ich das aus dem Post heraus verstanden hatte. Dann kann ich leider nicht weiterhelfen. Sorry.

Trotzdem vielen Dank für deine Antwort!

Ich bin jetzt soweit, dass ich in SQLite Web den passenden Befehl erstellen möchte, aber leider funktioniert er in der aktuellen Form noch nicht.

INSERT INTO statistics
(statistic_id, start_ts, start_day, created, last_reset_ts, state, sum, metadata_id)
SELECT
‚sensor.master_grid_consumption_energy_today‘, start_ts, start_day, created, last_reset_ts, state, sum, metadata_id
FROM statistics
WHERE statistic_id = ‚sensor.foxess_grid_consumption_power‘
AND start_ts BETWEEN strftime(‚%s‘, ‚2023-09-11‘) AND strftime(‚%s‘, ‚2024-06-16‘);

Was könnte an meinem Befehl noch falsch sein? Wenn der Befehl erfolgreich ausgeführt wird, muss ich dann zusätzlich den Sensor in der InfluxDB umbenennen, da beide Sensoren bereits seit längerer Zeit im System integriert sind?

Anleitung: Home Assistant Sensoren umstellen, ohne die Historie zu verlieren

Oft stellt sich die Frage, wie man einen alten Sensor in Home Assistant durch einen neuen ersetzt, ohne die bisherigen Verlaufsdaten (Historie) zu verlieren. Eine direkte Änderung in der Datenbank kann kompliziert sein. Es gibt jedoch eine viel einfachere und sicherere Methode, um dies zu erreichen.

Hier ist eine Schritt-für-Schritt-Anleitung:


:pushpin: Ziel:

:white_check_mark: Alten Sensor deaktivieren, aber seine Daten behalten
:white_check_mark: Neuen Sensor nutzen, ohne Verlaufsdaten zu verlieren
:white_check_mark: Korrekte Werte im Energie-Dashboard anzeigen


:wrench: Schritt 1: Alten Sensor in der FoxESS Cloud deaktivieren

Da die Sensoren über die FoxESS Cloud ausgelesen werden, kann es hilfreich sein, die alten Sensoren dort zu deaktivieren. Dadurch bleiben die alten Verlaufsdaten in Home Assistant erhalten, aber es kommen keine neuen (möglicherweise fehlerhaften) Werte mehr hinzu.

:point_right: Vorgehensweise:

  1. Einstellungen Geräte FoxESS Cloud aufrufen
  2. Die alten Sensoren für z. B. Einspeisung, Netzbezug, PV-Erzeugung in der Cloud deaktivieren

:hammer_and_wrench: Schritt 2: Neuen Zähler erstellen (Helfer – Zahlenverbraucher)

Da die alten Sensoren deaktiviert sind, müssen wir einen neuen Zähler (Helper) erstellen, um die Werte aus dem neuen Modbus-Sensor zu übernehmen.

:point_right: So geht’s:

  1. Home Assistant öffnen
  2. Einstellungen → Geräte & Dienste → Helfer
  3. Neuen Helfer erstellen
  • Typ: Zahlenverbraucher (Counter)
  • Name: PV-Gesamtverbrauch (Neu)
  • Datenquelle: Neuer Modbus-Sensor
  • Einheit: kWh
  • Zähler beginnt bei 0 (da es ein neuer Sensor ist)

:bar_chart: Schritt 3: Neuen Zähler im Energie-Dashboard einbinden

Da der alte Sensor nicht gelöscht wird, bleiben die Verlaufsdaten erhalten. Der neue Sensor wird jetzt dem Energie-Dashboard hinzugefügt.

:point_right: Anleitung:

  1. Einstellungen → Energie-Dashboard
  2. Neues Gerät hinzufügen
  3. Neuen Zahlenverbraucher (Helfer) als Verbrauchszähler auswählen
  4. Speichern

:warning: Wichtig: Den alten Sensor nicht löschen, damit dessen Historie erhalten bleibt!


:dart: Fazit:

:white_check_mark: Kein Eingriff in die Datenbank nötig
:white_check_mark: Alte Verlaufsdaten bleiben erhalten
:white_check_mark: Neuer Sensor startet sauber ab heute
:white_check_mark: Energie-Dashboard funktioniert korrekt

:bulb: Hinweis: Diese Methode wurde durch den Beitrag von @jayjojayson inspiriert. Falls jemand Verbesserungsvorschläge hat, bin ich offen für Ideen! :blush: (Geschrieben mit hilfe von GPT) :slight_smile:

1 „Gefällt mir“

Sehr cool, macht das lesen gleich viel angenehmer. :slight_smile:
Modbus, daran sitze ich auch gerade und verzweifle mal wieder. Werde dazu heute noch ein Thema eröffnen. Vielleicht kannst du da auch mal vorbeischauen. :slight_smile: