Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SolixBar

SolixBar ist eine native macOS-Menueleisten-App fuer Anker SOLIX Uebersichtsdaten.

Sie zeigt Akku, PV, Hauslast, Netzbezug, Energiefluss und Ertrag direkt in der Menueleiste, mit modernem Dashboard, abgedockter schmaler Leiste und Verlaufsgraf.

English: SolixBar is a native macOS menu bar app for Anker SOLIX overview data. It provides a compact menu bar readout, a modern dropdown dashboard, a detachable slim bar, and a history graph.

Die Projekt-Homepage liegt in docs/ und kann mit GitHub Pages veroeffentlicht werden.

English: Project homepage files are in docs/ and can be published with GitHub Pages.

Screenshots / Screenshots

SolixBar menu bar preview

SolixBar detached bar preview

SolixBar graph preview

SolixBar warning settings

SolixBar language selection

Funktionen / Features

  • Native AppKit-Menueleisten-App. / Native AppKit menu bar app.
  • Demo-Modus zum Testen ohne Zugangsdaten. / Demo data mode for testing without credentials.
  • Direkter SOLIX-Login sowie Live-Daten ueber lokalen JSON-Befehl oder JSON-URL. / Direct SOLIX login plus live data via local JSON command or JSON URL.
  • Frei waehlbare Menueleistenwerte, Bezeichnungen, Symbole, App-Symbol und Skalierung. / Configurable menu bar values, labels, symbols, app icon visibility, and scaling.
  • Getrennte Auswahl und Reihenfolge fuer Menueleiste und abgedockte Leiste mit sofortiger Live-Vorschau; beide Anzeigen bleiben auch beim Abdocken parallel konfigurierbar. / Independent selection and ordering for the menu bar and detached bar with instant live preview; both displays remain configurable in parallel while detached.
  • Optionale farbige Energiefluss-Pfeile in der Menueleiste. / Optional colored energy-flow arrows in the menu bar.
  • Abgedockte schmale Leiste mit Andocken-Funktion, Fixieren gegen versehentliches Verschieben und gespeichertem Zustand. / Detachable slim bar with dock action, optional movement lock, and restored state.
  • Individuelle macOS-Warnungen fuer Akku, Solar-Einbruch, Hauslast, Netzbezug, Einspeisung sowie Akku-Ladung und -Entladung. / Individual macOS warnings for battery, solar drop, home load, grid import, grid export, battery charging, and battery discharging.
  • Hell, Dunkel oder automatisch passend zum System. / Light, dark, or automatic system appearance.
  • Vollstaendig lokalisierte App-Texte in 20 Sprachen: Deutsch, Englisch, Franzoesisch, Spanisch, Italienisch, Niederlaendisch, Polnisch, Portugiesisch, Tschechisch, Daenisch, Schwedisch, Norwegisch, Finnisch, Russisch, vereinfachtes und traditionelles Chinesisch, Japanisch, Koreanisch, Tuerkisch und Rumaenisch. / Fully localized UI text in 20 languages: German, English, French, Spanish, Italian, Dutch, Polish, Portuguese, Czech, Danish, Swedish, Norwegian, Finnish, Russian, Simplified and Traditional Chinese, Japanese, Korean, Turkish, and Romanian.
  • Hinweis / Note: Arabisch ist derzeit nicht enthalten, weil eine hochwertige arabische Fassung neben der Uebersetzung eine vollstaendig gepruefte Rechts-nach-links-Darstellung benoetigt. / Arabic is not currently included because a high-quality Arabic version requires a fully verified right-to-left layout in addition to translated text.
  • Login-Autostart. / Login autostart support.
  • Aufklapp-Dashboard mit Akku, PV, Hauslast, Netzbezug, Akku-Fluss, Tagesertrag, Gesamtertrag und Status. / Dropdown dashboard with battery, solar, home load, grid import, battery flow, daily yield, total yield, and status.
  • Animierter Verlaufsgraf fuer Akku, Solar und Netzbezug. / Animated history graph for battery, solar, and grid import.
  • Zeitraeume: Aktuell, 24 Stunden, 7 Tage, 30 Tage und individuell. / Graph ranges: current, 24 hours, 7 days, 30 days, and custom.
  • Sichtbare Fragezeichen-Hilfen fuer jeden Messwert, jede Warnung und weitere Einstellungen. / Visible question-mark help controls for every metric, every warning, and additional settings.
  • Lokale Logdatei fuer Fehleranalyse: ~/Library/Application Support/SolixBar/SolixBar.log. / Local log file for troubleshooting.

Version / Version

Aktuelle Version / Current version: 0.6.1

Versionshinweise stehen in CHANGELOG.md. / See CHANGELOG.md for release notes.

Voraussetzungen / Requirements

  • macOS 14 oder neuer. / macOS 14 or newer.
  • Das fertige Release benoetigt weder Python noch Xcode. / The packaged release requires neither Python nor Xcode.
  • Nur fuer lokale Quellcode-Builds: Swift-Toolchain oder Xcode Command Line Tools. / Source builds only: Swift toolchain or Xcode Command Line Tools.

Bauen und Starten / Build and Run

Direkt mit SwiftPM starten. / Run directly from SwiftPM:

swift run SolixBar

App-Bundle zum Doppelklicken erstellen. / Create a double-clickable app bundle:

sh scripts/package_app.sh
unzip outputs/SolixBar-0.6.1-macOS-arm64.zip -d outputs
open outputs/SolixBar.app

Das Paket-Skript erwartet die lokale, nicht eingecheckte Python-Laufzeit unter work/; die veroeffentlichte ZIP-Datei enthaelt sie bereits. / The packaging script expects the local, untracked Python runtime below work/; the published ZIP already includes it.

Datenquellen / Data Source Modes

SolixBar unterstuetzt vier Modi. / SolixBar supports four modes:

  • SOLIX Login: direkter Abruf mit AES-verschlüsselt lokal gespeicherten Zugangsdaten. / Direct fetch with locally stored AES-encrypted credentials.
  • Demo: erzeugte Beispieldaten zum Testen der Oberflaeche. / Generated sample data for testing the UI.
  • Lokaler JSON-Befehl: fuehrt einen lokalen Befehl aus und liest JSON aus stdout. / Runs a local command and reads JSON from stdout.
  • JSON-URL: laedt JSON von einer lokalen oder entfernten HTTP-Adresse. / Fetches JSON from a local or remote HTTP endpoint.

Das JSON sollte so aussehen. / The JSON should look like this:

{
  "siteName": "Anker SOLIX",
  "batteryPercent": 82,
  "solarWatts": 642,
  "homeWatts": 318,
  "gridWatts": -86,
  "batteryWatts": 238,
  "todayKWh": 3.74,
  "totalKWh": 427.8,
  "status": "Online",
  "updatedAt": "2026-07-06T19:30:00Z"
}

Live SOLIX Daten / Live SOLIX Data

Anker stellt keine stabile oeffentliche SOLIX API bereit. SolixBar 0.6.1 liefert den benoetigten Python-Helper und seine Laufzeit im App-Bundle mit. Fuer den normalen SOLIX-Login sind keine Projektordner, Terminalbefehle oder persoenlichen Dateipfade mehr erforderlich. Der direkte Abruf haelt Echtzeitdaten fuer alle unterstuetzten Anlagengeraete gemeinsam aktuell und verwendet eine bereits aktive Fuenf-Minuten-Anforderung weiter. Eine unabhaengige Ueberwachung stellt ausgebliebene oder festhaengende Aktualisierungen wieder her. Fuer den PV-Gesamtertrag prueft SolixBar PV-Geraetejahre, Anlagenjahre und historische Tagesertraege. Falls Anker keinen Gesamtwert bereitstellt, wird die reale Messung lokal und datenquellenuebergreifend fortgefuehrt; fuer frueher fehlende Zeitraeume kann ein manueller Gesamtstartwert gesetzt werden.

English: Anker does not provide a stable public SOLIX API. SolixBar 0.6.1 bundles the required Python helper and runtime inside the app. Normal SOLIX login no longer requires a project checkout, Terminal commands, or personal file paths. Direct refreshes keep real-time data current for every supported system device together and reuse an active five-minute request. An independent watchdog recovers missed or stuck refreshes. For PV lifetime yield, SolixBar checks PV-device years, site years, and historical daily yields. If Anker provides no total, the real measurement continues locally across live data sources; a manual total starting value can account for earlier missing periods.

Oeffne Einstellungen -> Datenquelle, waehle SOLIX Login, trage Mail, Passwort und Land ein und druecke Speichern. Mail und Passwort werden ohne Schluesselbund-Abfrage AES-verschluesselt im privaten Application-Support-Ordner der App gespeichert. Dort liegen auch Verlauf, API-Cache und lokale Ertragswerte.

English: Open Settings -> Data Source, choose SOLIX Login, enter email, password, and country, then press Save. Email and password are stored AES-encrypted in the app's private Application Support folder without a Keychain prompt. History, API cache, and local yield state are stored there as well.

Du kannst jederzeit zu Demo oder JSON-URL wechseln; SolixBar zeigt nur die Felder an, die fuer den gewaehlten Modus notwendig sind.

English: You can still switch back to Demo or JSON-URL; SolixBar only shows the fields needed for the selected mode.

Der separate Modus Lokaler JSON-Befehl bleibt fuer fortgeschrittene eigene Datenquellen erhalten.

English: The separate Local JSON Command mode remains available for advanced custom data sources.

Repository-Hinweise / Repository Notes

Das Repository schliesst lokale Build-Produkte, gepackte Apps, Python-Laufzeiten und heruntergeladene API-Checkouts bewusst aus.

English: The repository intentionally excludes local build products, packaged apps, Python runtimes, and downloaded API checkouts.

About

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages