Bitcoin-Miner mit Home Assistant steuern: Überschuss, Strompreis und Temperatur in einer Automation
Von Lukas Henning · 02. Oktober 2026 · 18 Min. Lesezeit
Ein kleiner Bitcoin-Miner ist der dankbarste Verbraucher, den ein Smart Home haben kann: Er braucht keine Vorlaufzeit, hat keinen Zyklus, den man nicht unterbrechen darf, und er nimmt jede Leistung zwischen „aus" und „voll" an. Genau deshalb passt er so gut in Home Assistant. In dieser Anleitung baust du eine Automation, die einen Bitaxe, Nerdaxe, NerdQaxe oder NerdOctaxe nach drei Größen steuert: nach dem Solarüberschuss, nach dem aktuellen Strompreis und nach der Temperatur. Am Ende läuft der Miner voll, wenn die Sonne den Strom liefert oder er an der Börse billig ist, gedrosselt, wenn nur wenig Überschuss da ist, und gar nicht, wenn jede Kilowattstunde 37 Cent kostet oder das Arbeitszimmer ohnehin schon warm ist.
Die Rechnung dahinter, also was eine Kilowattstunde im Miner wert ist und welcher Miner zu welcher Anlage passt, steht in unserem Ratgeber Bitcoin Mining mit Solarstrom. Hier geht es um die Umsetzung. Alle YAML-Beispiele sind so geschrieben, dass du sie kopieren und nur die Entitätsnamen anpassen musst. Sie setzen eine aktuelle Home-Assistant-Installation voraus, egal ob auf einem Raspberry Pi, einem Home Assistant Green oder in einer virtuellen Maschine.
Was du brauchst
Die Automation braucht vier Datenquellen. Nur die erste ist Pflicht, die anderen drei schaltest du nach Bedarf dazu.
| Baustein | Wofür | Typische Quelle |
|---|---|---|
| Miner | Leistung, Hashrate, Temperatur lesen; Frequenz und Spannung setzen | AxeOS-Schnittstelle des Miners, über HACS-Integration oder REST |
| Überschuss | Erzeugung minus Hausverbrauch | Wechselrichter-Integration, OpenDTU bei Hoymiles, Lesekopf am Zähler, Shelly 3EM, Tibber Pulse |
| Strompreis | Stundenpreis mit Grenzpreis vergleichen | Tibber-Integration (mit Vertrag) oder EPEX-Spot-Integration (ohne Vertrag) |
| Temperatur | Miner vor Hitze schützen, Raum nicht überheizen | Chiptemperatur aus AxeOS, Raumfühler (Zigbee, Shelly H&T, beliebig) |
Die vier Bausteine der Automation. Ohne Solaranlage und ohne dynamischen Tarif bleibt die Temperatur- und Zeitsteuerung, die allein schon nützlich ist.
Auf der Hardwareseite reicht ein Miner mit AxeOS-Firmware im selben Netz wie Home Assistant. Gib ihm im Router eine feste IP-Adresse, sonst zeigt die Konfiguration nach dem nächsten Neustart ins Leere. Als Miner eignet sich jedes Gerät aus der Bitaxe- und Nerdaxe-Familie, vom Bitaxe Gamma 601 mit 17 Watt bis zum NerdOctaxe mit 200 Watt. Je größer der Miner, desto mehr bringt die Steuerung, weil jede Stunde Netzbetrieb mehr kostet.
Schritt 1: Den Miner einbinden
Der bequemste Weg ist die AxeOS-HA-Integration, ein Open-Source-Projekt unter MIT-Lizenz. Du fügst das Repository in HACS als benutzerdefiniertes Repository hinzu, installierst die Integration, startest Home Assistant neu und legst den Miner über seine IP-Adresse an. Danach hast du über 80 Sensoren (Leistung, Hashrate in mehreren Mittelwerten, Chip- und Spannungswandlertemperatur, Shares, Difficulty) sowie Steuerentitäten für Lüfter, Frequenz und Kernspannung und einen Neustart-Knopf. Die Integration ist für Bitaxe und Nerdaxe entwickelt; NerdQaxe und NerdOctaxe sprechen dieselbe AxeOS-API, so dass die Sensoren dort ebenfalls funktionieren.
Wer keine Integration installieren will oder lieber versteht, was unter der Haube passiert, bindet den Miner direkt über seine HTTP-Schnittstelle an. AxeOS liefert unter /api/system/info ein JSON mit allen Betriebsdaten und nimmt unter /api/system per PATCH neue Einstellungen entgegen; die vollständige Beschreibung liegt als OpenAPI-Datei im ESP-Miner-Projekt. In Home Assistant sind das ein REST-Sensor und zwei REST-Befehle in der configuration.yaml:
# configuration.yaml
sensor:
- platform: rest
name: bitaxe_info
resource: http://192.168.1.50/api/system/info
scan_interval: 30
value_template: "{{ value_json.hashRate | round(0) }}"
unit_of_measurement: "GH/s"
json_attributes:
- power
- temp
- vrTemp
- frequency
- coreVoltage
rest_command:
bitaxe_einstellen:
url: http://192.168.1.50/api/system
method: PATCH
content_type: "application/json"
payload: '{"frequency": {{ frequenz }}, "coreVoltage": {{ spannung }}}'
bitaxe_pause:
url: http://192.168.1.50/api/system/pause
method: POST
bitaxe_weiter:
url: http://192.168.1.50/api/system/resume
method: POST Die Attribute des REST-Sensors machst du mit Template-Sensoren zu eigenen Entitäten, damit du sie in Bedingungen und im Energie-Dashboard verwenden kannst:
template:
- sensor:
- name: "Bitaxe Leistung"
unit_of_measurement: W
device_class: power
state_class: measurement
state: "{{ state_attr('sensor.bitaxe_info', 'power') | float(0) | round(1) }}"
- name: "Bitaxe Chiptemperatur"
unit_of_measurement: "°C"
device_class: temperature
state: "{{ state_attr('sensor.bitaxe_info', 'temp') | float(0) | round(0) }}" /api/system/pause und /api/system/resume gibt es in neueren AxeOS-Versionen. Sie halten das Mining an, ohne den Miner vom Strom zu nehmen; die Leistungsaufnahme fällt dann auf wenige Watt für Prozessor, WLAN und Display. Fehlt der Aufruf bei deiner Firmware, nimmst du stattdessen eine schaltbare Steckdose als Entität switch.bitaxe_steckdose. Ob eine geänderte Frequenz sofort greift oder erst nach einem Neustart, hängt von der Firmware-Version ab; im Zweifel den Neustart-Aufruf /api/system/restart an den Befehl anhängen. Gib den Entitäten sprechende Namen, bevor du die erste Automation schreibst, denn spätere Umbenennungen ziehen sich durch alle Regeln. Bei mehreren Minern hat sich ein Schema aus Gerät und Raum bewährt, etwa sensor.gaia_arbeitszimmer_leistung. Trag außerdem im Router eine feste IP-Adresse für jeden Miner ein und notiere sie in der Konfiguration als Kommentar; der Hostname aus AxeOS ist bequemer, aber nicht jeder Router löst ihn zuverlässig auf, und eine Automation, die ins Leere läuft, meldet sich nicht von selbst.
Schritt 2: Den Überschuss als Sensor anlegen
Der Überschuss ist die Erzeugung deiner Anlage minus dem Verbrauch des Hauses. Die Erzeugung liefern die meisten Wechselrichter über eine eigene Integration (Fronius, SMA, Kostal, Huawei, Enphase sind in Home Assistant enthalten). Für Hoymiles-Mikrowechselrichter, wie sie an den meisten Balkonkraftwerken hängen, ist OpenDTU die Lösung: ein kleiner ESP32, der den Wechselrichter per Funk ausliest und die Werte über MQTT an Home Assistant meldet, mit automatischer Erkennung. Den Hausverbrauch liest ein Lesekopf am digitalen Stromzähler (etwa mit der Tasmota- oder Tibber-Pulse-Integration) oder ein Dreiphasen-Messgerät wie ein Shelly Pro 3EM im Zählerschrank. Wer nur ein Balkonkraftwerk hat, kommt auch ohne Hausverbrauch aus und nimmt die Erzeugung minus eine feste Grundlast.
Ein Detail entscheidet darüber, ob die Steuerung stabil läuft: Der Miner ist selbst Teil des Hausverbrauchs. Läuft er, sinkt der gemessene Überschuss um seine eigene Leistung, und eine naive Regel würde ihn sofort wieder abschalten. Deshalb rechnest du seine Leistung zum Überschuss dazu und erhältst den Überschuss, der ohne Miner zur Verfügung stünde:
template:
- sensor:
- name: "PV Überschuss ohne Miner"
unit_of_measurement: W
device_class: power
state_class: measurement
state: >
{{ (states('sensor.pv_erzeugung') | float(0))
- (states('sensor.haus_verbrauch') | float(0))
+ (states('sensor.bitaxe_leistung') | float(0)) }} Bei einem Zähler, der Bezug und Einspeisung getrennt meldet, ist es noch einfacher: Der Überschuss ohne Miner ist die aktuelle Einspeiseleistung plus die Leistung des Miners. Prüfe den Sensor eine Stunde lang in den Verlaufsdaten, bevor du ihn in eine Automation einbaust. Wenn er bei Sonnenschein negativ ist, sind Erzeugung und Verbrauch vertauscht oder in unterschiedlichen Einheiten (W gegen kW).
Schritt 3: Den Strompreis einbinden
Die zweite Bedingung ist der Preis. Wer einen dynamischen Tarif hat, bekommt seinen Stundenpreis in Home Assistant über die Integration des Anbieters; die Tibber-Integration etwa liefert einen Preissensor mit dem aktuellen Arbeitspreis und Attributen wie Tages-Maximum und -Minimum. Wer keinen dynamischen Tarif hat, aber wissen will, wann Strom an der Börse billig ist, nimmt die EPEX-Spot-Integration aus HACS: Sie holt die Stundenpreise aus frei zugänglichen Quellen wie SMARD oder Energy-Charts, ganz ohne Vertrag, und stellt Sensoren für Preis, Rang und Quantil des laufenden Tages bereit.
Der Grenzpreis, ab dem sich der Betrieb aus dem Netz nicht mehr lohnt, ist der Ertrag je Kilowattstunde deines Miners: bei einem Bitaxe Gamma rund 11 Cent, bei einem Nerdaxe Gaia rund 15 Cent (Stand September 2026, siehe Mining-Rechner). Hinterlege ihn als Hilfsentität, damit du ihn ohne YAML-Änderung anpassen kannst, wenn Kurs oder Difficulty sich bewegen:
input_number:
miner_grenzpreis:
name: "Miner Grenzpreis"
min: 0
max: 0.50
step: 0.01
unit_of_measurement: "€/kWh"
initial: 0.11
miner_ueberschuss_an:
name: "Überschuss zum Einschalten"
min: 0
max: 500
step: 5
unit_of_measurement: W
initial: 40
miner_ueberschuss_aus:
name: "Überschuss zum Abschalten"
min: 0
max: 500
step: 5
unit_of_measurement: W
initial: 10 Wichtig für die Erwartung: Mit einem gewöhnlichen dynamischen Tarif liegt der Arbeitspreis auch in den billigsten Stunden meist über dem Grenzpreis, weil Netzentgelte, Steuern und Umlagen von rund 20 Cent je Kilowattstunde immer dazukommen. Die Preisbedingung greift deshalb selten allein, sondern vor allem in den wenigen Stunden mit stark negativen Börsenpreisen. Ihre Hauptaufgabe in dieser Automation ist die andere Richtung: den Miner sicher abzuschalten, wenn kein Überschuss da ist und der Strom teuer. Was ein dynamischer Tarif für Miner wirklich bringt, rechnen wir in einem eigenen Ratgeber vor.
Schritt 4: Temperaturgrenzen festlegen
Die dritte Bedingung schützt Gerät und Bewohner. AxeOS überwacht die Chiptemperatur selbst und schaltet bei Überhitzung ab, aber du willst vorher eingreifen: Ein Bitaxe, der wegen Überhitzung abschaltet und nach dem Abkühlen wieder anläuft, produziert in einem warmen Sommerzimmer einen Sägezahn aus Hashrate und Stille. Besser ist, ab einer Schwelle von etwa 65 Grad (Wert nach Gerät und Kühlung anpassen) auf die gedrosselte Stufe zu gehen. Gedrosselt läuft der Chip kühler und effizienter, und die Hashrate bleibt stetig.
Die Raumtemperatur ist die zweite Temperaturgrenze und im Winter die interessantere. Ein NerdOctaxe mit 200 Watt heizt ein kleines Arbeitszimmer merklich; mit einem Raumfühler und einer Obergrenze von beispielsweise 22 Grad wird der Miner zur regelbaren Elektroheizung, die nebenbei Hashrate liefert. Wie viel Wärme welches Gerät liefert und wann sich das gegenüber einer normalen Heizung rechnet, behandeln wir im Ratgeber zum Heizen mit dem NerdOctaxe Hydro. Für die Automation hier reicht ein Sensor sensor.arbeitszimmer_temperatur und eine Obergrenze als input_number.miner_raum_max.
Die vierte Bedingung: Zeit und Anwesenheit
Neben Überschuss, Preis und Temperatur gibt es eine vierte Größe, die in der Praxis oft den Ausschlag gibt: ob jemand im Raum ist. Ein Bitaxe ist leise, ein NerdQaxe ++ mit Lüfter hörbar, ein NerdOctaxe im Schlafzimmer nachts unerwünscht. Home Assistant weiß über Bewegungsmelder, Handy-Standort oder einen einfachen Zeitplan, wann der Raum genutzt wird, und die Automation bekommt eine weitere Zeile in der Aus-Bedingung: or is_state('binary_sensor.schlafzimmer_belegt', 'on'). Umgekehrt lässt sich die Volllast-Stufe an Abwesenheit koppeln: tagsüber, wenn niemand zu Hause ist, darf der Lüfter ruhig hochdrehen.
Ein Zeitplan ist außerdem die richtige Rückfallebene, wenn Sensoren ausfallen. Fällt der Überschuss-Sensor aus (Zustand unavailable), liefert das Template 0, und der Miner bliebe bei teurem Strom aus, was in Ordnung ist. Fällt aber der Preissensor aus und du hast keine Solaranlage, würde die Automation den Miner nie einschalten. Deshalb lohnt eine zusätzliche Regel: Ist der Preissensor länger als eine Stunde nicht verfügbar, gilt ein fester Zeitplan, etwa 11 bis 15 Uhr im Sommer. Die Bedingung dafür lautet in Home Assistant states('sensor.strompreis') in ['unavailable', 'unknown'], und die Stunde kommt aus now().hour.
Schritt 5: Die Automation mit drei Stufen
Jetzt kommt alles zusammen. Die Automation läuft alle fünf Minuten und entscheidet zwischen drei Stufen: Aus, gedrosselt und voll. Der Fünf-Minuten-Takt ist die Hysterese: Er verhindert, dass eine einzelne Wolke den Miner schaltet, und gibt der Hashrate Zeit, sich nach einer Änderung einzupendeln. Dazu kommen zwei verschiedene Überschuss-Schwellen, eine höhere zum Einschalten und eine niedrigere zum Abschalten, damit die Stufen nicht an einem einzigen Wert hin- und herkippen.
| Stufe | Bedingung (eine reicht) | Aktion |
|---|---|---|
| Aus | Chiptemperatur über Grenze, Raum über Grenze, oder: kein Überschuss und Preis über Grenzpreis | Pause oder Steckdose aus |
| Voll | Überschuss über Einschaltschwelle, oder Preis unter Grenzpreis | Resume, Standardfrequenz und -spannung |
| Gedrosselt | alles dazwischen | Resume, niedrige Frequenz und Spannung |
Die Entscheidungslogik. „Aus" hat Vorrang vor „voll", die Temperatur schlägt alles.
automation:
- alias: "Miner: Überschuss, Preis, Temperatur"
mode: single
trigger:
- platform: time_pattern
minutes: "/5"
variables:
ueberschuss: "{{ states('sensor.pv_ueberschuss_ohne_miner') | float(0) }}"
preis: "{{ states('sensor.strompreis') | float(1) }}"
grenzpreis: "{{ states('input_number.miner_grenzpreis') | float(0) }}"
chip: "{{ states('sensor.bitaxe_chiptemperatur') | float(0) }}"
raum: "{{ states('sensor.arbeitszimmer_temperatur') | float(0) }}"
an: "{{ states('input_number.miner_ueberschuss_an') | float(40) }}"
aus: "{{ states('input_number.miner_ueberschuss_aus') | float(10) }}"
action:
- choose:
# Stufe Aus: zu heiß, oder kein Überschuss bei teurem Strom
- conditions: >
{{ chip > 68 or raum > states('input_number.miner_raum_max') | float(99)
or (ueberschuss < aus and preis > grenzpreis) }}
sequence:
- service: rest_command.bitaxe_pause
# Stufe Voll: genug Überschuss oder billiger Strom
- conditions: "{{ ueberschuss > an or preis < grenzpreis }}"
sequence:
- service: rest_command.bitaxe_weiter
- service: rest_command.bitaxe_einstellen
data:
frequenz: 525
spannung: 1150
# Stufe Gedrosselt: alles dazwischen
default:
- service: rest_command.bitaxe_weiter
- service: rest_command.bitaxe_einstellen
data:
frequenz: 400
spannung: 1050 Die Frequenz- und Spannungswerte im Beispiel sind Startwerte für einen Bitaxe Gamma; für Nerdaxe Gaia, NerdQaxe ++ und NerdOctaxe gelten andere Bereiche. Nimm für „voll" die Werte, die AxeOS bei dir im Auslieferungszustand zeigt, und für „gedrosselt" ein Paar deutlich darunter, das du vorher von Hand getestet hast. Senke Frequenz und Kernspannung immer gemeinsam: Nur die Frequenz zu senken und die Spannung oben zu lassen, spart kaum Leistung. Unsere Erfahrungswerte je Gerät und die sicheren Bereiche stehen im AxeOS-Tuning-Ratgeber.
Wer die AxeOS-HA-Integration nutzt, ersetzt die drei REST-Befehle durch die Entitäten der Integration: number.set_value auf die Frequenz- und Spannungsentität, und statt Pause und Resume entweder die Steckdose oder die niedrigste Frequenzstufe. Die Logik bleibt identisch.
Schritt 6: Dashboard und Kontrolle
Damit du siehst, was die Automation tut, gehören drei Dinge auf ein Dashboard: die aktuelle Stufe, die Hashrate der letzten Stunde und die Leistung des Miners neben dem Überschuss. Die Stufe machst du sichtbar, indem die Automation zusätzlich einen input_select.miner_stufe setzt; dann taucht sie als Text auf der Karte auf und in den Verlaufsdaten kannst du nachvollziehen, wann und warum geschaltet wurde. Die Leistung des Miners nimmst du als Einzelverbraucher ins Energie-Dashboard auf. Nach ein paar Wochen zeigt dir Home Assistant dann schwarz auf weiß, wie viele Kilowattstunden aus der Sonne und wie viele aus dem Netz im Miner gelandet sind.
Zwei Benachrichtigungen lohnen sich außerdem. Erstens eine Meldung, wenn der Miner länger als 15 Minuten „voll" sein sollte, die Hashrate aber unter der Hälfte des Normalwerts liegt: Das ist fast immer ein WLAN- oder Pool-Problem, und ohne Meldung fällt es erst nach Tagen auf. Zweitens die Meldung, auf die jeder Solo-Miner wartet: AxeOS merkt sich den Fund eines Blocks in seinen Systemdaten (der Aufruf blockFound/dismiss setzt die Anzeige zurück). Ein Template-Sensor auf dieses Attribut, eine Automation darauf und eine Push-Nachricht aufs Handy sind schnell gebaut, und wer auf unserem Solo-Pool mint, sieht den Fund dort ebenfalls sofort.
Nach einem Monat: Bilanz ziehen
Die Automation ist erst fertig, wenn du weißt, was sie gebracht hat. Nach vier Wochen Betrieb lohnt ein Blick auf vier Zahlen, die Home Assistant alle liefert. Erstens die Laufzeit je Stufe, ablesbar aus dem Verlauf des input_select.miner_stufe: Wie viele Stunden voll, wie viele gedrosselt, wie viele aus? Zweitens die Kilowattstunden des Miners aus dem Energie-Dashboard, getrennt nach Solar- und Netzanteil, wenn dein Dashboard die Quelle aufschlüsselt. Drittens die mittlere Hashrate der letzten 30 Tage, die dir dein Pool anzeigt und die mit den Laufzeiten zusammenpassen muss. Viertens die Zahl der Schaltvorgänge: Mehr als zehn am Tag sind ein Zeichen, dass die Schwellen zu eng liegen.
Aus diesen Zahlen ergibt sich, ob die Schwellen stimmen. Läuft der Miner fast nie voll, ist die Einschaltschwelle zu hoch oder das Gerät zu groß für die Anlage; dann hilft eine niedrigere Drosselstufe, die schon bei 20 Watt Überschuss anspringt. Läuft er häufig auf Netzstrom, obwohl die Sonne scheint, rechnet der Überschuss-Sensor falsch, meistens weil der Miner nicht herausgerechnet wird oder weil die Grundlast des Hauses am Wochenende höher ist als angenommen. Und wenn die Hashrate im Pool deutlich unter dem liegt, was die Laufzeit erwarten lässt, verliert der Miner nach jedem Start Zeit; dann Hysterese auf zehn Minuten setzen und die Drosselstufe statt der Pause verwenden.
Was die Automation im Jahr bringt: eine Beispielrechnung
Ob sich der Aufwand lohnt, hängt davon ab, wie groß der Miner im Verhältnis zur Anlage ist. Nimm einen NerdQaxe ++ mit rund 80 Watt an einem Balkonkraftwerk mit zwei Modulen. Ohne Steuerung läuft er rund um die Uhr und verbraucht etwa 700 Kilowattstunden im Jahr. Davon kommen an einem solchen Balkon vielleicht 250 aus der Sonne, der Rest, rund 450 Kilowattstunden, aus dem Netz. Bei 37 Cent sind das etwa 165 Euro Stromkosten im Jahr, denen ein Pool-Ertrag von rund 60 Euro gegenübersteht (Stand September 2026). Der Miner macht also gut 100 Euro Verlust im Jahr, und das ist der Normalfall bei einem ungesteuerten 80-Watt-Gerät am Balkon.
Mit der Automation aus Schritt 5 läuft derselbe Miner nur noch, wenn Überschuss da ist: an einem solchen Balkon grob 1.200 bis 1.500 Stunden im Jahr, gedrosselt auch etwas länger. Er verbraucht dann 100 bis 150 Kilowattstunden, alle aus der Sonne, und erwirtschaftet 12 bis 18 Euro Pool-Ertrag. Aus gut 100 Euro Verlust werden 15 Euro Gewinn. Das ist nicht viel Geld, aber es ist die Differenz zwischen einem Hobby, das Geld kostet, und einem, das keins kostet. Beim Bitaxe Gamma 601 mit 17 Watt ist der Effekt kleiner, weil auch der ungesteuerte Betrieb nur rund 25 Euro Netzstrom im Jahr kostet; hier ist die Steuerung eher Komfort als Notwendigkeit. Beim NerdOctaxe mit 200 Watt ist sie Pflicht.
| NerdQaxe ++ am Balkonkraftwerk | ohne Steuerung | mit Automation |
|---|---|---|
| Laufzeit im Jahr | 8.760 h | ~1.200 bis 1.500 h |
| Verbrauch | ~700 kWh | ~100 bis 150 kWh |
| davon aus dem Netz | ~450 kWh | 0 kWh |
| Netzstromkosten (37 ct) | ~165 € | 0 € |
| Pool-Ertrag | ~60 € | ~12 bis 18 € |
| Ergebnis | ~105 € Verlust | ~15 € Gewinn |
Beispielrechnung für einen 80-Watt-Miner an einem Zwei-Modul-Balkonkraftwerk, Pool-Mining, Stand September 2026. Solo-Mining hat keinen laufenden Ertrag, dafür die Blockchance.
Die Rechnung zeigt auch, warum die Drosselung so wertvoll ist: Gedrosselt braucht der NerdQaxe ++ deutlich weniger Leistung und läuft damit an vielen Stunden im Überschuss, an denen er ungedrosselt schon auf Netzstrom wäre. Die Effizienz in Joule je Terahash wird beim Drosseln sogar besser, so dass der Ertrag je Kilowattstunde steigt. Aus Sicht der Sonne ist ein gedrosselter Miner der bessere Miner.
Fertige Bausteine statt Eigenbau
Du musst die Logik nicht selbst schreiben. Für den Überschuss-Teil gibt es in Home Assistant zwei ausgereifte Open-Source-Bausteine, mit denen der Miner wie eine Wallbox oder eine Wärmepumpe behandelt wird.
- Solar Optimizer (MIT-Lizenz, HACS): Die Integration verteilt den Überschuss auf mehrere Geräte und kennt neben Ein-Aus-Geräten auch regelbare Verbraucher mit
power_min,power_maxundpower_step. Genau das ist ein Miner mit Frequenzstufen. Du gibst Mindestlaufzeit und Mindestpause an, und der Optimierer entscheidet mit einem Kostenmodell aus Bezugs- und Einspeisepreis, wann der Miner läuft. Der Vorteil gegenüber der eigenen Automation: Waschmaschine, Wallbox und Miner werden gemeinsam optimiert, und der Miner bekommt die niedrigste Priorität, weil er die Kilowattstunde am schlechtesten bezahlt. - PV Excess Optimizer (Blueprint aus dem Home-Assistant-Forum): Ein Blueprint, den du importierst und mit Sensoren für Erzeugung, Bezug und dem Schalter des Geräts füllst. Er kennt Hysterese, Mindestlaufzeiten und mehrere Geräte in Stufen. Für Ein-Aus-Betrieb an einer Steckdose ist er in zehn Minuten eingerichtet; die Drosselung über Frequenzstufen kann er nicht.
Unsere Empfehlung: Wer nur den Miner steuern will, ist mit der Automation aus Schritt 5 am transparentesten unterwegs. Wer mehrere Verbraucher nach Überschuss betreibt, nimmt Solar Optimizer und hängt den Miner als regelbares Gerät mit der niedrigsten Priorität an.
Typische Stolperfallen
- Der Miner rechnet sich selbst weg: Überschuss-Sensor ohne die Miner-Leistung, siehe Schritt 2. Symptom: Wechsel zwischen an und aus im Fünf-Minuten-Takt.
- Preissensor nicht verfügbar: Anbieter-Schnittstellen fallen gelegentlich aus, und ein Sensor im Zustand
unavailablewird im Template zu 0, was wie Gratisstrom aussieht. Deshalb steht im Beispielfloat(1)als Ersatzwert für den Preis: Ist der Sensor weg, gilt Strom als teuer, und der Miner läuft nur bei Überschuss. - Frequenz greift nicht: Manche AxeOS-Versionen übernehmen neue Werte erst nach einem Neustart. Dann den Aufruf
/api/system/restartanhängen und die Hysterese auf zehn Minuten erhöhen, damit der Miner nicht ständig bootet. - WLAN am Aufstellort: Ein Miner auf dem Balkon oder im Keller hat oft schlechten Empfang. Ein Sensor, der alle 30 Sekunden abgefragt wird, aber nur alle paar Minuten antwortet, macht jede Automation nervös. Erst den Empfang lösen, dann automatisieren. Unsere Fehlerhilfe zeigt, wie du das prüfst.
- Mehrere Miner: Jeder Miner bekommt seine eigene Automation und seine eigene Einschaltschwelle, gestaffelt nach Effizienz: Der Nerdaxe Gaia schaltet zuerst ein, der Bitaxe GT zuletzt. So landet die erste Kilowattstunde Überschuss immer im Gerät, das am meisten daraus macht.
- Netzteil und Messung: Die Leistungsangabe von AxeOS ist die Leistung hinter dem Netzteil. An der Steckdose kommen je nach Netzteil 10 bis 15 Prozent dazu. Wer es genau wissen will, nimmt die Messsteckdose als Quelle für
sensor.bitaxe_leistung.
Ohne Home Assistant: ein Python-Skript auf dem Raspberry Pi
Wer keine Hausautomation betreibt, braucht keine. Die AxeOS-Schnittstelle lässt sich von jedem Gerät im Netz ansprechen, und ein Raspberry Pi oder ein alter Laptop mit Python reicht, um den Miner dem Überschuss folgen zu lassen. Das folgende Skript fragt alle fünf Minuten die Erzeugung bei OpenDTU ab, zieht eine feste Grundlast ab, rechnet die aktuelle Leistung des Miners dazu und setzt die Stufe. Es ist bewusst kurz gehalten; Preis- und Temperaturbedingung ergänzt du nach demselben Muster.
import requests, time
MINER = "http://192.168.1.50"
DTU = "http://192.168.1.60/api/livedata/status" # OpenDTU
GRUNDLAST = 200 # Watt, geschaetzter Verbrauch des Haushalts
while True:
try:
pv = requests.get(DTU, timeout=5).json()["total"]["Power"]["v"]
info = requests.get(f"{MINER}/api/system/info", timeout=5).json()
ueberschuss = pv - GRUNDLAST + info["power"]
if ueberschuss > 40:
stufe = {"frequency": 525, "coreVoltage": 1150}
elif ueberschuss > 10:
stufe = {"frequency": 400, "coreVoltage": 1050}
else:
stufe = None
if stufe:
requests.post(f"{MINER}/api/system/resume", timeout=5)
requests.patch(f"{MINER}/api/system", json=stufe, timeout=5)
else:
requests.post(f"{MINER}/api/system/pause", timeout=5)
except Exception as e:
print("Fehler, naechster Versuch in 5 Minuten:", e)
time.sleep(300) Das Skript läuft als Systemdienst und braucht keine Oberfläche. Wer es ausbauen will, hängt eine Zeile an, die die Werte in eine CSV-Datei schreibt; nach einem Monat hast du dann dieselbe Auswertung wie im Energie-Dashboard. Für ioBroker und Node-RED gilt dasselbe Prinzip: ein HTTP-Knoten für die Abfrage, ein Vergleich, ein HTTP-Knoten für den Befehl. Die Schnittstelle ist bei allen dieselbe, nur die Verpackung unterscheidet sich.
Sicherheit: der Miner gehört nicht ins Internet
Ein Punkt, der in Anleitungen oft fehlt: Die AxeOS-Schnittstelle hat keine Anmeldung. Jeder, der den Miner im Netz erreicht, kann Pool, Adresse und Spannung ändern. Das ist im Heimnetz in Ordnung, weil dort nur deine Geräte sind. Es ist nicht in Ordnung, wenn der Miner per Portweiterleitung aus dem Internet erreichbar ist, und das passiert schneller, als man denkt, etwa wenn jemand für den Fernzugriff auf das Dashboard den Router öffnet. Die Regeln: keine Portweiterleitung auf den Miner, Fernzugriff nur über das VPN des Routers oder über Home Assistant Cloud beziehungsweise Nabu Casa, und wenn du Gäste-WLAN oder ein eigenes VLAN für Smart-Home-Geräte hast, gehört der Miner dorthin, zusammen mit Home Assistant, damit die beiden sich erreichen.
Prüfe außerdem nach jeder Firmware-Aktualisierung, ob Pool und Auszahlungsadresse noch stimmen. AxeOS behält die Einstellungen beim Update, aber ein Blick kostet zehn Sekunden, und ein Miner, der monatelang auf eine falsche Adresse mint, ist der teuerste Fehler, den man mit einem Bitaxe machen kann. Wie du das Update sauber durchführst, steht in unserer Einrichtungsanleitung.
Fazit
Mit einer Handvoll YAML wird aus einem Bitaxe ein Verbraucher, der sich nach Sonne, Preis und Temperatur richtet, ohne dass du je wieder eine Steckdose anfassen musst. Der Kern ist die Automation mit drei Stufen aus Schritt 5, alles andere sind Datenquellen, die du nach Bedarf ergänzt. Wer sein Balkonkraftwerk mit einem Bitaxe Gamma 601 oder Nerdaxe Gaia kombiniert, kommt mit Überschuss-Sensor und Steckdose aus. Wer eine Dachanlage und einen NerdQaxe ++ oder NerdOctaxe betreibt, holt mit der Drosselung über Frequenz und Spannung die meiste Hashrate aus jedem Watt Überschuss. Und im Winter wird aus derselben Automation mit einer Raumtemperaturgrenze eine kleine, regelbare Heizung.
Wenn der Miner noch nicht läuft, fang mit unserer Einrichtungsanleitung an. Welches Gerät zu deiner Anlage passt und was eine Kilowattstunde darin bringt, steht im Ratgeber Bitcoin Mining mit Solarstrom.
Häufige Fragen
Kann ich einen Bitaxe mit Home Assistant steuern?
Brauche ich eine Solaranlage für die Automation?
Ist Drosseln besser als Abschalten?
Wie verhindere ich, dass die Automation ständig hin- und herschaltet?
Woher bekomme ich den Strompreis, wenn ich keinen dynamischen Tarif habe?
Welchen Grenzpreis soll ich eintragen?
Funktioniert das auch mit dem Avalon Nano 3S?
Geschrieben von
Lukas Henning · Mining-Redakteur & Hardware-Experte
Lukas beschäftigt sich seit Jahren mit Bitcoin-Mining und betreibt mehrere Open-Source-Miner wie Bitaxe und NerdQaxe im eigenen Zuhause. Für Open Source Miners testet er Hardware, dokumentiert Setups und übersetzt Mining-Technik in verständliche Anleitungen: praxisnah, ehrlich und ohne Hype.