Skip to content

About

Automatisches Übertakten, Benchmarken und 24/7-Überwachung für Bitaxe- und NerdAxe-Miner – Windows-App und Server für Raspberry Pi, Windows und Docker: Browser & Handy-App, Push, Pool-Steuerung, Ertrag gegen Stromkosten, Protokoll, Sicherung, Home Assistant, E-Paper, Lüfter

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

BitaxeTuner – Bitaxe & NerdAxe automatisch optimieren und rund um die Uhr überwachen

⬇ Herunterladen · Webseite · Pico-Bauanleitung · 24/7-Server · English

BitaxeTuner

Automatisches Übertakten, Benchmarken und Überwachen für Bitaxe- und NerdAxe-Miner – als Windows-Programm (WPF) und als 24/7-Server für Raspberry Pi, Windows oder Docker mit Browser-Oberfläche. Automatic overclocking & benchmarking for Bitaxe and NerdAxe miners – English README.

BitaxeTuner erhöht Frequenz und Kernspannung deines Miners Schritt für Schritt, misst jede Kombination (Hashrate, Leistung, Effizienz, Temperaturen, Fehlerrate) und zeigt dir am Ende die beste Einstellung – wahlweise für maximale Hashrate, beste Effizienz (J/TH) oder einen Kompromiss aus beidem. Mehrere Geräte lassen sich parallel testen.

Browser-Oberfläche: Kennzahlen, Verlauf und eine Karte je Miner

⚠️ Übertakten auf eigenes Risiko. Höhere Frequenz und Spannung erhöhen Leistungsaufnahme und Temperatur und können die Hardware beschädigen. Prüfe, ob Netzteil und Kühlung ausreichen.

Sprache

Desktop-App, Browser-Oberfläche, Push-Meldungen, Tagesbericht, E-Paper-Anzeige und Home Assistant gibt es auf Deutsch, Englisch, Spanisch, Portugiesisch (Brasilien), Französisch und Niederländisch (ab 0.9.12; die vier neuen Sprachen sind maschinell übersetzt – Verbesserungen von Muttersprachlern gern als Issue oder Pull Request):

  • Desktop-App: Einstellungen → Sprache (Automatisch = Windows-Sprache), wirkt nach einem Neustart der App.
  • Browser: Sprachauswahl im Kopf (DE, EN, ES, PT, FR, NL) – jeder Browser merkt sich seine Wahl (Standard: Browser-Sprache).
  • Server (Push, Tagesbericht, E-Paper, Statustexte): Einstellungen → Sprache des Servers in der Browser-Oberfläche. Ein Raspberry Pi steht ab Werk auf Englisch – für deutsche Meldungen dort „Deutsch“ wählen.
  • Zahlen und Datum folgen dem Format des Systems, solange dessen Sprache passt.

Funktionen

Tuning

  • Automatischer Benchmark pro Gerät: stabil → Frequenz erhöhen · instabil → Spannung erhöhen · Grenze erreicht → sofort abbrechen. Optional wird pro Frequenz auch die niedrigste stabile Spannung gesucht (effizienter).
  • Sicherheits-Watchdog bei jedem Messwert: max. Chip-Temperatur, VR-Temperatur, Leistung, Eingangsspannung, Überhitzungs- und Spannungsfehler der Firmware. Bei Abbruch, Fehler oder Programmende werden die ursprünglichen (oder die beste gefundene) Einstellungen wiederhergestellt.
  • Parallelbetrieb mehrerer Miner, Pause/Fortsetzen und Fortsetzen abgebrochener Läufe.
  • Live-Ansicht mit Hashrate-/Temperaturverlauf, Heatmap Frequenz × Spannung, Ergebnistabelle, CSV-Export. Ergebnisse per Klick auf die Spalten sortieren (z. B. J/TH aufsteigend) und direkt in der Automatik speichern (als Voreinstellung für Zeitplan und Strompreis – am Miner ändert sich dabei nichts).
  • Dauertest und Effizienz-Ratgeber (siehe Bedienung).
  • Simulationsmodus: Adresse sim oder sim:<profil-id> eingeben (z. B. sim:nerdqaxe-plusplus) – zum Ausprobieren ohne echte Hardware (läuft 30× schneller).

Überwachung

  • Gesamt- und Einzelansicht mit 14 Kacheln, Wallet-Guthaben (mempool.space / Blockchair), Verlauf 1 h / 24 h / 7 / 30 Tage aus history.db (Hashrate, Temperatur, Leistung, Effizienz J/TH).
  • Netzwerk: zuletzt gefundene Blöcke, Pool-Ranking, Solo-Chancen BTC/BCH.
  • Gesundheits-Frühwarnung: täglicher Vergleich der letzten 7 Tage mit den 4 Wochen davor – Kühlung (Temperatur je Watt), Effizienz ohne Tuning-Änderung, Lüfter-Drehzahl, abgelehnte Shares, Verfügbarkeit.
  • Watchdog (Neustart bei 0 Hashrate; ab 0.9.12 auch, wenn die Hashrate eine einstellbare Zeit lang deutlich unter dem Normalwert liegt – Einstellungen → Überwachung), Firmware-Check, Best-Diff-Rekorde, Tray, Autostart.
  • Steuer (nach deutschem Steuerrecht, § 23 EStG): Zuflüsse mit EUR-Kurs, Verkäufe/Haltefrist (FIFO), CSV-Export, Stromkosten je Monat neben den Zuflüssen. Mit dem Pool-Konto (Mining-Dutch) auch DGB, NMC und andere Coins.

Neu in 0.9.23

  • „Was ist los?“ auf der Miner-Karte: Ursache, was zu prüfen ist, Knopf zur passenden Stelle (Browser und Desktop).
  • Rollen: Ansicht-Zugänge, die bedienen dürfen – Motor pausieren, Voreinstellung anwenden, Neustart, Wartungsmodus, optional je Gruppe; Frequenz/Spannung frei, Einstellungen und Steuer bleiben beim Admin.
  • Verschlüsselte Sicherung ins Netz: WebDAV (Nextcloud, Synology) oder S3 (Backblaze B2, MinIO), AES-256-GCM mit eigenem Passwort, nach dem Hochladen geprüft, aus der Liste einspielbar.
  • Pico-Übersicht: welcher Pico ist wo, Blinken, Neustart, Programm und Schlüssel über WLAN; neu koppeln per BOOTSEL-Taste mit Code zum Vergleichen (Pico-Programm 8.5).
  • Chat-Bots: Discord mit farbigen Karten, Minernamen-Vorschlägen, Bot-Status und privaten Antworten; Warnungen mit Knöpfen [Details] [Verlauf] in Discord und Telegram.
  • Übersicht-Vorlagen (Kompakt, Ertrag, Technik, Wand-Tablet), Suchfeld in den Einstellungen, „?“ an Fachbegriffen, Hinweise statt leerer Seiten, Wischen zwischen Minern auf dem Handy.

Neu in 0.9.22

  • Fehlerbehebung SSH nach Pi-Tausch: Die Desktop-App erkennt einen geänderten SSH-Schlüssel des Servers (neuer Pi unter derselben Adresse), zeigt alten und neuen Fingerabdruck und übernimmt den neuen nach Bestätigung; „Schlüssel übertragen“ prüft zuerst, ob der Schlüssel schon eingetragen ist.

Neu in 0.9.21

  • Chat-Bots für Telegram und Discord: /status, /miner, /history, /pool, /system … mit Bild der E-Paper-Seite, nur lesend; für Discord ist BitaxeTuner selbst die Bot-Vorlage. Optional angepinnte Live-Nachricht.
  • Ruhezeit: nachts Push-Meldungen sammeln (Wichtiges sofort), Zusatz- und Server-Lüfter begrenzen.
  • PV-Prognose (Open-Meteo) für die PV-Automatik und neue Automatik-Art Heizung (Raumtemperatur regelt).
  • Amortisation je Miner mit Garantie-Erinnerung und Abschnitt im Monatsbericht.
  • HTTPS-Assistent („Verbindung prüfen“, DNS-Rebind-Hinweis) und Zugriff von unterwegs per VPN.
  • Kurse ausblenden; Neuigkeiten in allen sechs Sprachen.

Neu in 0.9.20

  • Raspberry Pi 5 – Server-Lüfter: Drehzahl und Stufe sehen und regeln (Firmware, CPU-Kurve oder nach Miner-Temperatur); ein stehender Lüfter erscheint im Systemzustand, auch auf dem E-Paper.
  • Weitere Pool-Konten: public-pool.io, solo.ckpool.org, OCEAN, Braiins Pool und ViaBTC – mit Übersicht-Panel, E-Paper-Seite „Pool“, Zuflüssen für die Steuer und Push bei Auszahlungen.
  • Eigene Meilensteine in den Neuigkeiten (Rekord, erste Auszahlung, Betriebsjahre, kWh, erster Monat im Plus).
  • Neuer Server: Sicherung gleich beim Einrichten einspielen; Umzug vom alten auf den neuen Server in der Desktop-App.
  • Pi besser geschützt: Bilder werden vorab verkleinert und speicherbegrenzt verarbeitet, Hardware-Watchdog, Speichergrenze für den Dienst, Protokoll übersteht Abstürze, Schreiblast der Speicherkarte im Systemzustand.

Neu in 0.9.19

  • Spectra 6: Das große Bild kommt jetzt sicher an, und die Lüfter drehen während der Übertragung nicht mehr kurz auf 100 % (Pico-Programm 8.4, wird automatisch aufgespielt).

Neu in 0.9.18

  • Pico-WLAN vom Server: Beim Einrichten eines Pico übernimmt der Raspberry Pi sein eigenes WLAN – kein Eintippen mehr; das Passwort geht direkt zum Pico (bestehende Pis: Systemdateien einmal erneuern).
  • Pico neu einrichten für eine andere Anzeige löst die alte Zuordnung – kein „Schlüssel passt nicht“ mehr.

Neu in 0.9.17

  • PV-Automatik: viel Sonne → volle Leistung, wenig Sonne → Stromsparen. PV-Leistung aus einer Messsteckdose (Shelly, Tasmota, FRITZ!DECT) oder aus Home Assistant – darüber auch Anker Solix (Einstellungen → PV-Anlage).
  • Effizienz-Ratgeber mit dem Ziel Stromsparen (geringste stabile Leistung).
  • Andere Firmware (z. B. ZyberOS): in der Übersicht mit allen Werten, nur ohne Benchmark und Übertaktung.
  • Pool-Vorlage nach Zeitplan: je Zeitfenster eine beliebige Pool-Vorlage, z. B. Mining-Party am Samstagabend.
  • E-Paper in Farbe: Waveshare 7,3″ Spectra 6 (sechs Farben) als wählbarer Display-Typ, Anschluss an denselben Pins der Lüfterplatine (Pico-Programm 8.3).

Neu in 0.9.16

  • Systemzustand mit Warnung (Einstellungen → System): freier Speicher, Temp-Ordner, Sicherung, USB-Stick, auf dem Raspberry Pi Arbeitsspeicher, CPU-Temperatur, Unterspannung und schreibgeschützte Speicherkarte, dazu Uhrzeit (NTP), gehäufte Neustarts, Zertifikat und abgebrochene Updates – alle 10 Minuten geprüft, Probleme per Push (Wartung).
  • Server-Update läuft auf dem Server zu Ende: Sicherung, Download, Installation und Neustart brauchen den Browser nicht mehr – die Seite darf geschlossen werden. Notfalls installiert die Desktop-App das signierte Paket per SSH (mit Handsicherung) und richtet die Systemdateien (Dienst, USB-Regel, Neustart) neu ein.
  • Verlauf wird kleiner: history.db wird einmal kompakt neu geschrieben (geprüft, erst dann getauscht), danach gibt das Aufräumen leeren Platz laufend zurück.
  • Pool-Kontrolle: Meldung, wenn ein Miner von der übertragenen Pool-Vorlage abweicht („wieder angleichen“), und Coinbase-Prüfung – zahlt der Pool einen gefundenen Block wirklich an deine Adresse?
  • Wartungs-Erinnerungen je Miner (Betriebsstunden; Staub/Kühlkörper, Lüfter, Wärmeleitpaste).
  • Kurse: geschürfte Coins, Merged-Mining-Coins aus dem Pool-Konto und eigene Wunsch-Coins (z. B. ETH, LTC).
  • E-Paper: neue Seiten Eigenes Bild, Ertrag & Strom, Solo-Chance, Systemzustand, Bitcoin-Netz, Pool, Monatsvergleich; Regeln je Sonderanzeige und Seitenfolge nach Tageszeit.
  • Neuigkeiten: Halving-Countdown und Meldung bei großen Kursbewegungen.
  • Wunsch einreichen direkt in der App – ohne Konto; landet als Idee auf dem Projekt-Board.

Strom und Kosten

  • Stromtarif brutto oder netto (mit MwSt.-Satz); optional Stundenpreise von aWATTar (Börsenpreis + Aufschlag) oder Tibber (Endpreis).
  • Smart Plugs (Shelly Gen1, Plus/Pro/Gen3, Tasmota und FRITZ!DECT über die FRITZ!Box – jeweils mit Leistungsmessung): echter Verbrauch an der Steckdose inklusive Netzteil und Zusatzlüftern, Verlauf gegen AxeOS, Meldung bei Ausfall oder steigendem Mehrverbrauch. Es wird nur gemessen, nie geschaltet.
  • Monats- und Jahresbericht: Verfügbarkeit, Ø Hashrate/Temperatur/Leistung, J/TH, kWh, Stromkosten und Zuflüsse – als CSV oder druckbare Seite (PDF), optional Monats-Push.
  • Ertrag gegen Stromkosten (ab 0.9.14): Kachel „Gewinn (24 h)“ und Panel mit 24 h, 7 und 30 Tagen und dem laufenden Monat, Zeile im Tagesbericht, Saldo im Monatsbericht. Mit Pool-Konto zählen die Gutschriften beim Pool (aktueller Kurs – eine Schätzung), sonst die dokumentierten Zuflüsse der Steuer.

Mehrere Miner

  • Automatische Geräteerkennung (Netzwerkscan in Desktop und Browser) und passende Geräteprofile mit sinnvollen Grenzen.
  • Einstellungen übertragen: Pool/Fallback und Lüfter eines Miners auf andere übernehmen – Vorschau alt → neu, vorher Sicherung je Miner, Worker-Name bleibt, Frequenz und Spannung werden nie übertragen. Ab 0.9.14 auch bei AxeOS ab 2.15 (z. B. Gamma), das Pools nur noch über seine Pool-Liste annimmt.
  • Pool-Steuerung (ab 0.9.14, Browser Pools, Desktop Pool-Steuerung …): Pools einmal als Vorlage eintragen (Adresse, Wallet bzw. Konto, Worker-Name, Passwort, TLS) oder aus einem Miner übernehmen und dann auf einzelne oder alle Miner als Haupt- bzw. Ersatz-Pool übertragen – Vorschau alt → neu, vorher Sicherung, danach Neustart, alles im Protokoll. Worker-Name wahlweise vom Miner behalten, Minername oder genau wie in der Vorlage; Passwörter liegen in secrets.json.
  • Pool-Vergleich (ab 0.9.15, gleiche Seite bzw. gleiches Fenster): alle 10 Minuten je Miner gesammelt – je Pool abgelehnte Shares, Antwortzeit, Erreichbarkeit als Haupt-Pool, Ausfallzeit, Einsatz als Ersatz-Pool und mit Pool-Konto Ertrag je TH und Tag; 24 Stunden, 7 oder 30 Tage.
  • Mining-Art-Vergleich (ab 0.9.15): Erwartungswert deiner Hashrate bei PPS, PPLNS, Solo BTC und Solo BCH (Difficulty, Kurs, Blockprämie + geschätzte Gebühren, Pool-Gebühren einstellbar) mit Stromkosten und Saldo, für Solo die Chance je Monat; mit Pool-Konto daneben der tatsächliche Ertrag der letzten 7 Tage.
  • Speicherplatz (ab 0.9.15, Einstellungen → Sicherung): freier Platz auf dem Datenträger des Servers bzw. PCs, Größe von Verlauf, Sicherungen und vorherigen Ständen (Kopien beim Einspielen einer Sicherung); Sicherungen und vorherige Stände lassen sich nach Bestätigung einzeln löschen (im Protokoll).
  • Ertrags-Automatik (ab 0.9.15, Gerät → Automatik bzw. Gruppen-Automatik, Art Ertrag): Liegt der Strompreis über dem Break-even-Preis des Miners (Ertrag je TH ÷ Verbrauch je TH), wechselt er auf die sparsame Voreinstellung; volle Leistung erst wieder, wenn der Strom um den eingestellten Abstand (Standard 10 %) darunter liegt. Ertrag je TH aus dem Pool-Konto, sonst PPS-Erwartung für BTC. Freigabe nötig, jede Änderung im Protokoll.
  • Miner-Gruppen (z. B. „Community“, „Keller“): Filter und Summen in der Übersicht (Browser), Gruppenfilter im Vergleich, Push-Dienste für ganze Gruppen – neue Mitglieder bekommen Meldungen und Berichte automatisch.
  • Gruppen-Automatik (ab 0.9.7, Browser → Gruppe wählen → Gruppen-Automatik): ein Zeitplan oder eine Strompreis-Regel für die ganze Gruppe; jeder Miner nutzt seine eigene Voreinstellung gleichen Namens (gegen sein Profil geprüft, fehlt sie → übersprungen). Eigene Regeln einzelner Miner haben Vorrang, der Temperaturschutz bleibt. Freigabe nötig – auch wieder, wenn ein Miner in die Gruppe kommt. Dazu jetzt umschalten mit Vorschau alt → neu je Miner.
  • Pool umschalten (ab 0.9.11, Gerät → Automatik bzw. Gruppen-Seite; Desktop Pool …): je Miner oder ganze Gruppe mit Vorschau alt → neu, vorher Sicherung. Dazu die Pool-Automatik mit Freigabe: Ersatz-Pool nach Zeitplan, zurück zum Haupt-Pool, sobald er wieder erreichbar ist, und Wechsel bei vielen abgelehnten Shares.
  • Wartungsmodus je Miner (ab 0.9.11, Haken oben auf der Geräteseite): Während du am Miner arbeitest, pausiert seine Überwachung – keine Meldungen außer Blockfunden, kein Watchdog-Neustart, keine Automatik, keine Ausfallzeit in der Statistik; endet auf Wunsch nach 1–24 Stunden von selbst.
  • Reihenfolge der Miner frei wählbar (ab 0.9.11, Einstellungen → Übersicht gestalten) – gilt überall.
  • Dauertest für mehrere Miner auf einmal, Vergleich aller Miner nebeneinander (inkl. aktueller Pool-Difficulty, sofern die Firmware sie meldet).
  • Vergleichsbericht zum Ausdrucken (Browser Vergleich → Bericht …, Desktop Miner-Vergleich → Bericht …): 1–6 Miner, Zeitraum, Werte (aktuell, Ø über den Zeitraum, letzter Benchmark) und Diagramme frei wählbar; Vorauswahl Kühlung (Temperatur je Watt, VR, Lüfter) für Fragen in der Community. Ohne IP- und Wallet-Adressen.

Zusammenspiel Tuning ↔ Überwachung

  • Ein zentraler Abruf je Miner (max. eine Anfrage gleichzeitig) – Überwachung und Benchmark pollen nie doppelt.
  • Während einer Tuning-Änderung, eines Benchmarks und des folgenden Neustarts pausiert der Watchdog für diesen Miner, Offline-Meldungen für den gewollten Neustart entfallen.
  • Jede Frequenz-/Spannungsänderung wird mit Zeit, altem und neuem Wert in history.db (Tabelle tuning_events) protokolliert, als Linie in allen Verlaufsdiagrammen markiert und im Tab Vorher/Nachher (Ø 60 min davor/danach) verglichen.
  • Änderungen nur nach Bestätigung mit aktuellem und neuem Wert; Werte außerhalb der Profilgrenzen werden abgelehnt. overclockEnabled wird nur gesetzt, wenn der Wert außerhalb der AxeOS-Auswahlliste liegt – mit Hinweis im Dialog.
  • Design umschaltbar: dunkel oder hell.

Miner-Logs, Alarme, Sicherungen

  • Lüfter des Miners (Browser Gerät → Live, Desktop Manuell einstellen): Automatik mit Zieltemperatur (AxeOS temptarget, NerdQAxe pidTargetTemp; 45 °C bis zur Chip-Grenze des Profils) oder fester Wert ab 20 % – mit Bestätigung alt → neu und Eintrag im Protokoll.
  • Protokoll (Browser Protokoll, Desktop Protokoll …): dauerhaft in history.db, mindestens 30 Tage – jede Frequenz-/Spannungsänderung mit Quelle (manuell, Benchmark, Automatik, Wiederherstellung …), Benchmark-Start/-Abbruch, Dauertests, Automatik/Watchdog, Lüfterregelung (VR und Gehäuse), offline/online, Einstellungen und Server-Ereignisse. Filter nach Zeitraum, Miner, Kategorie und Text, CSV-Export; läuft nach Neustarts und Updates weiter. Ein Klick auf einen Eintrag erklärt, was er bedeutet und was du tun kannst.
  • Hilfe (Browser Hilfe, Desktop Hilfe): Kurzanleitung der wichtigsten Abläufe, alle Protokolleinträge mit Bedeutung und „Was tun“, die Miner-Logs (AxeOS/ESP-Miner: Aufbau einer Zeile, Pool, ASIC, Temperatur, Spannungsregler, WLAN, Absturz) und häufige Fragen – durchsuchbar, für jede Rolle.
  • Miner-Logs je Gerät live (ws://<host>/api/ws) und als Puffer (/api/system/logs), mit Textfilter, Stufen, Kategorien (Shares, Pool/Stratum, ASIC/Jobs, Temperatur/Lüfter/Strom, System/WLAN – mit Anzahl je Art) und Speichern; Desktop und Browser gleich.
  • Log-Alarme (Einstellungen → Log-Alarme, Haken je Miner): Push bei Fehlerzeilen und frei definierbaren Mustern (Stratum getrennt, Overheat, Spannungsfehler, Fallback …), Sperrzeit je Regel, still während Tuning/Neustart. Log-Tab und Alarme teilen sich eine WebSocket-Verbindung; aktivierte Alarme belegen dauerhaft einen Platz am Miner.
  • Pool-Überwachung: Push bei Wechsel auf den Fallback-Pool, hoher Ablehnungsquote im Zeitfenster und langsamer Pool-Antwort; Pool-Zeile in der Überwachungsansicht.
  • Einstellungen sichern/wiederherstellen (Gerätekopf): vollständige Sicherung unter snapshots\, automatisch vor jedem Benchmark und jeder manuellen Änderung. Wiederherstellen feldweise mit Vorschau alt → neu, Profilgrenzen werden geprüft, Frequenz/Spannung werden protokolliert. Pool-Passwörter liefert AxeOS nicht aus und bleiben unverändert.

Strom, Kosten, Berichte und Meldungen

Push-Benachrichtigungen

Einstellungen → Push-Benachrichtigungen (Desktop und Browser). Mehrere Dienste gleichzeitig sind möglich – z. B. ntfy für dich und Discord für eine Community-Gruppe. Je Dienst wählst du, welche Meldungen (offline, Blockfund, Tagesbericht …) und für welche Miner (alle oder einzelne) er bekommt; „Test“ prüft jeden Dienst einzeln. Ein bisher eingerichteter Dienst wird automatisch als erster übernommen.

Dienst Einzutragen
ntfy Server (Standard https://ntfy.sh) und ein schwer zu erratendes Topic; App „ntfy“ auf dem Handy
Telegram Bot-Token (von @BotFather) und Chat-ID
Discord Webhook-URL eines Kanals (Kanal-Einstellungen → Integrationen → Webhooks)
Pushover User-Key und App-Token (pushover.net)
Browser/App (ab 0.9.12) nichts – im Browser Einstellungen → Push → „Dieses Gerät für Push anmelden …“. Meldungen kommen direkt im Browser bzw. in der installierten App an, ohne Fremd-App und Konto. Braucht ein gültiges Zertifikat (HTTPS ohne Warnung, siehe unten) oder localhost; auf dem iPhone/iPad (ab iOS 16.4) die Seite zuerst Teilen → Zum Home-Bildschirm hinzufügen und von dort öffnen. Die Nachricht ist Ende-zu-Ende verschlüsselt (Web Push, RFC 8291/8292); der Push-Dienst des Browsers (Google, Mozilla, Apple) sieht nur verschlüsselte Daten. Beendet der Browser die Anmeldung, schaltet BitaxeTuner das Ziel ab.
Eigener Webhook URL; BitaxeTuner sendet POST mit JSON {"source":"BitaxeTuner","title":…,"message":…,"priority":"high","priorityLevel":4,"time":…} – z. B. an Home Assistant oder n8n

Meldungsarten je Dienst: offline, Überhitzung, Blockfund/Zufluss, Watchdog/Automatik/Firmware, Rekorde, Log-Alarme, Pool, Smart Plugs, Gesundheit. Dazu Tagesbericht (Ø Hashrate, J/TH, Temperatur, Verfügbarkeit je Miner, Stromkosten, Best-Diff-Rekord, Tuning-Änderungen, lohnende Ratgeber-Vorschläge) und Monatsbericht am Monatsersten. Jede Meldung hat eine Sperrzeit, damit ein wackelnder Miner das Handy nicht flutet.

Tages- und Monatsbericht je Dienst: Hat ein Push-Dienst eine Miner-Auswahl (z. B. eine Community-Gruppe), enthalten die Berichte nur diese Miner – Summen und Kosten nur für sie, Zuflüsse aus dem Steuer-Bereich nie. Je Dienst lassen sich außerdem Stromkosten, Zuflüsse, Empfehlungen des Ratgebers, Best-Diff-Rekord, Tuning-Änderungen und Steckdosen-Details abwählen.

Stromkosten

Einstellungen → Strom und Abfrage / Strompreis (Desktop) bzw. Einstellungen → Allgemein / Strompreis-Quelle (Browser):

  • Strompreis (ct/kWh) deines Vertrags, wahlweise brutto (inkl. MwSt.) oder netto (zzgl. MwSt.) mit MwSt.-Satz (Standard 19 %). Gerechnet wird immer mit dem Bruttopreis.
  • Stromkosten mit Stundenpreisen (optional): Kosten Stunde für Stunde aus Energie × Preis der Stunde. aWATTar liefert den Börsenpreis netto ohne Netzentgelte und Steuern – dafür den Aufschlag (typisch 15–25 ct/kWh) eintragen; die MwSt. kommt automatisch dazu. Tibber liefert den Endpreis, Aufschlag 0. Stunden ohne Preis rechnen mit dem festen Strompreis.
  • Mit Smart Plugs zählt der Verbrauch an der Steckdose statt der AxeOS-Leistung (abschaltbar).
  • Währung (ab 0.9.11, Einstellungen → Allgemein): Euro, US-Dollar, Pfund, Franken, Kronen, Złoty … – Kurse, Erträge, Kosten, Berichte, E-Paper und Steuer-Übersicht in dieser Währung, Strompreise in der passenden Untereinheit (ct, ¢, p, Rp.). Euro-Kurse werden für das deutsche Steuerrecht weiter mit erfasst.

Smart Plugs (Shelly, Tasmota, FRITZ!DECT)

Einstellungen → Smart Plugs (Desktop und Browser; in der Desktop-App führt auch Smart Plugs … direkt dorthin):

  1. Plug hinzufügen, Typ wählen (Shelly, Tasmota oder FRITZ!DECT) und IP-Adresse (oder Name) eintragen – nur Adressen im Heimnetz. Kanal bei Steckdosen 0. Geschützte Shellys: Benutzer (Gen2+ immer admin) und Passwort; das Passwort liegt in secrets.json.
    • Tasmota: Adresse der Steckdose; mit Web-Passwort Benutzer admin und Passwort (Tasmota schickt beides unverschlüsselt im Heimnetz mit).
    • FRITZ!DECT (z. B. FRITZ!DECT 200/210): Adresse der FRITZ!Box (fritz.box), die AIN der Steckdose (steht auf dem Gerät bzw. in der FRITZ!Box unter Smart Home) und ein FRITZ!Box-Benutzer mit dem Recht Smart Home.
  2. Testen zeigt Modell, Generation und aktuelle Leistung – auch vor dem Speichern.
  3. Rolle wählen:
    • speist Miner – die angehakten Miner hängen an diesem Plug; bei mehreren wird nach AxeOS-Anteil aufgeteilt,
    • Nebenverbraucher – Zusatzlüfter, Pi, Router … (kommt zu den Kosten dazu),
    • Gesamtmessung – alles hängt dahinter; ersetzt die Summe (höchstens ein Plug).
  4. Speichern. Die Übersicht zeigt „Leistung (Steckdose)“, den Anteil Netzteil/Nebenverbrauch und je Plug den Wert; ein Klick auf einen Plug öffnet den Verlauf Steckdose gegen AxeOS.

Unterstützt: Shelly Gen1 (/status, z. B. Plug S) und Gen2+/Gen3 (RPC Shelly.GetStatus, z. B. Plus Plug S, PM Mini, Pro EM-50), Tasmota mit Energiemessung (Status 8) und FRITZ!DECT über die AHA-Schnittstelle der FRITZ!Box. Push, wenn ein Plug 5 min nicht antwortet oder der Mehrverbrauch gegenüber der Vorwoche deutlich steigt (z. B. alterndes Netzteil). Home Assistant bekommt je Plug Leistung und Energie (Energie-Dashboard). BitaxeTuner schaltet die Plugs nie – auch nicht, wenn der Server selbst am Plug hängt.

Pool-Konto (Mining-Dutch)

Einstellungen → Pool-Konto (Desktop und Browser, im Browser auch Steuer → Pool-Konto): Laufen die Miner bei Mining-Dutch auf einem Konto und wechselst du dort die Coins (auch automatischer Profit-Wechsel), trägst du den API-Schlüssel ein (Mining-Dutch: Edit Account → API Key). Er kann am Pool nichts ändern und liegt in secrets.json. Mindestens alle 10 Minuten fragt BitaxeTuner dann ab (mit Pausen zwischen den Anfragen, damit der Pool nicht sperrt):

  • je Miner der Coin, den der Pool gerade gibt, mit Abrechnung (PPS) und Merged Mining – zugeordnet über den Worker-Namen (Teil hinter dem Punkt im Pool-Benutzer, z. B. konto.werkbank). Zur Solo-Chance zählen sie nur im Modus SOLO Mining (dann mit dem Coin laut Pool); bei PPS, PROP, PPLNS oder PARTY gehört ein gefundener Block nicht ihnen allein – die Blockfund-Meldung sagt dazu, wohin die Belohnung geht,

  • Guthaben je Coin mit Wert, Gutschriften der letzten 24 h / 7 Tage, Auszahlungen der letzten 30 Tage,

  • Buchungen als Zuflüsse für die Steuer: wahlweise Gutschrift beim Pool (alle Gutschriften eines Coins an einem Tag als ein Zufluss, sobald der Tag vorbei ist – Standard) oder Auszahlung an die Wallet (jede Auszahlung einzeln). Beim Umschalten bleiben von Hand eingetragene Kurse erhalten; welche Sicht gilt, bitte mit der Steuerberatung klären.

  • Automatischer Umtausch in BTC (ab 0.9.13, Haken im Pool-Konto, Standard an): Bei Gutschrift zählt nur die Mining-Gutschrift als Ertrag; der Umtausch wird als Verkauf des Altcoins erfasst und die BTC dafür als Anschaffung („Tausch“, kein zweiter Ertrag, aber im Bestand für FIFO und Haltefrist). Bei Auszahlung zählen nur die BTC-Auszahlungen an die Wallet.

  • Weitere Coins (ab 0.9.13): Coins, die der Pool per Profit-Wechsel schürft (z. B. WOJAKCOIN/WJK), werden automatisch erkannt und in der Steuer mit ihrem Kürzel geführt. Ohne CoinGecko-Kurs gilt der Kurs des Pools beim Abruf (in US-Dollar, umgerechnet); er lässt sich von Hand ändern.

  • Meldungen (ab 0.9.14, Meldungsart Pool, je Push-Dienst abwählbar): jede Auszahlung vom Pool und Worker, die beim Pool keine Shares mehr abgeben, obwohl der Miner läuft (nach zwei Abfragen in Folge); auf Wunsch auch jeder Coin-Wechsel durch den Pool.

Alle je gesehenen Buchungen bleiben in tax\pool-ledger.json (der Pool liefert nur die jüngsten). Wallet-Abfragen über die Blockchain gibt es weiter nur für BTC und BCH.

Berichte

Browser Berichte bzw. Desktop Bericht …: Monat oder Jahr wählen. Je Miner Verfügbarkeit, Ø Hashrate, Temperatur, Leistung, J/TH, kWh und Tuning-Änderungen; dazu Smart-Plug-Energie, Stromkosten (mit Stundenpreisen, wenn eingerichtet) und Zuflüsse aus dem Steuer-Bereich. Ansehen / Drucken öffnet eine druckbare Seite (im Browser „Als PDF speichern“), CSV für Excel. Abgeschlossene Monate werden in history.db abgelegt – Jahresberichte funktionieren auch, wenn ältere Minutenwerte bereinigt sind. Im Steuer-Bereich stehen die Stromkosten je Monat neben den Zuflüssen (keine Steuerberatung).

Gesundheits-Frühwarnung

Einmal am Tag vergleicht BitaxeTuner je Miner die letzten 7 Tage mit den 4 Wochen davor und meldet nur deutliche Veränderungen (je Hinweis höchstens einmal pro Woche):

Hinweis Bedingung
Kühlung prüfen Temperatur je Watt +10 % und mindestens +3 °C
Effizienz lässt nach J/TH +5 % ohne Tuning-Änderung im Vergleichszeitraum
Lüfter verliert Drehzahl Drehzahl je % Ansteuerung −15 %
Mehr abgelehnte Shares mindestens +1 Prozentpunkt und doppelt so viele
Häufiger offline unter 97 % statt vorher ab 99 %

Die Werte stehen im Browser je Miner im Tab Gesundheit, in der Desktop-App in der Einzelansicht. Lüfter und abgelehnte Shares werden seit 0.7.0 aufgezeichnet – der Vergleich braucht einige Wochen Daten.

Unterstützte Geräte

Gerät ASIC Board / deviceModel Firmware
Bitaxe Max BM1397 2.2, 102 AxeOS
Bitaxe Ultra BM1366 0.11, 201–205, 207 AxeOS
Bitaxe Supra BM1368 400–403 AxeOS
Bitaxe Gamma BM1370 600–603 AxeOS
Bitaxe Gamma Duo 2× BM1370 650 AxeOS
Bitaxe GT / Gamma Turbo 2× BM1370 801 AxeOS
Bitaxe Gamma Hex 6× BM1370 1300 AxeOS (Grenzen vorläufig)
Bitaxe Naja Duo 2× BM1373 1201 AxeOS (Grenzen vorläufig)
Bitaxe Hex / SupraHex 6× BM1366 / BM1368 302–303 / 701–702 AxeOS
NerdAxe / NerdAxe Gamma BM1366 / BM1370 NerdAxe / NerdAxeGamma NerdQAxe-Firmware
NerdAxe Gaia BM1373 NerdAxeGaia NerdQAxe-Firmware ≥ 1.1.0
NerdQAxe+ / NerdQAxe++ 4× BM1368 / BM1370 NerdQAxe+ / NerdQAxe++ NerdQAxe-Firmware
NerdHaxe-γ 6× BM1370 NerdHaxe-γ NerdQAxe-Firmware
NerdOctaxe-γ / NerdOctaxe+ 8× BM1370 / BM1368 NerdOCTAXE-γ / NerdOCTAXE+ NerdQAxe-Firmware
NerdEKO 12× BM1370 NerdEKO NerdQAxe-Firmware
NerdQX BM1370 NerdQX NerdQAxe-Firmware
Q1370 / Q1373 4× BM1370 / 4× BM1373 Q1370 / Q1373 NerdQAxe-Firmware (Grenzen vorläufig)

Werte laut ESP-Miner main/device_config.h und NerdQAxePlus main/boards/*.cpp (Stand 09/2026); Quelle je Profil steht in dessen Notiz. Meldet das Gerät Chipanzahl oder Small-Cores selbst, haben diese Angaben Vorrang. Unbekannte Geräte mit AxeOS-kompatibler API laufen mit einem konservativen generischen Profil. Alle Profile lassen sich am Desktop über „Profile bearbeiten“ und im Browser unter Einstellungen → Geräteprofile anpassen, als eigene Kopie anlegen oder auf den eingebauten Stand zurücksetzen (gespeichert in profiles.json im Datenordner, der vorige Stand bleibt als profiles.json.bak). Grenzen über dem eingebauten Profil werden nur nach einer Rückfrage mit altem und neuem Wert übernommen; jede Änderung steht im Protokoll.

Installation

Beim ersten Start führt „Erste Schritte“ durch das Wichtigste (Miner, Strompreis, Push-Dienst, Sicherung bzw. 24/7-Server) – jeder Schritt hakt sich selbst ab und springt zur passenden Einstellung. Nach einem Update fragt BitaxeTuner einmal, ob du eine kurze Einführung nur in die neuen Funktionen möchtest.

  1. Unter Releases die Datei BitaxeTuner-Setup-x.y.z.exe herunterladen.
  2. Setup starten – Zielordner frei wählbar (z. B. F:\Programme\BitaxeTuner), Installation ohne Adminrechte möglich.
  3. Alternativ: BitaxeTuner-x.y.z-portable-win-x64.zip entpacken und BitaxeTuner.exe starten.

Es wird keine separate .NET-Installation benötigt.

24/7-Betrieb

Die Miner laufen ohne PC weiter – Verlauf, Push-Meldungen, Watchdog, Automatik-Regeln, Dauertests, Benchmarks, Tagesbericht und Steuer-Erfassung aber nur, solange BitaxeTuner läuft. Soll das rund um die Uhr passieren, ohne dass dein PC an ist, installierst du den BitaxeTuner-Server auf einem Gerät, das ohnehin durchläuft:

Gerät Paket Aufwand
Raspberry Pi 3/4/5, Zero 2 W – fertiges SD-Image BitaxeTuner-Server-x.y.z-pi-arm64.img.xz Raspberry Pi Imager
Raspberry Pi 3/4/5 (Pi OS 64-bit) BitaxeTuner-Server-x.y.z-linux-arm64.tar.gz 2 Befehle
Raspberry Pi mit 32-bit-System …-linux-arm.tar.gz 2 Befehle
Linux-PC / Mini-PC (x64) …-linux-x64.tar.gz 2 Befehle
Zweiter Windows-PC / Mini-PC BitaxeTuner-Server-Setup-x.y.z.exe (Windows-Dienst) Setup
NAS / Home-Server mit Docker ghcr.io/elemirus1996/bitaxetuner-server docker compose up -d

Der Server braucht wenig: ca. 100–150 MB RAM, kaum CPU; ein Pi 3B+ reicht. history.db schreibt höchstens einen Datensatz pro Minute und Miner (schont die SD-Karte).

Raspberry Pi – fertiges Image (am einfachsten)

  1. …-pi-arm64.img.xz mit dem Raspberry Pi Imager schreiben („Eigenes Image“). Das Image basiert auf Raspberry Pi OS Lite (64-bit) und enthält den vorinstallierten Server (kein offizielles Raspberry-Pi-Produkt). Der Imager bietet für eigene Images keine Einstellungen an – Benutzer, WLAN und SSH trägt die Desktop-App ein (Schritt 2).
  2. SD-Karte neu einstecken, in der Desktop-App Betriebsart … → Raspberry Pi vorbereiten: Laufwerk „bootfs“ wählen, Admin-Passwort festlegen, Benutzer/Passwort für den Pi und WLAN eintragen, optional Meine Daten mitgeben. Land, Zeitzone und Tastatur übernimmt die App aus Windows (änderbar); optional SSH-Schlüssel hinterlegen für Anmeldung ohne Passwort. Danach öffnet „SSH-Terminal“ oben in der App eine Konsole auf dem Server; für einen schon laufenden Pi oder Linux-Server einmal Betriebsart … → SSH-Terminal zum Server → Schlüssel übertragen …. Die App schreibt die cloud-init-Dateien (user-data, network-config, ssh) und ein Einrichtungspaket auf die Karte (alle Passwörter nur als Hash) und merkt sich Adresse und Token.
  3. Karte in den Pi, starten (erster Start 3–5 Minuten). Der Pi übernimmt das Paket, löscht es von der Karte und startet pausiert. In der App Verbindung testen → Nur umschalten – erst dann fragt der Pi die Miner ab.

Selbst bauen: sudo deploy/pi-image/build-image.sh BitaxeTuner-Server-x.y.z-linux-arm64.tar.gz (Linux/WSL; lädt das offizielle Image und prüft dessen SHA-256). Ersteinrichtungs-Protokoll auf dem Pi: /var/log/bitaxetuner-firstboot.log.

Raspberry Pi / Linux (Paket)

tar xzf BitaxeTuner-Server-x.y.z-linux-arm64.tar.gz
cd bitaxetuner-server && sudo ./install.sh

install.sh legt einen Systembenutzer an, installiert nach /opt/bitaxetuner, Daten nach /var/lib/bitaxetuner und richtet den systemd-Dienst bitaxetuner ein (Autostart, Neustart bei Absturz). Am Ende zeigt es die Adresse und den Einrichtungs-Code. Protokoll: journalctl -u bitaxetuner -f. Entfernen: sudo ./install.sh --uninstall (Daten bleiben) bzw. --purge. Eigene Einstellungen (Port, HTTPS) in /etc/default/bitaxetuner, z. B. BITAXETUNER_PORT=8484.

Windows (zweiter PC): BitaxeTuner-Server-Setup-x.y.z.exe ausführen. Es richtet den Dienst „BitaxeTuner“ (Autostart, Neustart bei Fehler) und eine Firewall-Regel nur für private Netzwerke ein. Daten: C:\ProgramData\BitaxeTuner, Einrichtungs-Code in SETUP-CODE.txt dort. Der Ordner ist nur für SYSTEM und Administratoren lesbar (Zugangsdaten); den Code also z. B. mit dem Editor „Als Administrator“ öffnen.

Docker: deploy/docker/docker-compose.yml herunterladen, docker compose up -d, Einrichtungs-Code mit docker compose logs bitaxetuner. Daten im Volume /data.

Einrichten: Im Browser https://<IP>:8484/ öffnen (ab 0.9.4 starten neue Installationen verschlüsselt; die Warnung wegen des selbst signierten Zertifikats einmal bestätigen), Einrichtungs-Code eingeben und ein Admin-Passwort festlegen. Danach unter Einstellungen Geräte, Push-Dienst usw. einrichten – oder die Daten vom PC übertragen (siehe unten).

Zusatzlüfter, E-Paper-Anzeige und Taster (Raspberry Pi Pico)

Ein Raspberry Pi Pico (2) per USB am Server regelt bis zu sechs 4-Pin-PWM-Lüfter (5 V oder 12 V): je Miner einen VR-Lüfter (manuell oder automatisch nach VR-Temperatur) und eine Gehäuse-Gruppe (nach VR-, ASIC- oder Temperaturfühlern). Mehrere DS18B20 (z. B. Netzteil, Miner-Raum) werden automatisch erkannt und bekommen je einen Namen und eine eigene Warnschwelle. Optional zeigt ein 7,5"-E-Paper (rot/schwarz/weiß) die wichtigsten Werte, vier Taster: Anzeige weiter/quittieren · Lüfter Automatik · 100 % (5 s halten: Lüfter aus) · Neustart Pi + Pico (3 s halten). Das Pico-Programm spielt der Server selbst auf. Sicherheit: Miner offline oder Daten älter als 30 s → 100 %; Pico ohne Befehl für 5 s → 100 %; ohne Pico läuft jeder Lüfter über die Schaltung mit voller Drehzahl. Das E-Paper zeigt Seiten im Wechsel (Übersicht, Tagesbilanz – wahlweise mit Graph –, Verlauf 24 h, Dauertest, Pool & Netzwerk; ab 0.9.7 außerdem je Miner-Gruppe, Monatsbilanz mit Balken je Tag, Kurs BTC/BCH mit Difficulty-Countdown, Strompreis-Ampel, Temperaturfühler und QR-Code zur Oberfläche; Farben auf Wunsch umgekehrt) und Sonderanzeigen als Vollbild: Blockfund (wählbar: bis Taste 1 oder nach einstellbaren Stunden, oder wie die Warnungen nur mit Taste 1), Warnungen (bis quittiert, neue Warnung zeigt wieder), Best-Diff-Rekord (einmal) – alles einzeln schaltbar. Einstellungen und Vorschau jeder Seite: Browser → Lüfter & Anzeige. Schaltplan, Steckbrett-Aufbau ohne Löten und Einkaufsliste stehen in der Bauanleitung docs/pico-luefter (Quelle: docs/pico-luefter/index.html). Ohne Löten und ohne Steckbrett: die fertig bestückbare Lüfterplatine für den Pico 2 H mit Bestelldateien für JLCPCB liegt in hardware/lueftersteuerung-v1 (Prototyp v1.0, vor dem Dauerbetrieb durchmessen).

Ab 0.9.11: Seite Neuigkeiten (Solo-Blockfunde, neue Firmware und Miner-Modelle, Difficulty-Anpassungen, BitaxeTuner-Versionen – gesammelt alle 6 Stunden von einer GitHub Action, der Server holt nur diese öffentliche Datei) und mehrere Anzeigen: bis zu acht weitere E-Paper mit eigenem Display-Pico, eigenen Seiten, eigenem Intervall und auf Wunsch nur für eine Miner-Gruppe. Das Pico-Programm 8 hat einen Hardware-Watchdog: hängt es, startet der Pico neu, die Lüfter laufen dabei mit 100 %.

Ab 0.9.12: Die Rolle des Pico (Lüfter oder Display) lässt sich auch ohne WLAN direkt per USB festlegen. Pico-Programm 8.1 wartet bei stummer BUSY-Leitung fest statt abzubrechen und meldet Neustart-Grund und Fehler ins Protokoll; 8.2 wertet die Tasten des Waveshare-Moduls aus (KEY0 Anzeige weiter, KEY1 sofort neu zeichnen, 3 s halten = Neustart).

Ohne Kabel zum Server (ab 0.9.7): Mit einem Pico 2 WH laufen Lüftersteuerung und Anzeige über WLAN – als Lüfter-Pico auf der Platine und/oder als Display-Pico, der einfach auf das Waveshare-E-Paper gesteckt wird. Einmal per USB am Server unter Lüfter & Anzeige → „… für WLAN einrichten“ vorbereiten, danach an ein eigenes Netzteil. Jede Zeile ist mit einem eigenen Schlüssel signiert, das WLAN-Passwort liegt nur auf dem Pico, der Ausfallschutz (100 %) bleibt. Anleitung: Pico über WLAN.

Prometheus / Grafana

Einstellungen → Prometheus / Grafana (Browser): Export einschalten und ein Token erzeugen (wird nur einmal angezeigt). Der Server liefert dann unter /metrics Hashrate, Soll-Hashrate, Leistung, Effizienz, Chip- und VR-Temperatur, Frequenz, Spannung, Lüfter, Shares, Best Diff und Laufzeit je Miner, dazu Summen, Strompreis, Kosten pro Tag, Smart Plugs, Zusatzlüfter und Temperaturfühler – ohne IP- und Wallet-Adressen. In prometheus.yml das Token als bearer_token eintragen (Beispiel steht in der Oberfläche). Standardmäßig aus; ohne gültiges Token gibt es nichts.

Home Assistant / MQTT

Einstellungen → Home Assistant / MQTT (Browser): Broker-Adresse (z. B. das Mosquitto-Add-on von Home Assistant), Benutzer, Passwort. BitaxeTuner sendet Hashrate, Leistung, Effizienz, Temperaturen, Frequenz/Spannung (nur lesend), Best Diff, Dauertest, Zusatzlüfter, Temperaturfühler und Smart Plugs (Leistung, Energie fürs Energie-Dashboard, Leistung an der Steckdose gesamt); Home Assistant legt je Miner und für den Server automatisch Geräte an (MQTT-Discovery, Verfügbarkeit per Last Will). Aus Home Assistant schaltbar: „Anzeige aktualisieren“ und – nur wenn freigegeben – der Zusatzlüfter-Modus (Automatik / 100 % / Aus). Frequenz und Spannung lassen sich über MQTT nicht ändern. Das Passwort liegt getrennt in secrets.json und geht nie in Sicherungen oder Übertragungen.

Sicherung

Einmal täglich (Standard ab 3 Uhr) sichert BitaxeTuner Einstellungen, Verlauf (history.db), Steuerdaten, Benchmark-Ergebnisse und Miner-Sicherungen als geprüftes Archiv (SHA-256 je Datei, integrity_check, vor dem Ablegen einmal vollständig entpackt und geprüft). Ziele unter Einstellungen → Sicherung (Browser):

  • Datenordner (auto-backups, immer; Standard: die letzten 7),
  • Ordner oder USB-Stick – am Pi wird ein eingesteckter Stick (FAT32, exFAT, ext4) automatisch unter /media/bitaxetuner-usb eingebunden; auf einem bereits eingerichteten Pi einmalig sudo sh /opt/bitaxetuner/current/install.sh --system ausführen,
  • Netzlaufwerk/NAS (SMB, ohne Einbinden ins System; Passwort getrennt in secrets.json, nie in Sicherungen),
  • PC holt ab: Die Desktop-App im Modus „Server“ holt täglich eine geprüfte Sicherung in einen Ordner auf dem PC (Standard Dokumente\BitaxeTuner-Sicherungen). Nach dem ersten Verbinden fragt sie einmal danach; später oben unter Sicherungen ▾ (jetzt holen, Ordner öffnen) bzw. Betriebsart ….

Alte Sicherungen werden je Ziel aufgeräumt (nur eigene Dateien). Fehler kommen als Push-Meldung.

Vor jedem Server-Update entsteht automatisch eine geprüfte Sicherung auf allen eingerichteten Zielen (Datenordner, USB-Stick, NAS); schlägt sie fehl, wird nichts installiert. Mit „Sicherung vorher auf diesen PC herunterladen“ (Standard: an) lädt der Browser sie zusätzlich herunter – in der Desktop-App direkt in den Sicherungsordner der App.

Die Desktop-App im lokalen Betrieb sichert genauso täglich in ihren Datenordner (auto-backups); unter Einstellungen → Sicherung kommt ein zweiter Ordner dazu (USB-Stick, zweite Festplatte oder NAS-Freigabe wie \\nas\backup\BitaxeTuner), dazu „Jetzt sichern“ und „Sicherungsordner öffnen“.

Sicherung einspielen

Jede Sicherung wird vor dem Einspielen vollständig entpackt und geprüft; eine beschädigte Datei wird abgelehnt, ohne dass sich etwas ändert. Der bisherige Stand bleibt als Ordner backup-<Datum> im Datenordner erhalten – ein Einspielen lässt sich also rückgängig machen. Eingespielt werden Einstellungen, Geräte, Verlauf, Steuerdaten, Benchmark-Ergebnisse und Miner-Sicherungen. Nicht verändert werden: Admin-Passwort und API-Tokens (die Desktop-App bleibt verbunden), Sicherungsziele, MQTT, gespeicherte Passwörter und die Miner selbst (deren Einstellungen spielst du bei Bedarf je Gerät unter Sicherungen zurück).

Situation So geht's
Server läuft, alter Stand gewünscht Browser → Einstellungen → Sicherung → bei der Sicherung Einspielen …
SD-Karte/Server defekt Neu aufsetzen (Pi-Image bzw. Installer), Admin-Passwort festlegen, dann Einstellungen → Sicherung → Hochladen und einspielen … mit der Datei vom USB-Stick, NAS oder PC (Dokumente\BitaxeTuner-Sicherungen) – oder in der Desktop-App Sicherungen ▾ → Sicherung auf den Server einspielen …
Desktop-App ohne Server Einstellungen → Sicherung → Sicherung einspielen …; die App startet neu und spielt die Sicherung dabei ein

Sicherungsdateien heißen bitaxetuner-backup-JJJJMMTT-HHMMSS.zip und sind zwischen Desktop-App und Server austauschbar.

Desktop-App oder Server – was geht wo?

Desktop-App (lokal) Server (Browser, Handy) Desktop-App mit Server
Läuft rund um die Uhr, ohne dass der PC an ist – ✓ ✓ (der Server)
Bedienung Windows-Fenster Browser auf PC, Handy, Tablet Windows-Fenster mit der Server-Oberfläche
Überwachung, Verlauf, Push, Tagesbericht ✓ ✓ ✓
Benchmark, Dauertest, Automatik, Watchdog ✓ ✓ ✓
Miner-Suche, Einstellungen übertragen ✓ ✓ ✓
Smart Plugs, Stromkosten, Monats-/Jahresbericht ✓ ✓ ✓
Gesundheits-Frühwarnung ✓ (Push, Einzelansicht) ✓ (Push, Tab Gesundheit) ✓
Vergleich mit Filtern, Vorher/Nachher, Effizienz-Ratgeber Vergleich ✓ ✓
Home Assistant / MQTT – ✓ ✓
Prometheus / Grafana (/metrics) – ✓ ✓
Pico-Lüfter, E-Paper, Taster – ✓ ✓
Steuer: Zuflüsse erfassen ✓ (solange der PC läuft) ✓ rund um die Uhr ✓
Steuer: Wallets und Verkäufe bearbeiten ✓ ✓ im Browser (ab 0.9.6) ✓ im Browser (ab 0.9.6)
Sicherung täglich, zweiter Ordner/USB/NAS täglich, USB-Stick, NAS dazu tägliche Kopie auf den PC
Handy-Zugriff nur ansehen (PIN) voll (Admin) oder nur ansehen (PIN) wie Server
Raspberry Pi vorbereiten, SSH-Terminal ✓ – ✓

Umsteigen geht jederzeit in beide Richtungen mit allen Daten (siehe Umstieg und Rückweg).

Bedienung: Browser oder Desktop-App

  • Browser (PC, Handy, Tablet): Übersicht, Vergleich, je Miner Live-Werte und Verlauf mit Tuning-Markierungen, Benchmark, Ergebnisse, Vorher/Nachher, Gesundheit, Automatik-Regeln mit Freigabe, Dauertest, Sicherungen, Miner-Logs live, Smart Plugs mit Verlauf, Berichte, Steuer (Zuflüsse, Stromkosten je Monat, CSV), Einstellungen. Hell/Dunkel, handytauglich, als App zum Startbildschirm hinzufügbar. Frequenz/Spannung ändern sich – wie am Desktop – nur nach einem Dialog mit altem und neuem Wert und den Profilgrenzen.
  • Rollen: Admin (Passwort, alles) und Nur ansehen (PIN, ohne IP- und Wallet-Adressen, ohne Protokolle).
  • Ansicht-Zugänge (Einstellungen → Ansicht-Zugänge): eigene PIN je Person (mind. 6 Ziffern, nur als Hash gespeichert), auf Wunsch nur für bestimmte Miner-Gruppen – dann ohne fremde Miner, Summen, Verläufe und E-Paper über alle Miner. Einzeln widerrufbar (offene Sitzungen enden sofort); Anmelden, Anlegen und Widerrufen stehen im Protokoll.
  • Kiosk / Wand-Tablet (ab 0.9.8, Einstellungen → Kiosk / Wand-Tablet): Vollbild ohne Menü – Summen, Warnungen, je Miner eine Kachel, hält den Bildschirm wach (HTTPS). Anmeldung nach Wahl des Admins: Kiosk-Link (einmal auf dem Tablet öffnen, meldet sich danach auch nach Server-Neustarts selbst an, auf Gruppen beschränkbar, widerrufbar) oder mit einer Ansicht-PIN und dann …/#/kiosk öffnen. Ohne Server: Handy-Ansicht der Desktop-App mit ?kiosk=1. Kiosk-Designer: mehrere Designs mit Farbvorlagen oder eigenen Farben, Schriftgröße, Animationen (Werte zählen hoch, Warnungen pulsieren, Einblenden, bewegter Hintergrund, Leuchten) und frei angeordneten Panels (Titel, Uhr, Kennzahlen, Warnungen, Miner, Verlauf, Lüfter, Fühler, eigener Text) per Ziehen und Ablegen – je Kiosk-Link ein eigenes Design.
  • Übersicht gestalten (ab 0.9.11, Einstellungen → Übersicht gestalten): Panels wie beim Kiosk anordnen (Kennzahlen, Verlauf, Miner, Smart Plugs, Neuigkeiten, eigener Text …), jedes mit eigener Breite im 12er-Raster.
  • Desktop-App im Modus „Server“: Betriebsart … → Server-Adresse (oder Im Netz suchen) und ein API-Token (Server-Oberfläche → Einstellungen → Desktop-App verbinden) eintragen, Verbindung testen. Die App zeigt dann die Oberfläche des Servers an und fragt selbst keine Miner ab. Das Token lässt sich jederzeit widerrufen.

Als App aufs Handy (PWA)

Die Browser-Oberfläche des Servers lässt sich als App installieren – eigenes Symbol, Vollbild, Push direkt aufs Gerät, ohne App-Store und ohne Konto. Am einfachsten: im Benutzermenü oben rechts „Als App installieren …“ – BitaxeTuner öffnet dann den Installationsdialog des Browsers oder zeigt die passenden Schritte.

  1. Voraussetzung: eine Verbindung ohne Zertifikatswarnung. Einmal Einstellungen → Verbindung → „HTTPS ohne Warnung“ einrichten (kostenloser DuckDNS-Name, Zertifikat von Let's Encrypt) und BitaxeTuner über diesen Namen öffnen. Über die IP-Adresse mit dem selbst signierten Zertifikat erlauben Browser keine Installation.
  2. Android (Chrome): Menü ⋮ → App installieren bzw. Zum Startbildschirm hinzufügen.
  3. iPhone/iPad (Safari, ab iOS 16.4): Teilen → Zum Home-Bildschirm, danach BitaxeTuner vom Home-Bildschirm öffnen.
  4. PC (Chrome/Edge): Symbol App installieren in der Adressleiste.
  5. Push: in der App Einstellungen → Push → „Dieses Gerät für Push anmelden …“.

Die Oberfläche kommt immer frisch vom Server (nur ohne Netz die zuletzt geladene Fassung) – nach einem Update gibt es also nie eine veraltete App.

Umstieg und Rückweg (Datenübertragung)

Betriebsart … in der Desktop-App:

  • Lokal → Server: Daten übertragen und umschalten schickt config.json, history.db, Steuerdaten, Benchmark- Ergebnisse und Sicherungen einmalig an den Server. Geprüft wird alles (SHA-256 je Datei, integrity_check, Zeilenzahlen). Hat der Server schon Daten, wird nachgefragt und er sichert seinen Stand vorher (backup-…). Deine lokalen Daten bleiben unverändert.
  • Server → Lokal: Daten vom Server holen und umschalten pausiert den Server, lädt seinen Stand, prüft ihn, sichert den lokalen Stand und übernimmt beim Neustart der App.
  • Nie doppelt: Es fragt immer nur eine Seite die Miner ab. Startet die App im Modus „Lokal“, während ein bekannter Server dieselben Miner abfragt, fragt sie nach (umschalten oder Server pausieren). Ein pausierter Server zeigt das in seiner Oberfläche und lässt sich dort fortsetzen.

Sicherheit

  • Erreichbar nur aus privaten Netzen (Heimnetz, Docker-Netz, VPN wie Tailscale/WireGuard). Den Port nicht im Router freigeben – für unterwegs ein VPN verwenden.
  • Admin-Passwort als PBKDF2-Hash, Sperre nach 5 Fehlversuchen, Sitzungs-Cookies HttpOnly/SameSite=Strict, CSRF-Schutz für alle Änderungen, API-Token nur als Hash gespeichert.
  • HTTPS mit selbst signiertem Zertifikat: neue Installationen (ab 0.9.4) starten verschlüsselt. Bestehende Server bleiben bei HTTP und zeigen dem Admin einen Hinweis „Auf HTTPS umstellen“ (Übersicht bzw. Einstellungen → Verbindung, in der Desktop-App ein Knopf im Serverfenster); der Server startet dabei neu. Die Desktop-App übernimmt Adresse und Fingerabdruck beim Umstellen selbst, sonst lässt sie den Fingerabdruck beim ersten Verbinden bestätigen. Fest vorgeben lässt es sich weiter mit BITAXETUNER_HTTPS=1 bzw. =0.
  • HTTPS ohne Warnung (ab 0.9.12, Einstellungen → Verbindung): Zertifikat von Let's Encrypt für einen kostenlosen DuckDNS-Namen (z. B. meinminer.duckdns.org), bestätigt per DNS-01 – kein offener Port im Router, der Server bleibt im Heimnetz. Der DuckDNS-Eintrag zeigt auf die Heimnetz-Adresse, erneuert wird automatisch 30 Tage vor Ablauf, das Token liegt nur in secrets.json. Per Name kommt das Let's-Encrypt-Zertifikat, per IP weiter das selbst signierte – die Desktop-App funktioniert mit beidem. Erst mit Testzertifikat ausprobieren; bei der FRITZ!Box den Namen im DNS-Rebind-Schutz freigeben. Eigener ACME-Client ohne Fremdbibliothek.

Updates

  • Server: Einstellungen → Server-Update. Raspberry Pi/Linux: neue Version wird neben die alte gelegt und atomar umgeschaltet (die alte bleibt als Rückfall in /opt/bitaxetuner/versions). Windows: stilles Setup, der Dienst startet neu. Docker: docker compose pull && docker compose up -d. Jede Datei wird gegen die veröffentlichte SHA-256-Prüfsumme geprüft; ab 0.9.4 muss die Prüfsummenliste außerdem mit dem Release-Schlüssel des Projekts signiert sein (SHA256SUMS.txt.sig), sonst installieren Desktop-App und Server nichts.
  • Desktop-App und Server prüfen die Versionen beim Verbinden; passen sie nicht zusammen, gibt es eine klare Meldung.

Bedienung

  1. Links die IP-Adresse des Miners eingeben (oder „Netzwerk durchsuchen“).
  2. Profil prüfen (wird automatisch erkannt) und im Tab Benchmark Bereich, Messdauer und Grenzen anpassen.
  3. Benchmark starten. Standard: 90 s Aufwärmen + 10 min Messung pro Kombination.
  4. Im Tab Ergebnisse das Ranking wählen und die beste Einstellung anwenden.

Desktop-App im Modus „Server“: Ein Knopf oben („Update vX: Server + App“) aktualisiert beides nacheinander – geprüfte Sicherung auf den PC, Server-Update (der Server sichert zusätzlich auf USB/NAS), Warten auf den Neustart mit der neuen Version, danach die App. Schlägt ein Schritt fehl, wird nicht weitergemacht.

Automatik, Dauertest, Vergleich, Handy-Ansicht

  • Voreinstellungen je Miner (z. B. „Hashrate“, „Effizienz“ – auch direkt aus dem letzten Benchmark).
  • Temperaturschutz: bei anhaltender Überschreitung Frequenz stufenweise senken (Spannung bleibt), nie unter ein Minimum, optional schrittweise zurück, wenn der Miner wieder kühl ist.
  • Zeitplan oder Strompreis: Voreinstellung nach Wochentag/Uhrzeit oder nach Preisschwelle. Preisquellen: aWATTar DE/AT (Börsenpreis, ohne Konto) oder Tibber (Endpreis, API-Token).
  • Automatik-Regeln handeln nur nach ausdrücklicher Freigabe je Regel; jede Änderung an der Regel hebt die Freigabe auf. Mindestens 10 min zwischen zwei automatischen Änderungen, Pause während Benchmark/Dauertest/Wartung. Jede Änderung: Quelle „Automatik“ in history.db, Markierung im Verlauf, Push.
  • Dauertest (6–48 h) der aktuellen Einstellung: Hashrate-Anteil, Fehlerrate, Temperaturen, Erreichbarkeit; übersteht App-Neustarts. Bei Fehler Vorschlag der nächstniedrigeren stabilen Einstellung (nur nach Bestätigung). Für mehrere Miner auf einmal: Übersicht (Browser) bzw. Dauertest … (Desktop) – Auswahl, eine Dauer, eine Bestätigung mit aktueller Einstellung je Miner; „Alle abbrechen“.
  • Effizienz-Ratgeber (Browser → Vergleich → Empfehlungen): je Miner die beste geprüfte Einstellung für Effizienz, ausgewogen oder Hashrate – aus stabilen Benchmark-Ergebnissen innerhalb der Profilgrenzen, bestandene Dauertests zählen mehr, durchgefallene werden nie vorgeschlagen. Mit Änderung von Hashrate, Leistung und Stromkosten pro Monat; „Anwenden …“ bzw. „Anwenden + Dauertest 24 h …“ nur über den Bestätigungsdialog (alt → neu). Lohnende Vorschläge (ab 1 €/Monat) stehen auch im Tagesbericht.
  • Vergleich: alle Miner nebeneinander – aktuelle Einstellung, 24-h-Mittel, Verfügbarkeit, beste Benchmark-Ergebnisse, höchste stabile Frequenz (Chip-Güte).
  • Handy-Ansicht (Einstellungen → Handy-Ansicht): Nur-Lese-Webseite im Heimnetz, Anmeldung per PIN, nur private Adressbereiche, Sperre nach Fehlversuchen, keine Wallet-Adressen. Windows fragt beim ersten Start nach der Firewall-Freigabe – nur „Private Netzwerke“ erlauben.

Daten

Alle Daten liegen in einem Ordner, Standard %AppData%\BitaxeMonitor\ (bisheriger BitaxeMonitor-Ordner): config.json (Geräte und alle Einstellungen), history.db (Verlauf, Tuning-Ereignisse, Dauertests, Smart-Plug-Werte, Strompreise, Monatsberichte, Frühwarnung), tax\*.json, tuning\results\*.json, tuning\profiles.json und secrets.json (Passwörter für NAS, MQTT und Smart Plugs – unter Windows verschlüsselt, unter Linux nur für den Dienst lesbar, nie in Sicherungen oder Übertragungen). Auch Tokens und API-Schlüssel (Push-Dienste, Tibber, Blockchair, CoinGecko, Pool-Konto, Server-Token der Desktop-App) liegen dort; config.json enthält nur einen Verweis. Sicherungen enthalten sie daher nicht – nach dem Einspielen auf einem anderen Rechner einmal neu eintragen. Übertragungen (Desktop ↔ Server, Pi-Einrichtung) nehmen die Tokens mit.

  • Beim ersten Start wird der Ordner vollständig nach backup-<datum>\ gesichert (history.db über die SQLite-Backup-API).
  • Geräte und Ergebnisse des früheren eigenständigen BitaxeTuner (%LocalAppData%\BitaxeTuner) werden einmalig kopiert – nie verschoben, nie überschrieben.
  • Einstellungen → Datenordner → Umziehen …: kopiert alles, prüft (integrity_check, Zeilenzahlen, SHA-256) und schaltet erst dann um; der alte Ordner bleibt erhalten. Im Ziel wird nichts überschrieben.
  • Absturzprotokoll: crash.log im Datenordner.

Läuft der alte BitaxeMonitor noch, warnt das Programm beim Start (sonst doppelte Abfragen und Schreibzugriffe).

Wie wird gemessen?

  • API: GET /api/system/info, GET /api/system/asic, PATCH /api/system (frequency, coreVoltage), POST /api/system/restart – siehe ESP-Miner und ESP-Miner-NerdQAxePlus.
  • Pro Kombination wird der getrimmte Mittelwert der Hashrate gebildet (Ausreißer verworfen) und mit der theoretischen Hashrate (expectedHashrate bzw. Frequenz × Small-Cores × Chips) verglichen. Stabil = mindestens 94 % der Soll-Hashrate und Fehlerrate unter dem Limit.
  • Der Ansatz orientiert sich an mrv777/Bitaxe-Hashrate-Benchmark.

Selbst bauen

Voraussetzungen: .NET 8 SDK, optional Inno Setup 6 (wird von build.ps1 bei Bedarf per winget installiert).

dotnet test                 # Tests
dotnet run --project src/BitaxeTuner.App
.\build.ps1                 # Tests + Desktop (Exe, ZIP, Setup) + Server (Linux-Pakete, Windows-Setup) in .\artifacts
dotnet run --project src/BitaxeTuner.Server -- --data .\serverdaten --port 8484
docker build -f deploy/docker/Dockerfile -t bitaxetuner-server .

Ein Release entsteht automatisch per GitHub Actions, sobald ein Tag v* gepusht wird (git tag v0.1.0 && git push --tags).

Projektstruktur

src/BitaxeTuner.Core     API-Client, Geräteprofile, Benchmark-Engine, Simulator, Speicherung, I18n (Texte DE/EN),
                         Host/MinerHub (der Motor: Abfrage, Verlauf, Meldungen, Watchdog, Automatik, Benchmarks),
                         Transfer (Datenübertragung, Server-Client)
src/BitaxeTuner.App      WPF-Oberfläche (MVVM) – Betriebsart „Lokal“ (Motor im Prozess) oder „Server“
src/BitaxeTuner.Server   ASP.NET-Core-Dienst: Motor + REST-API /api/v1 + Live-Ereignisse + Browser-Oberfläche (wwwroot)
deploy/                  install.sh + systemd-Unit (Linux/Pi), Dockerfile + docker-compose.yml
tests/                   xUnit-Tests (Engine, Hub, Server-API, Datenübertragung, Übersetzungen)
installer/               Inno-Setup-Skripte (Desktop, Server-Dienst)

English

The full English documentation is in README.en.md; the program itself is available in English (desktop: Settings → Language, browser: EN button). Website: elemirus1996.github.io/BitaxeTuner/en/.

Hinweise / Disclaimer

  • Keine Gewähr. BitaxeTuner wird ohne jede Garantie bereitgestellt (GPL-3.0, Abschnitte 15–16). Übertakten, höhere Spannungen und eigene Lüfterschaltungen geschehen auf eigenes Risiko.
  • Unabhängiges Projekt. BitaxeTuner ist nicht mit dem Bitaxe-Projekt (bitaxe.org), NerdAxe, Raspberry Pi Ltd, Home Assistant, Waveshare, Shelly, Tibber, aWATTar, Discord, Pushover oder Telegram verbunden und wird von ihnen weder unterstützt noch geprüft. Alle genannten Namen und Marken gehören ihren jeweiligen Inhabern und werden nur zur Beschreibung der Kompatibilität verwendet.
  • Keine Steuerberatung. Steuer-Bereich, Zuflüsse und Stromkosten sind eine Hilfe zur Dokumentation; ob und wie etwas steuerlich zählt, klärt deine Steuerberatung.
  • Das fertige Pi-Image basiert auf Raspberry Pi OS und ist kein offizielles Raspberry-Pi-Produkt; Lizenzen und Quelltext-Hinweise dazu stehen in THIRD-PARTY-NOTICES.txt.
  • No warranty. Independent project, not affiliated with or endorsed by the Bitaxe project, NerdAxe, Raspberry Pi Ltd, Home Assistant, Waveshare, Shelly, Tibber, aWATTar, Discord, Pushover or Telegram. All trademarks belong to their respective owners.

Datenschutz und Code-Signatur

  • BitaxeTuner sammelt keine Daten für die Entwickler (keine Telemetrie, kein Konto, keine Cloud). Welche Dienste das Programm wann kontaktiert: Datenschutz / Privacy Policy.
  • Code-Signatur: Die Windows-Setups sind noch nicht digital signiert (daher die Windows-Warnung beim Installieren: „Weitere Informationen“ → „Trotzdem ausführen“). Wir arbeiten daran, das Programm signieren zu lassen. Bis dahin lässt sich die Echtheit über die SHA-256-Prüfsummen (SHA256SUMS.txt im Release) prüfen.
  • Release-Signatur (ab 0.9.4): SHA256SUMS.txt ist mit ECDSA P-256 signiert (SHA256SUMS.txt.sig, Base64). Die öffentlichen Schlüssel stehen in src/BitaxeTuner.Core/Update/ReleaseSignature.cs; die eingebauten Updates prüfen die Signatur vor jeder Installation. Alle GitHub Actions sind auf feste Commits gepinnt. Ab 0.9.10 signiert ein eigener Schritt in der geschützten GitHub-Umgebung „release“, erst nach Freigabe durch den Projektinhaber; der Dateiname in der signierten Liste muss zur angekündigten Version passen (kein Unterschieben eines alten Pakets als neue Version).

Mitmachen, Fehler melden, Sicherheit

  • Fehler und Wünsche: Issues (Vorlagen vorhanden). Bitte keine IP-Adressen, Wallet-Adressen, Tokens oder Passwörter in Issues posten.
  • Beiträge: siehe CONTRIBUTING.md. Beiträge stehen unter derselben Lizenz (GPL-3.0).
  • Sicherheitslücken bitte nicht öffentlich, sondern wie in SECURITY.md beschrieben melden.

Lizenz

Copyright © 2026 BitaxeTuner contributors. Lizenz: GNU GPL v3.0 – siehe LICENSE. Den Quelltext zu jeder veröffentlichten Version gibt es in diesem Repository (Tag vX.Y.Z bzw. „Source code“ auf der Release-Seite). Enthaltene Komponenten anderer Urheber (u. a. .NET, SQLite, ImageSharp, SMBLibrary, MQTTnet, QRCoder, DejaVu-Schriften, Lucide-Symbol, WebView2-SDK, Inno Setup) und Hinweise zum Raspberry-Pi- und Docker-Image: THIRD-PARTY-NOTICES.txt. LICENSE und THIRD-PARTY-NOTICES.txt liegen jedem Paket bei.

About

Automatisches Übertakten, Benchmarken und 24/7-Überwachung für Bitaxe- und NerdAxe-Miner – Windows-App und Server für Raspberry Pi, Windows und Docker: Browser & Handy-App, Push, Pool-Steuerung, Ertrag gegen Stromkosten, Protokoll, Sicherung, Home Assistant, E-Paper, Lüfter

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages