Skip to content

SolixBar v0.4.3

Latest

Choose a tag to compare

@github-actions github-actions released this 12 Jul 22:57

Hinweis: Das Bundle ist ad-hoc signiert. Beim ersten Start: Rechtsklick -> "Oeffnen".
Note: The bundle is ad-hoc signed. First launch: right-click -> "Open".

0.4.3 - 2026-07-13

  • DE: Verlaufsgraph: Kurven lassen sich optional glätten (weiche, fliessende Kurven, die durch alle Messpunkte laufen und auf die Plotfläche geklemmt sind, damit ein Bogen nie scheinbar negative Watt unter die Nulllinie zieht), und die dezente Flächenfüllung unter den Kurven ist jetzt je Kurve (Akku, Solar, Netzbezug) einzeln wählbar — beides unter App → Dashboard. Die Demo-Datenquelle zeigt den Akkustand jetzt als langsame, realistische Lade-/Entladekurve statt als Minuten-Sägezahn.

  • EN: History graph: curves can optionally be smoothed (soft, flowing curves that run through every measurement and are clamped to the plot area so a bend never draws seemingly negative watts below the zero line), and the subtle area fill under the curves is now selectable per curve (battery, solar, grid import) — both under App → Dashboard. The demo data source now shows the battery level as a slow, realistic charge/discharge curve instead of a per-minute sawtooth.

  • DE: Die Fragezeichen-Knöpfe in den Einstellungen zeigen beim Klick jetzt ausführliche, verständliche Hilfetexte in einem lesbaren Popover (bisher blieb die Sprechblase leer); der Hover-Tooltip bleibt der kurze Hinweis.

  • EN: The question-mark buttons in the settings now show extensive, easy-to-understand help texts in a readable popover on click (previously the bubble stayed empty); the hover tooltip remains the short hint.

  • DE: Dashboard-Kacheln (Akku/Solar): Der Wert passt seine Größe an die verfügbare Breite an, statt den Trend-Pfeil abzuschneiden; bei drei oder vier PV-Eingängen werden die Einzelwerte als 2×2-Raster auf zwei Zeilen gezeigt (der zweizeilige Wert wächst nach unten, die Titel bleiben auf gleicher Höhe).

  • EN: Dashboard tiles (battery/solar): the value scales to the available width instead of cutting off the trend arrow; with three or four PV inputs the individual values are shown as a 2×2 grid on two lines (the two-line value grows downward, the titles stay aligned).

  • DE: Neue Datenquelle "SOLIX-Konto (direkt)": SolixBar fragt Anker direkt mit Mail und Passwort ab — ohne konfigurierten Befehl und ohne lokale Python-Installation. Das Release-Bundle enthält eine portable Python-Laufzeit samt SOLIX-Modulen (arm64; auf Intel-Macs bleiben Demo-, Befehl- und URL-Modus nutzbar). Die Zugangsdaten gehen als stdin-JSON an den Helper statt als Umgebungsvariablen, das Passwort liegt weiterhin nur im macOS-Schlüsselbund. Wer bisher den vorbereiteten SOLIX-Befehl nutzte, wird automatisch auf den direkten Modus umgestellt.

  • EN: New data source "SOLIX account (direct)": SolixBar queries Anker directly with email and password — no configured command and no local Python installation required. The release bundle ships a portable Python runtime with the SOLIX modules (arm64; on Intel Macs the demo, command, and URL modes remain available). Credentials are passed to the helper as stdin JSON instead of environment variables; the password still lives only in the macOS Keychain. Users of the prepared SOLIX command are migrated to the direct mode automatically.

  • DE: Weniger API-Aufrufe: Der Helper cached die teure Tagesstatistik 10 und die Gesamtstatistik 15 Minuten (atomar geschriebene 0600-Dateien im Application-Support-Ordner); die Live-Leistungswerte kommen weiterhin bei jedem Abruf frisch. Ertragszustand und Cache liegen nie mehr im (signierten) App-Bundle.

  • EN: Fewer API calls: the helper caches the expensive daily statistics for 10 and the total statistics for 15 minutes (atomically written 0600 files in Application Support); live power values stay fresh on every refresh. Energy state and cache never live inside the (signed) app bundle anymore.

  • DE: Fehler-Backoff: Nach fehlgeschlagenen Abrufen verdoppelt sich der Abstand bis zum nächsten Versuch (maximal 30 Minuten) und springt beim ersten Erfolg auf das eingestellte Intervall zurück — bei toter API hämmert die App nicht mehr die ganze Nacht durch. Der nächste Abruf wird erst nach Abschluss des laufenden geplant.

  • EN: Failure backoff: after failed refreshes the delay to the next attempt doubles (capped at 30 minutes) and resets to the configured interval on the first success — a dead API no longer gets hammered all night. The next refresh is scheduled only after the current one finishes.

  • DE: Unsichtbare Fenster (geschlossenes Dashboard-/Verlaufsfenster) werden nach einem Abruf nicht mehr unnötig neu aufgebaut; beim Öffnen wird ohnehin frisch gerendert.

  • EN: Hidden windows (closed dashboard/history window) are no longer rebuilt unnecessarily after a refresh; opening them renders fresh anyway.

  • DE: Release-Prozess: scripts/prepare_solix_runtime.sh lädt die portable Laufzeit reproduzierbar (python-build-standalone, gepinnt), package_app.sh bettet sie ein und entfernt die Debug-Map aus dem Binary (keine absoluten Quellpfade mehr im Bundle), verify_release.sh prüft Version, Signatur, private Daten und die Importierbarkeit der SOLIX-Module; die CI macht das alles automatisch.

  • EN: Release process: scripts/prepare_solix_runtime.sh downloads the portable runtime reproducibly (python-build-standalone, pinned), package_app.sh embeds it and strips the debug map from the binary (no more absolute source paths in the bundle), verify_release.sh checks version, signature, private data, and that the SOLIX modules import; CI does all of this automatically.


☕ SolixBar ist kostenlos und bleibt es. Wenn es dir nützt, ist ein Kaffee eine nette Art, Danke zu sagen — völlig optional.
☕ SolixBar is free and always will be. If it's useful to you, a coffee is a kind way to say thanks — completely optional.

Support SolixBar on Ko-fi