Antminer S9 Controller App: Vom Browser-Frust zur Handy-Lösung
3 Min. Lesezeitadmin
-> Wie ich eine Android-App mit Hilfe von KI entwickelte, um meinen Bitcoin-Miner bequem vom Sofa aus zu steuern
---
Das Problem: Umständliche Miner-Steuerung
Wer einen Antminer S9 mit BraiinsOS betreibt, kennt das Szenario: Man möchte kurz die Leistung anpassen – vielleicht weil der Strompreis gerade günstig ist, oder weil es draussen kälter wird und der Miner ruhig etwas mehr heizen darf.
Was folgt? Laptop aufklappen, Browser öffnen, IP-Adresse eingeben, einloggen, durch die Menüs navigieren, Wert ändern, "Save & Apply" klicken. Für eine simple Änderung von 500W auf 800W ein unnötig aufwändiger Prozess.
Dabei habe ich meinen Miner bereits smart eingebunden: Ein **Shelly-Schalter** ermöglicht das Ein- und Ausschalten per Fingertipp. Warum sollte die Leistungssteuerung komplizierter sein?
---
Die Idee: Eine dedizierte App
Die Anforderungen waren klar:
- **Schnellzugriff** auf die wichtigsten Leistungsstufen (200W, 500W, 800W, 1000W) - **Feineinstellung** per Slider für präzise Anpassungen - **Live-Monitoring** von Hashrate, Temperatur und Stromverbrauch - **Start/Stop** des Mining-Prozesses - **Automatische Aktualisierung** der Anzeige
Klingt machbar – dachte ich.
---
Die Herausforderung: BraiinsOS API
Was einfach klingt, entpuppte sich als Detektivarbeit. BraiinsOS bietet keine dokumentierte REST-API für die Leistungssteuerung. Die ersten Versuche mit der CGMiner-API (Port 4028) schlugen fehl – sie erlaubt zwar das Auslesen von Status-Informationen, aber keine Konfigurationsänderungen.
Der Durchbruch: GraphQL
Die Lösung fand sich in den Browser-Entwicklertools. Beim Analysieren der Netzwerk-Requests des Web-Interfaces wurde klar: **BraiinsOS nutzt eine GraphQL-API**.
Jede Aktion im Web-Interface – Login, Leistungsänderung, Mining starten/stoppen – sendet eine spezifische GraphQL-Mutation an den Endpunkt `/graphql`. Mit diesem Wissen konnte ich die exakten Queries nachbauen:
Entwicklungsumgebung - **Android Studio** mit Kotlin - **OkHttp** für HTTP-Requests - **Coroutines** für asynchrone Operationen
Architektur
Die App kombiniert zwei APIs:
1. **GraphQL-API** (Port 80) - Login/Authentifizierung - Leistungsänderungen - Mining Start/Stop - Funktioniert immer (auch im Standby)
2. **CGMiner-API** (Port 4028) - Live-Hashrate - Temperatur-Auslese - Aktueller Stromverbrauch - Nur verfügbar wenn Mining aktiv
Diese Kombination ermöglicht eine zuverlässige Statusanzeige: Ist die CGMiner-API nicht erreichbar, weiss die App, dass das Mining gestoppt ist – ohne Fehlermeldung.
---
Das Ergebnis
Nach einigen Iterationen entstand eine übersichtliche App mit allem, was ich brauche:
Features
✅ **Temperatur-Anzeige** – Chip-Temperatur immer im Blick ✅ **Drei-Spalten-Dashboard** – Leistung/Set, Verbrauch, Hashrate ✅ **Schnellwahl-Buttons** – 200W, 500W, 800W, 1000W mit einem Tap ✅ **Feineinstellung** – Slider von 150W bis 1200W ✅ **Mining-Kontrolle** – Start/Stop mit einem Button ✅ **Auto-Refresh** – Einstellbares Aktualisierungsintervall (3-60 Sekunden) ✅ **Verbindungstest** – Diagnose bei Problemen
Keine Browser mehr, kein Laptop nötig. Die Steuerung erfolgt komplett vom Smartphone – vom Sofa.
---
Technische Details für Interessierte
Kompatibilität - **Firmware:** BraiinsOS 22.08.x (letzte Version für S9) - **Hardware:** Antminer S9 / S9i / S9j - **Android:** 7.0+
Sicherheit - Alle Zugangsdaten werden **nur lokal** auf dem Gerät gespeichert - Kommunikation erfolgt im **lokalen Netzwerk** - Keine Cloud, keine externen Server
Was als kleines Komfort-Projekt begann, wurde zu einer lehrreichen Reise durch die Untiefen undokumentierter APIs. Das Reverse-Engineering der GraphQL-Schnittstelle war der Schlüssel zum Erfolg.
Die App löst ein echtes Problem: Sie macht die tägliche Miner-Verwaltung so einfach wie das Einschalten einer smarten Lampe. Und genau das war das Ziel.
---
*Entwickelt mit Unterstützung von Claude AI | widmeraisolutions.ch*