Blog

Antminer S9 Controller App: Vom Browser-Frust zur Handy-Lösung


-> 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:

```graphql
mutation ($tuneInput: AutotuningIn!, $apply: Boolean!) {
bosminer {
config {
updateAutotuning(input: $tuneInput, apply: $apply) {
... on AutotuningOut {
__typename
}
}
}
}
}
```

---

Die technische Umsetzung

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

Der Workflow heute

1. Shelly-App: Miner einschalten
2. Antminer Controller: Leistung einstellen
3. Fertig.

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

Geplante Erweiterungen
- **Shelly H&T Integration:** Automatische Leistungsanpassung basierend auf Raumtemperatur
- **Widgets:** Direkter Zugriff vom Homescreen
- **Multi-Miner:** Verwaltung mehrerer Geräte

---

Fazit

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*

---

**Tags:** Bitcoin Mining Antminer BraiinsOS Android App SmartHome Automation
Tags: Android App Antminer Bitcoin Mining BraiinsOS
← Vorheriger KI Dienstleistungen Landquart — Künstliche Intelligenz für Unternehmen in Graubünden

Kommentar schreiben