Skip to content

Releases: fabiorenner-hub/hmip-hcu-fusionsolar

v0.7.0 — Versionsanzeige & Update-Hinweise

Choose a tag to compare

@fabiorenner-hub fabiorenner-hub released this 26 Jun 10:37

Versionsanzeige im Header und automatische Update-Hinweise.

Was 0.7.0 bringt

Versions-Badge

Neben „Sun2000 · HmIP" steht jetzt die installierte Version (z. B. v0.7.0). Ein Klick darauf öffnet die GitHub-Releases-Seite. Ist ein Update verfügbar, zeigt das Badge v0.7.0 ↑, hebt sich farbig hervor und pulsiert dezent.

Update-Erkennung

Ein Hintergrund-Check (alle 6 h, mit Node-Bordmitteln, keine neue Abhängigkeit) vergleicht die installierte Version mit dem neuesten GitHub-Release. Netz- oder Parse-Fehler sind nicht-fatal — das Dashboard läuft normal weiter.

Benachrichtigung mit Link

Wird erstmals eine neuere Version erkannt, erscheint eine einmalige Meldung mit Release-Link im Notification Center und — sofern aktiviert — per Telegram. Neue Kategorie plugin-update, die sich wie alle anderen abschalten lässt.

Menüpunkt „Update installieren"

Bei verfügbarem Update taucht in der Tab-Leiste ein hervorgehobener Link „Update installieren" auf, der direkt zum GitHub-Release führt (neuer Tab). Derselbe Sprung passiert beim Klick auf das Versions-Badge.

Technik

/api/version liefert jetzt zusätzlich latest, updateAvailable und releaseUrl. Fünf neue Tests (Semver-Vergleich als Property plus Checker-Verhalten: Update-Erkennung, einmalige Benachrichtigung, gleiche/ältere Version, Fetch-Fehler nicht-fatal).

Installation

hmip-hcu-fusionsolar-0.7.0.tar.gz unten herunterladen und über HCUweb → Entwicklermodus → Plugins → Aus Datei installieren einspielen.

Dauerhafter „latest"-Link: https://github.com/fabiorenner-hub/hmip-hcu-fusionsolar/releases/latest/download/hmip-hcu-fusionsolar.tar.gz

v0.6.0 — Persistente Verlaufsdaten, Wechselrichter-Alarme & Politur

Choose a tag to compare

@fabiorenner-hub fabiorenner-hub released this 23 Jun 13:31

Feature-Release: persistente Verlaufsdaten, Wechselrichter-Alarme und eine Runde Politur.

Was 0.6.0 bringt

Verlauf übersteht Neustarts

Die Stunden- (bis 96 h) und Tageswerte (bis 30 Tage) werden jetzt in /data/history.json gespeichert und beim Start wiederhergestellt — der Verlauf-Tab ist nach einem Container-Neustart also nicht mehr leer. Geschrieben wird atomar (temporäre Datei + fsync + rename), sodass ein Absturz nie eine kaputte Datei hinterlässt; Schreibfehler werden protokolliert, brechen aber nichts ab. Fehlende, beschädigte oder versionsfremde Dateien starten einfach leer.

Export

Neue CSV- und **JSON-**Download-Buttons im Verlauf-Tab (LAN-geschützt, als Datei-Download). Die CSV hat eine feste Spaltenüberschrift.

Wechselrichter-Alarme

Die Sun2000-Alarmregister 32008/32009/32010 werden ausgelesen und in eine benannte, nach Schweregrad klassifizierte Alarmliste dekodiert (unbekannte Bits fallen auf eine generische Kennung zurück, statt verworfen zu werden). Neue Kategorie „Wechselrichter-Alarm": flankengesteuert (eine Meldung pro neu aktivem Alarm, nichts solange er aktiv bleibt, erneut nach dem Abklingen), mit Schweregrad kritisch/Warnung. Der Diagnose-Tab zeigt eine Karte „Aktive Alarme".

Politur

  • Login-Rate-Limit: Pro-IP-Drosselung fehlgeschlagener Anmeldungen (Standard 5 Versuche / 15 min). Eine gesperrte IP bekommt 429 + Retry-After, das Passwort wird gar nicht erst geprüft. Eine erfolgreiche Anmeldung setzt den Zähler zurück.
  • Konfig-Backup/Restore: Admin- + LAN-geschützte Endpunkte zum Herunterladen der kompletten Konfiguration und zum Wiederherstellen aus einer Datei (validiert, über die Defaults gemerged; ungültige Dokumente werden abgelehnt, die laufende Konfig bleibt unverändert). Das Backup enthält Geheimnisse im Klartext — entsprechend sicher aufbewahren.
  • Theme: Das Anfangs-Theme richtet sich nach prefers-color-scheme, wenn nichts gespeichert ist.
  • i18n: Die Übersetzungstabelle wird auf beidseitige Schlüssel-Parität geprüft und liegt jetzt in einer eigenen i18n.js.
  • PWA: Ein statisches manifest.webmanifest macht das Dashboard installierbar — ohne Service Worker, der No-Cache-Vertrag bleibt erhalten.

Technik

18 neue fast-check-Property-Tests (Verlauf-Round-Trip/Retention/Grenzen/Resilienz/Roh-Fenster/keine Duplikate/CSV-Header, Alarm-Dekodierung, Alarm-Flanke/Gate/Schweregrad, Rate-Limit-Schwelle/pro-IP, Konfig-Restore-Round-Trip/Defaults/ungültig, i18n-Parität, Anfangs-Theme) plus Beispieltests für die Speicher-I/O.

Installation

hmip-hcu-fusionsolar-0.6.0.tar.gz unten herunterladen und über HCUweb → Entwicklermodus → Plugins → Aus Datei installieren einspielen.

Dauerhafter „latest"-Link: https://github.com/fabiorenner-hub/hmip-hcu-fusionsolar/releases/latest/download/hmip-hcu-fusionsolar.tar.gz

v0.5.0

Choose a tag to compare

@fabiorenner-hub fabiorenner-hub released this 23 Jun 11:41

Großes Feature-Release: konfigurierbare Benachrichtigungen über Telegram plus ein Notification Center im Dashboard.

Was 0.5.0 bringt

Flexibel konfigurierbare Meldungen

Jede Kategorie lässt sich einzeln an-/abschalten und mit einem Mindest-Schweregrad versehen: Verbindung/Standby, Modbus-Fehler und -Lockdown, HCU-WebSocket, Akku-SOC niedrig/voll, Tages-Energie-Meilensteine, Leistungsspitzen und Gerätestatus. Schwellen (SOC niedrig/voll, Meilenstein-kWh, Leistungsspitze) sind frei einstellbar.

Sinnvoll gebündelt statt Einzel-Spam

Zusammengehörige Ereignisse werden innerhalb eines konfigurierbaren Fensters zu einer Nachricht gebündelt. Kritische Ereignisse werden sofort gesendet — inklusive allem, was bis dahin gesammelt wurde. Ruhezeiten (nachts nur Kritisches, Rest danach) und ein Rate-Limit (zusammenfassen statt verwerfen) verhindern Flut.

Telegram

Versand direkt über die Telegram-Bot-HTTP-API mit Node-Bordmitteln (kein Python), inklusive Retry/Backoff. Im Konfig-Tab Bot-Token und Chat-ID setzen, speichern, „Telegram testen" drücken. Der Token wird wie andere Geheimnisse maskiert und nie geloggt.

Notification Center

Neuer Tab „Meldungen" mit nach Kategorie gruppierten ungelesenen Einträgen, „gelesen" pro Eintrag und „alle als gelesen", plus ein Badge in der Tab-Leiste, das per Live-Stream sofort aktualisiert.

Technik

Eigenes, additives Subsystem unter src/notifications/ (passive Anbindung an Poller/HCU, bestehende Abläufe unverändert), neue /api/notifications*-Routen hinter LAN- + Admin-Schutz, Config im /data/config.json mit Deep-Merge und Hot-Reload. Dazu eine fast-check-Property-Test-Suite (20 Korrektheits-Eigenschaften).

Einrichtung

  1. Bei @Botfather einen Bot anlegen → Bot-Token.
  2. Chat-ID ermitteln (z. B. via @userinfobot).
  3. Dashboard → Konfig → Telegram aktivieren, Token + Chat-ID eintragen, speichern.
  4. „Telegram testen" drücken.
  5. Kategorien, Schwellen, Gruppierungs-Fenster und Ruhezeiten nach Wunsch anpassen.

Installation

hmip-hcu-fusionsolar-0.5.0.tar.gz unten herunterladen und über HCUweb → Entwicklermodus → Plugins → Aus Datei installieren einspielen.

Dauerhafter „latest"-Link: https://github.com/fabiorenner-hub/hmip-hcu-fusionsolar/releases/latest/download/hmip-hcu-fusionsolar.tar.gz

v0.4.1

Choose a tag to compare

@fabiorenner-hub fabiorenner-hub released this 22 Jun 22:37

Bugfix-Release für den Admin-Login.

Was 0.4.1 bringt

Admin-Login war nicht erreichbar

In 0.4.0 ließ sich ein gesetztes Admin-Passwort nirgends eingeben: Das Entsperren hing allein am Schloss-Symbol im Header, das nur dann nach dem Passwort fragte, wenn der Browser den Schutzstatus bereits kannte — bei ungünstigem Timing blieb die Abfrage aus.

Jetzt gibt es im Konfig-Tab ganz oben eine eigene Karte „Admin-Modus" mit Passwortfeld und „Anmelden"/„Abmelden"-Knopf samt Statuszeile. Zusätzlich ist die Entsperr-Logik robust: Antwortet der Server mit „Passwort erforderlich" (403), wird immer nach dem Passwort gefragt — unabhängig vom zwischengespeicherten Status. Damit gibt es immer einen Weg, das Passwort einzugeben.

Bedienung

  • Konfig-Tab → „Admin-Modus" → Passwort eingeben → „Anmelden". Danach sind Schreibzugriffe (Steuerung, Register, Konfig, Reset) freigeschaltet.
  • Alternativ das Schloss-Symbol oben rechts: Es fragt jetzt zuverlässig nach dem Passwort, wenn eines gesetzt ist.

Installation

hmip-hcu-fusionsolar-0.4.1.tar.gz unten herunterladen und über HCUweb → Entwicklermodus → Plugins → Aus Datei installieren einspielen.

Dauerhafter „latest"-Link: https://github.com/fabiorenner-hub/hmip-hcu-fusionsolar/releases/latest/download/hmip-hcu-fusionsolar.tar.gz

v0.4.0

Choose a tag to compare

@fabiorenner-hub fabiorenner-hub released this 22 Jun 20:27

Großes Sicherheits- und UI-Release.

Was 0.4.0 bringt

Sicherheit

  • Nur aus dem lokalen Netz erreichbar: Dashboard und API weisen Anfragen von nicht-privaten IP-Adressen ab (lanOnly, standardmäßig an). Selbst wenn der HCU-Port versehentlich ins Internet weitergeleitet wird, ist das Dashboard nicht von außen erreichbar. Optional lässt sich mit allowedSubnets (z. B. 192.168.10.0/24) ein strikter CIDR-Allowlist setzen. /healthz bleibt für die HCU-Überwachung offen.
    • Hinweis: Hinter dem Port-Mapping der HCU kann als Quell-IP der Bridge-Gateway erscheinen. Die zuverlässige Eigenschaft ist daher „nicht-private Quellen blocken" — genau das, worauf es für die Absicherung ankommt.
  • Admin-Modus für Schreibzugriffe: Steuerbefehle, Register-Schreibzugriffe, Konfig-Änderungen, Resets und der Slave-ID-Test erfordern jetzt eine Admin-Sitzung. Mit gesetztem adminPassword ist es echter Schutz; ohne Passwort ist der Admin-Modus ein Schutz gegen versehentliche Klicks. Oben rechts im Dashboard das Schloss-Symbol nutzen.

Zuverlässigkeit

  • Standby statt Rot: Ist die TCP-Verbindung da, der Wechselrichter aber im Nachtmodus, zeigt die Statusanzeige gelb „Wechselrichter im Standby" und /healthz bleibt auf 200 — die HCU startet den Container nachts nicht mehr neu.
  • Block-Read-Fallback: Scheitert ein ganzer Registerblock an einem einzelnen nicht lesbaren Register (typisch für PV-Strings in der Dämmerung), wird der Block einzeln nachgelesen, sodass die lesbaren Werte (AC-Leistung, Status, Temperatur) trotzdem ankommen.
  • Genaue Tagesenergie aus den WR-Zählern statt aus integrierter Leistung.

Oberfläche

  • Diagramme mit Hover-Tooltip und Fadenkreuz.
  • Smarte W/kW-Einheiten.
  • Neuer Verlauf-Tab für die Langzeit-Aggregate (stündlich/täglich).
  • Autarkie-Donut, Sparklines in den Kacheln, Karte „Energie heute".
  • Umbrechende Tab-Leiste, Favicon, mitlaufende „vor X s"-Anzeige, Lade-Zustand, Tastatur-Fokus und ARIA.

Technik

  • ESLint und ein node:test-Testsatz (decode/encode, History-Energie, Modbus-Reconnect-Logik, Server-Zugriff/Admin).
  • Backend-Performance: SSE baut keine Payload, wenn niemand verbunden ist; der Eigenverbrauch wird einmal pro Snapshot statt pro Anfrage berechnet.

Installation

hmip-hcu-fusionsolar-0.4.0.tar.gz unten herunterladen und über HCUweb → Entwicklermodus → Plugins → Aus Datei installieren einspielen.

Nach dem Update: oben rechts das Schloss antippen, um den Admin-Modus zu aktivieren. Für echten Schutz unter Konfig ein Admin-Passwort setzen.

Dauerhafter „latest"-Link: https://github.com/fabiorenner-hub/hmip-hcu-fusionsolar/releases/latest/download/hmip-hcu-fusionsolar.tar.gz

v0.3.10

Choose a tag to compare

@fabiorenner-hub fabiorenner-hub released this 22 Jun 19:23

Bugfix-Release: das Debug-Dashboard lief nicht.

Was 0.3.10 bringt

Kritisch: Debug-Dashboard war komplett kaputt

Im app.js steckte in einem deutschen confirm()-Text (der „Geräte-Identität zurücksetzen"-Button aus 0.3.7) ein ASCII-Anführungszeichen, das den JavaScript-String vorzeitig beendete — ein Syntaxfehler. Dadurch brach das gesamte Dashboard-Script ab, bevor Tabs und Werte aufgebaut wurden. Sichtbar war nur das Grundlayout: keine Tabs, keine Daten, und ein dauerhaft roter Statuspunkt (das ist der CSS-Standard, kein echter Status — das Plugin und Modbus liefen die ganze Zeit einwandfrei).

Behoben. Zusätzlich werden app.js und chart.js jetzt im Build mit node --check geprüft, damit so ein Syntaxfehler nicht wieder durchrutscht.

Modell-String ohne NUL

Der Wechselrichter liefert im Modell-Register Modellname + Teilenummer durch ein NUL-Zeichen getrennt. decodeString schneidet jetzt am ersten NUL ab, sodass das Modell sauber als SUN2000-8KTL-M1 erscheint (statt SUN2000-8KTL-M1\u0000…) — sowohl im Dashboard als auch im modelType, der an die HCU geht.

Tab-Leiste bricht um

Auf schmalen Bildschirmen bricht die Tab-Leiste jetzt in mehrere Reihen um, statt die letzten Tabs („Logs", „Diagnose") ohne sichtbaren Scrollbalken über den Rand zu schieben.

Hinweis

0.3.9 enthielt bereits die Zuverlässigkeits- und Effizienz-Änderungen (Modbus-Reconnect-Fix, STATUS_EVENT nur bei Änderung, gestaffelte Daten-/Log-Haltung). Diese sind in 0.3.10 unverändert enthalten — 0.3.10 macht zusätzlich das Dashboard wieder benutzbar.

Installation

hmip-hcu-fusionsolar-0.3.10.tar.gz unten herunterladen und über HCUweb → Entwicklermodus → Plugins → Aus Datei installieren einspielen.

Dauerhafter „latest"-Link: https://github.com/fabiorenner-hub/hmip-hcu-fusionsolar/releases/latest/download/hmip-hcu-fusionsolar.tar.gz

v0.3.8 - Dashboard cache fix + quiet nights

Choose a tag to compare

@fabiorenner-hub fabiorenner-hub released this 22 Jun 17:20

Polish-Release nachdem das Plugin jetzt stabil läuft.

Was 0.3.8 bringt

Dashboard-Cache-Fix

Das Dashboard wurde bisher mit einem 1-Stunden-Cache-Header ausgeliefert. Nach einem Plugin-Update lud der Browser bis zu einer Stunde lang die alten HTML/JS/CSS-Dateien — die riefen die neue Backend-API auf und zeigten nur leere Werte (und einen veralteten „v0.2"-Footer). Ab jetzt: Cache-Control: no-cache, must-revalidate, ein normaler Reload zeigt immer die laufende Version.

Falls du nach einem Update mal wieder leere Werte siehst: einfach Hard-Reload (Strg+Shift+R) — sollte aber dank dieses Fixes nicht mehr nötig sein.

Live-Versionsanzeige

Neuer Endpoint GET /api/version. Der Footer im Dashboard zeigt jetzt die tatsächlich laufende Plugin-Version statt eines fest verdrahteten Strings. Damit siehst du auf einen Blick ob das neue Build aktiv ist.

Ruhige Nächte

Modbus-Exception 4 (Slave device failure) und Exception 2 (Illegal data address) auf PV/AC-Registern sind die normale Antwort des Wechselrichters wenn er nachts runterfährt — die PV-Strings sind spannungslos. Diese werden jetzt wie ein „Inverter schläft"-Timeout behandelt (gedrosselte Info) statt als harter Fehler. Das Log bleibt nachts sauber.

Installation

hmip-hcu-fusionsolar-0.3.8.tar.gz unten herunterladen und über HCUweb → Entwicklermodus → Plugins → Aus Datei installieren einspielen.

Dauerhafter „latest"-Link: https://github.com/fabiorenner-hub/hmip-hcu-fusionsolar/releases/latest/download/hmip-hcu-fusionsolar.tar.gz

v0.3.7 - Maintenance reset buttons

Choose a tag to compare

@fabiorenner-hub fabiorenner-hub released this 22 May 10:16

Wartungs-Update: zwei explizite Reset-Knöpfe im Konfig-Tab. Ergänzt v0.3.6, das den SDongle-Reconnect-Loop schon gefixt hat — diese Version erlaubt dir auf Knopfdruck einen sauberen Neustart, ohne SSH-Zugang zur HCU.

Warum nicht „bei jedem Setup automatisch löschen"

Klingt verlockend, ist aber gefährlich: HCU unterscheidet nicht zwischen „erste Installation" und „Plugin-Update". Eine Auto-Löschung bei jedem Setup würde bedeuten, dass nach jedem Update deine Inverter-IP weg wäre und die HmIP-Geräte mit neuen IDs angemeldet würden — also genau das was wir mit persistedSn in 0.3.5 schon gefixt haben. Stattdessen jetzt: explizite Knöpfe, die nur dann auslösen wenn du sie drückst.

Was 0.3.7 bringt

Geräte-Identität zurücksetzen

Knopf im Konfig-Tab: löscht nur die persistierte Inverter-SN. Inverter-IP, Port, Cloud-Zugangsdaten, alles andere bleibt. Beim nächsten erfolgreichen Modbus-Read wird eine frische SN gespeichert.

Sinnvoll wenn:

  • Du in der HmIP-App alle Geräte gelöscht hast und sie mit neuen IDs registriert haben willst
  • Du den Inverter physisch getauscht hast

Komplett-Reset

Knopf im Konfig-Tab: schreibt eine Marker-Datei /data/.reset_on_next_boot und beendet das Plugin nach 2 Sekunden. Beim Container-Restart durch die HCU wird /data/config.json gelöscht und das Plugin startet mit den Default-Werten — exakt wie eine frische Installation.

Doppelt bestätigt:

  1. Confirm-Dialog
  2. „RESET" muss eingegeben werden

Danach musst du in HCUweb einmal frisch konfigurieren (Inverter-IP eingeben, speichern). Genau das was du wolltest.

Neue API-Endpoints

  • POST /api/config/clear-sn — wischt nur persistedSn
  • POST /api/config/reset — Body {"confirm":"RESET"} erforderlich

Sauberer Komplett-Reset (Empfehlung)

  1. Im Plugin-Dashboard → Konfig → Komplett-Reset drücken
  2. „RESET" eingeben
  3. Plugin beendet sich, HCU startet es neu
  4. Wechselrichter stromlos machen (DC + AC, 30 s, einschalten) damit der Dongle-Rate-Limiter weg ist
  5. 2-3 min warten bis Dongle wieder Cloud-Verbindung hat
  6. In HmIP-App alte „nicht erreichbar"-Geräte rauswerfen
  7. In HCUweb → Plugin → Konfig: nur Inverter-IP eintragen, speichern
  8. Logs ansehen: sollte sauber starten

Installation

hmip-hcu-fusionsolar-0.3.7.tar.gz unten herunterladen und über HCUweb → Entwicklermodus → Plugins → Aus Datei installieren einspielen.

Dauerhafter „latest"-Link: https://github.com/fabiorenner-hub/hmip-hcu-fusionsolar/releases/latest/download/hmip-hcu-fusionsolar.tar.gz

v0.3.6 - SDongle reconnect-loop fix

Choose a tag to compare

@fabiorenner-hub fabiorenner-hub released this 22 May 10:05

Wichtiger Bugfix wenn dein SDongle nach dem Speichern einer Konfig-Änderung in einen Endlos-Loop aus „Modbus connected → socket closed by peer" geht.

Problem

Der SDongleA-05 hat einen aggressiven Rate-Limiter: wenn er eine TCP-Verbindung schließt und du innerhalb von ~30 s neu connectest, weist er alle weiteren Verbindungen für die nächsten 10+ Minuten mit RST ab. Selbst wenn das ursprüngliche Setup vollkommen sauber war.

In Versionen vor 0.3.6 hat das Plugin nach jeder kleinen Config-Änderung (z. B. Dashboard-Port, Sprache) den Modbus-Poller komplett neu gestartet — und damit den Dongle-Rate-Limiter ausgelöst. Folge: Plugin lief 12+ Stunden problemlos, dann ein Save in HCUweb, ab da nichts mehr.

Was 0.3.6 ändert

Soft Config Updates

Konfig-Änderungen, die nicht Modbus-Verbindungsparameter betreffen (Dashboard, Hardware-Flags, Cloud-Fallback, Speicher-Schalter), werden jetzt im laufenden Plugin angewendet, ohne Modbus zu trennen. Nur Änderungen an inverterHost, inverterPort oder inverterUnitId lösen einen echten Reconnect aus.

30 s Cooldown nach Peer-Close

Wenn der Dongle uns trotzdem mal mit RST schließt (z. B. bei Cloud-Sync-Konflikt), warten wir jetzt mindestens 30 Sekunden bevor wir einen neuen Connect-Versuch starten. Das bricht den Endlos-Loop.

Static Info wird nicht mehr überschrieben

Wenn ein Static-Read flackert, wird die bereits bekannte Seriennummer/Modell/FW nicht mehr durch Nulls ersetzt. Die nervige Inverter: ? SN ? FW ?-Zeile sollte ab jetzt verschwunden sein — der Log zeigt nur noch den ersten erfolgreichen Read.

Logs ruhiger

Identische socket closed by peer-Warnungen werden auf max. 1× pro Minute gedrosselt.

Wenn du gerade in dem Loop steckst

Bevor du das Update einspielst:

  1. Wechselrichter komplett stromlos machen (DC-Schalter + Hauptsicherung), 30 s warten, wieder einschalten
  2. 2 Minuten warten bis Dongle wieder online ist
  3. Dann erst v0.3.6 hochladen

Installation

hmip-hcu-fusionsolar-0.3.6.tar.gz unten herunterladen und über HCUweb → Entwicklermodus → Plugins → Aus Datei installieren einspielen.

Der dauerhafte „latest"-Link für künftige Auto-Update-Skripte: https://github.com/fabiorenner-hub/hmip-hcu-fusionsolar/releases/latest/download/hmip-hcu-fusionsolar.tar.gz

v0.3.5 - Stable HmIP device IDs

Choose a tag to compare

@fabiorenner-hub fabiorenner-hub released this 22 May 09:58

Empfohlen für alle Nutzer mit doppelten "nicht erreichbar"-Geräten in der HmIP-App.

Was ist neu

Stabile HmIP-Geräte-IDs

In Versionen vor 0.3.5 wurden die HmIP-Geräte-IDs aus der live gelesenen Inverter-Seriennummer abgeleitet. Wenn der allererste Modbus-Read fehlschlug (träger Modbus, Nachtmodus, Firmware-Update), kam ein generischer Fallback-Name zum Einsatz. Der nächste erfolgreiche Start meldete dann Geräte mit der echten SN als ID — die HCU sah die als neue Geräte an, die alten blieben als „nicht erreichbar" stehen.

Fix: Die Inverter-SN wird beim ersten erfolgreichen Modbus-Read in /data/config.json als persistedSn gespeichert. Folgestarts benutzen immer denselben Wert. Damit gibt es keine Duplikate mehr.

Bereinigung der HmIP-App (einmalig nach dem Update):

  1. In der HmIP-App auf Geräte → alle anzeigen
  2. „Nicht erreichbar"-Duplikate antippen → Aus dem System entfernen
  3. Die übrig gebliebenen sind die richtigen, mit stabilen IDs

Konfig-Form

Neue „Geräte-Identität"-Gruppe in HCUweb mit der read-only Anzeige der gerade verwendeten Seriennummer. Praktisch wenn man verifizieren will welche SN die Geräte-IDs treibt.

Troubleshooting-Doku erweitert (DE + EN)

  • „Werte vergleichen — FusionSolar vs. Plugin" — erklärt warum DC vs AC, Cloud-Verzögerung und Speicher-Idle-Rauschen wie Diskrepanzen aussehen
  • „Doppelte Geräte in der HmIP-App" — Beschreibung des Pre-0.3.5-Bugs und der Bereinigung
  • „Installer-Konto bekommen" — drei konkrete Wege (Original-Installateur, selbst registrieren, Huawei Support)
  • „Firmware-Update über das FusionSolar-Webportal" — vollständige 12-Punkte-Anleitung

Build-Skripte

npm run build / npm run build:win produziert ab jetzt zwei Tarballs: hmip-hcu-fusionsolar-<version>.tar.gz (versioniert) und hmip-hcu-fusionsolar.tar.gz (versionslos). Letzteres ist das was die README-Download-URL releases/latest/download/... erwartet.

Installation

Lade die Datei hmip-hcu-fusionsolar-0.3.5.tar.gz (oder hmip-hcu-fusionsolar.tar.gz) unten herunter und installiere sie auf deiner HCU2 über HCUweb → Entwicklermodus → Plugins → Aus Datei installieren.

Der bequeme dauerhafte Direkt-Link: https://github.com/fabiorenner-hub/hmip-hcu-fusionsolar/releases/latest/download/hmip-hcu-fusionsolar.tar.gz