Bitcoin minen met dynamische energieprijzen en Home Assistant

29 november 2023

De unieke technologie van bitcoinmining maakt dat het steeds duurzamer wordt ingezet. Of het nu is om apparatuur een tweede leven te geven, je woning te verwarmen of energie-overschotten te gebruiken, je kunt er bitcoinmining voor gebruiken.

In dit artikel leg ik uit hoe je met een ASIC-miner en Home Assistant bitcoin kunt minen alleen wanneer de energieprijzen laag (of misschien zelfs negatief) zijn. Dit alles geautomatiseerd, op basis van dynamische energieprijzen. Ik bespreek waarom je dit zou willen, wat je er voor nodig hebt om dit te doen en leg je stap voor stap uit hoe je dit moet doen.

Bitcoin minen op basis van dynamische energieprijzen: waarom eigenlijk?

Dit vul ik later nog aan. Hier komt in ieder geval iets over de rol van mining in verduurzaming en dynamische energieprijzen.

De opzet

Voordat we daadwerkelijk aan de slag gaan, wil ik hier even beknopt uitleggen wat we precies gaan doen. De essentie is dat we aan bitcoin mining willen gaan doen, maar dan alleen wanneer de energieprijzen laag zijn. De basis van deze opzet is ons slimme brein. Dit is een Raspberry Pi met daarop Home Assistant. Met Home Assistant kunnen we dynamische energieprijzen uitlezen, zodat we weten wanneer de bitcoinminer aan en uit moet.

Vervolgens willen we daadwerkelijk de miner aansturen om wel of niet te gaan minen. Dit kun je op twee manieren doen. De meest eenvoudige manier is om gebruik te maken van een slimme stekker. Home Assistant maakt dan via WiFi, Z-Wave of Zigbee contact met een slimme stekker. Moet de miner aan, dan gaat de stroom er op, en moet hij uit dan haal je de stroom eraf. De tweede manier is door de miner via de API aan te sturen. Deze API is niet standaard beschikbaar. Door de firmware van de miner te vervangen door Braiins is dit wel mogelijk.

De laatste stap is het aanmaken van een automatisering, die automatisch op basis van de hoogte van de energieprijzen de miner aan- of uitzet.

Je slimme brein

Met je slimme brein bedoel ik het stuk hardware en software waar de intelligentie zit om straks alles, geautomatiseerd, aan te sturen.

De benodigde hardware

De meest eenvoudige en gebruikelijke manier is om een Raspberry Pi of andere mini-computer te kopen en daar Home Assistant op te installeren. Het is ook mogelijk om Home Assistant te installeren op o.a. Windows, MacOS of Linux. In dit artikel ga ik uit van het gebruik van een mini-computer. Vanaf ongeveer 125 euro kun je alle hardware in huis hebben om Home Assistant op te kunnen draaien. In de basis heb je nodig:

  • Minicomputer + voeding
    Basis: 
    Raspberry Pi 3 of nieuwer.
    Gevorderd: Intel Nuc. Lang verhaal kort: een Intel Nuc minicomputer is krachtiger dan een Raspberry Pi. De processor is krachtiger, het geheugen groter en er is intern plaats voor een SSD-schijf. Omdat ik er zelf heel veel op heb draaien, heb ik op een bepaald moment de switch gemaakt van de Raspberry Pi 3B+ naar een Intel NUC Kit i5-6260U.
  • Opslag
    Basis: Micro SD-kaart met Application Class 2. Je kunt met 16 GB klaar overweg maar gezien de lage kosten voor opslag zou ik altijd minimaal voor 32 GB gaan.
    Gevorderd: Solid State Drive (SSD). Hoe meer apparaten je koppelt of dingen die je met Home Assistant inregelt, hoe meer lees- en schrijfbewerkingen er op de opslag plaatsvinden.
  • Optioneel: ethernetkabel

Installeer Home Assistant

Home Assistant is een open-source domoticaplatform dat het mogelijk maakt om je eigen smart home op te zetten. Het maakt het mogelijk om slimme apparaten van uiteenlopende merken te integreren en te automatiseren. Je kunt van alles toevoegen aan het platform, zoals slimme lampen, thermostaten, beveiligingscamera’s, sensoren en verwarming. Je kunt vervolgens met de webinterface of mobiele app lokaal of op afstand deze devices aansturen. Door integraties met bijvoorbeeld Google Home of Amazon Echo toe te voegen kun je ook met stemcommando’s scripts of scenes aansturen.

Om Home Assistant op je Raspberry Pi of andere hardware te installeren ga je als volgt te werk:

  1. Download Home Assistant
  2. Flash Home Assistant op een SD-kaart met Balena Etcher
  3. Stop de SD-kaart in je Raspberry Pi of andere hardware. Sluit netvoeding en eventueel ethernetkabel aan. Een Raspberry Pi gaat dan automatisch aan. Een ander apparaat zul je wellicht aan moeten zetten met de aan/uit-knop.
  4. Gun hem enkele minuten om op te starten. Daarna ga je met je laptop naar homeassistant.local:8123 om je Home Assistant te bereiken.
  5. Volg de installatie en verdere onboarding.

Dit is een beknopte uitleg. Lees mijn artikel over het opzetten van je eigen domotica met Home Assistant voor een uitgebreide uitleg.

Installeer de integratie voor dynamische energieprijzen

Er zijn verschillende integraties beschikbaar om dynamische energieprijzen in Home Assistant te krijgen. De meeste van deze integraties bevinden zich in de Home Assistant Community Store (HACS). De eerste stap is dan ook dat we die gaan installeren.

Home Assistant Community Store installeren

De integratie die we nodig hebben om dynamische energieprijzen in te lezen bevindt zich in de Home Assistant Community Store (HACS). Wanneer je voor de API-methode in deze gids kiest, gaan we gebruik maken van de ‘Miner’-integratie, welke zich eveneens in de HACS bevindt. Voor de installatie van HACS verwijs ik je naar het artikel wat ik eerder schreef over het inlezen van dynamische energieprijzen in Home Assistant, onder het kopje Installeren van HACS.

Integratie voor dynamische energietarieven installeren

We zijn nu klaar om de integratie voor dynamische energieprijzen te installeren. Er zijn veel integraties beschikbaar, maar voor welke ga je? De integratie van Frank Energie is eenvoudig in gebruik maar ook in mogelijkheden. De Nord Pool en ENTSO-E integratie maken beide veel data beschikbaar. Niet alleen de huidige prijs maar ook de prijs per uur van de dag. Dat is fijn, want die kan je dan mooi visualiseren in een grafiek. Ik ben een pietje precies en wil graag exact de juiste prijs in Home Assistant zien. Daarom kies ik voor ENTSO-E, een integratie waar ik mijn exacte prijs kan nabootsen. Mocht je een goede tutorial willen zien voor de Nord Pool integratie, kijk dan hier. Voor het installeren van de ENTSO-E integratie en de configuratie hiervan verwijs ik je naar het stappenplan wat ik eerder schreef over het gebruik van dynamische energietarieven in Home Assistant.

De bitcoin miner

Hier gaan we dieper in op welke apparatuur geschikt is om in te zetten voor mining op basis van dynamische energieprijzen, hoe je deze aansluit en vervolgens juist configureert.

De benodigde hardware

Het minen op basis van dynamische energieprijzen is met name interessant met verouderde miningapparatuur die niet meer 24/7 hoeft te draaien om deze terug te verdienen. Vaak gaat het dan om de Antminer S17 of Antminer S9. Op het moment van schrijven tik je deze veelal op de kop voor minder dan 200 euro. Voor betrouwbare tweedehands ASIC-miners verwijs ik je naar de website van het Nederlandse Mining Wholesale. Er is ook wel meer exotische apparatuur beschikbaar, maar ik zou je aanraden een Antminer te gebruiken. Omdat deze veel gebruikt worden zijn deze goed gedocumenteerd. Een complete miner bestaat uit:

  • De miner zelf
  • Een power supply. Let op: de power supply bevindt zich buiten de miner. Je moet deze er dus altijd bij kopen.
  • Ethernetkabel om de miner te verbinden met je lokale netwerk en internet.

Het aansluiten van de apparatuur is eenvoudig. Je verbindt de power supply met de miner met de bijgeleverde kabel. Vervolgens sluit je de miner met de ethernetkabel aan op je lokale netwerk, zodat je hem met je laptop of smartphone kunt benaderen en dat de miner verbinden kan met internet. Voor deze gids maak ik gebruik van een Bitmain Antminer S9. Zodra je de netvoeding in het stopcontact steekt, gaat deze automatisch aan.

Bitmain Antminer S9 met power supply en ethernetkabel

Het ip-adres van de miner vinden

Een ASIC miner werkt in de basis erg eenvoudig. Hij heeft stroom en internet nodig. Is hij gevoed, dan gaat de miner automatisch aan. Na het inpluggen van de netwerkkabel is de miner toegankelijk vanuit je lokale netwerk. Om hem te kunnen aansturen en configureren moet je eerst weten op welk IP-adres je hem kunt vinden. Dat kan je doen door:

  1. Kijk in de device list van je router. Sommige apparaten hebben een herkenbare naam, dan zijn ze makkelijk te vinden. De miner komt er bij mij als ‘unknown’ in te staan. Vaak is het de ‘unknown’ met het hoogste nummer (want het apparaat wat het meest recent is aangesloten heeft als laatste een IP-adres toegewezen gekregen).
  2. Scan je netwerk. Op Windows open je Opdrachtprompt en gebruik je netstat om de apparaten in je netwerk te bekijken. Op Mac gebruik je Terminal en type je arp -a.
  3. Je kunt ook de IP Reporter tool van Bitmain, de fabrikant van Antminers, gebruiken. Deze is alleen geschikt voor Windows. Hiervoor ga je naar de firmware download sectie op de website van Bitmain. Selecteer ‘Others’ in de “Firmware List”, en selecteer rechts “IP reporter”. Download de tool. Na het downloaden pak je het bestand uit, kun je de tool openen en klik je op ‘Start’.

    Vervolgens druk je op de miner de IP knop en hou je deze een paar seconden ingedrukt. De knop kun je hier vinden:


    In een pop-up in IP Reporter krijg je nu het IP-adres te zien:

De miner configureren

Nu je het IP-adres weet, kun je deze in je browser invoeren. Je kunt nu in de web interface van de miner, waar je hem kunt instellen. In de basis is er eigenlijk maar één ding wat je hoeft in te stellen: de mining pool waar je je rekenkracht ter beschikking aan stelt. Deze kun je invoeren op het tabblad ‘Miner Configuration’. Je kunt hier 1 tot 3 mining pools ingeven. Nadat je op ‘Save & Apple’ hebt geklikt zal hij naar deze mining pool gaan minen.

Ik kan me voorstellen dat een mining pool nog niet voor iedereen een bekend begrip is, daarom kort iets meer informatie over wat een mining pool is en hoe je deze instelt op je miner.

Mining pool instellen

Een mining pool is een samenwerkingsverband tussen miners om een nieuw blok op de blockchain te creëren. Als individuele miner stel je je rekenkracht ter beschikking aan het collectief van de pool. Zo wordt de kans vergroot dat de pool een block mag creëren en er inkomsten binnenkomen. Het voordeel voor individuele miners is dat de inkomsten gelijkmaker verdeeld zijn. Er zijn verschillende mining pools waar je uit kunt kiezen. Ik raad zelf een FPPS (Full Pay Per Share) pool aan. In deze tutorial gaan we minen op basis van dynamische energieprijzen. Het kan dus goed zijn dat je miner lange tijd niet aan gaat. De uren dat je dan wel actief bent, wil je het element geluk zoveel mogelijk uitsluiten. FPPS sluit daar het best op aan. Hier wat meer achtergrond over uitbetalingsmethoden van mining po

Deze gids is geen uitgebreide mining pool keuzegids. Ik raad zelf Luxor aan. Nadat je je keuze hebt gemaakt, dien je je bij de mining pool aan te melden.

Na aanmelding dien je het adres van de mining pool op te zoeken, zodat je deze in je miner kunt instellen. Kan je het niet direct vinden, zoek dan even op Google naar de naam van de pool in combinatie met ‘stratum address’. Voor Luxor is dit stratum+tcp://btc.global.luxor.tech:700, zoals te zien is in de documentatie.

In de interface van de mining pool vind je ook instructies voor de worker name. Dit is de naam van je miner. Wanneer je meerdere miners hebt, kun je aan de hand van de workers onderscheid maken tussen verschillende miners. Bij Luxor betekent dit dat je als gebruikersnaam de volgende structuur aanhoudt: gebruikersnaamluxor.naamvandeminer. Ter illustratie: ruben37.s9.

Twee methoden: maak je keuze

Er zijn twee methoden waarop je de miner kunt gaan aansturen met Home Assistant:

  1. Met een slimme stekker
  2. Met de API

Beide methoden hebben hun voor- en nadelen. De methode met de slimme stekker is de meest eenvoudige. Zeker als je al Home Assistant hebt draaien voor je woning om bv. lampen via Z-Wave of Zigbee aan te sturen. Als je liever niet de stroom ‘hard’ van je hardware haalt, kun je kiezen voor de API-methode. Een ander voordeel is dat je geen extra hardware nodig hebt, je hoeft namelijk geen slimme stekker en eventuele ontvanger aan te schaffen. Via de API is er ook meer mogelijk dan alleen aan- of uitzetten. Het is ook mogelijk om de temperatuursensoren en de hashrate van de miner uit te lezen. Daarnaast kun je het wattage (en daarmee de prestaties) van de miner naar boven of beneden aanpassen, zodat je hem harder of zachter kan laten draaien.

Methode #1: Met een slimme stekker

Een ASIC miner is een eenvoudig apparaat. Geef hem stroom en internet, en hij gaat draaien. De meest eenvoudige manier om een miner te schakelen is dan ook door zijn stroomtoevoer te controleren met een slimme stekker. Het voordeel van de ‘slimme stekker methode’ is dat hij vrij eenvoudig is.

Met deze methode sluit je de bitcoinminer aan op een slimme stekker. Deze slimme stekker kun je met Home Assistant aan- of uitzetten. Wanneer je de slimme stekker activeert, gaat de miner automatisch draaien.

Bitmain Antminer S9 aangesloten op een slimme stekker

De hardware: Z-Wave, Zigbee of WiFi?

Voor deze methode dienen we uiteraard te beschikken over een slimme stekker. Je hebt hiervoor grofweg de keuze uit protocollen:

  • WiFi
  • Zigbee
  • Z-Wave

Je kunt ze prima ook alledrie gebruiken, maar het heeft ook voordelen om voor één standaard te kiezen. Bij Zigbee en Z-Wave vormen de devices een mesh-netwerk. Dat wil zeggen dat elk device wat je toevoegt zorgt voor uitbreiding van het netwerk. Dat is dus goed voor het bereik van het netwerk.

Voor welke standaard moet je nu gaan? Een paar dingen die je hierbij in overweging kunt nemen. Z-Wave maakt gebruik van de 868 MHz frequentie. Door deze lage frequentie kan het signaal makkelijker door bijvoorbeeld muren heen waardoor het bereik aanzienlijk groter is dan bij bijvoorbeeld het Zigbee protocol, dat op 2,4 GHz werkt. Z-Wave heeft binnenshuis gemiddeld een bereik van 20-30 meter en buitenshuis zelfs tot wel 90 meter. Het Z-Wave protocol is sterk gestandaardiseerd, waardoor apparaten erg goed met elkaar werken. Een nadeel is dat de Z-Wave chips een stuk duurder zijn wat er voor zorgt dat Z-Wave apparaten relatief duur zijn.

Fabrikanten die Zigbee gebruiken kunnen zelf allerlei aanpassingen doen, waardoor er in het verleden geen echte ‘standaard’ was. Fabrikante goten het vaak in een eigen jasje. Het meest bekende voorbeeld hiervan is Philips Hue. De Philips Hue lampen verbinden met de eigen Hue bridge en bijbehorende app. Wel zijn alle Zigbee apparaten uiteindelijk te koppelen aan je eigen Zigbee netwerk. Het grote voordeel van Zigbee is dat de prijzen erg laag zijn. Het bereik van Zigbee is toch duidelijk minder dan dat van Z-Wave, 10-20 meter binnenshuis.

Het grootste voordeel van WiFi is gemak. Alle huishoudens beschikken wel over een WiFi netwerk. De drempel om gebruik te gaan maken van WiFi apparaten is hierdoor erg laag. Ook zijn de kosten van WiFi-apparaten relatief laag. Bij Z-Wave en Zigbee is er bovendien een ‘host’ (lees: ontvanger) nodig voor het apparaat waar Home Assistant draait, zodat je via die protocollen kunt communiceren. Dat WiFi al aanwezig is, is het grootste voordeel maar meteen ook het grootste nadeel. Omdat veel apparaten binnenshuis al gebruik maken WiFi zorgt dit voor storingen en ruis. Voor slimme stekkers is WiFi nog een plausibele standaard, maar voor sensoren is het ongeschikt. Z-wave en Zigbee verbruiken veel minder energie dan WiFi. Een hoog energieverbruik is erg onpraktisch voor sensoren, die veelal met batterijen werken.

Het boodschappenlijstje
Voor een slimme WiFi stekker betaal je zo’n 20 tot 25 euro. Voor een slimme Z-Wave stekker betaal je zo’n 40 tot 60 euro. Daarnaast heb je een Z-Wave stick nodig voor op je Home Assistant apparaat (35 tot 60 euro). Voor een slimme Zigbee stekker betaal je zo’n 25 tot 35 euro. Voor Zigbee heb je ook een Zigbee stick nodig voor op je Home Assistant apparaat (zo’n 30 tot 40 euro).

Zigbee of Z-Wave

Of je nu kiest voor Zigbee of Z-Wave, beiden zijn redelijk vergelijkbaar in opzet. In de uitleg ga ik uit van Z-Wave, gebruik ik een Aeotec Gen5+ als ontvanger voor Home Assistant, en Fibaro Wall Plug als slimme stekker.

Hardware aansluiten

We beginnen met het aansluiten van de hardware. Stop de Z-Wave ontvanger (Aeotec Gen5+ in mijn geval) in de USB-poort van de Raspberry Pi waar Home Assistant opdraait. Steek de slimme stekker in het stopcontact.

Z-Wave integratie installeren

Ga in Home Assistant naar Instellingen -> Apparaten & diensten. Klik rechtsonder op ‘+ Integratie toevoegen’. In het zoekveld type je ‘Z-Wave’ en selecteer en installeer je de Z-Wave integratie.

Tijdens het installeren vraag Home Assistant om de USB locatie van de Z-Wave ontvanger. Gewoonlijk is dat /dev/ttyACM0.

Er zal ook gevraagd worden naar de ‘network security keys’. Dit is van belang als je al een Z-Wave netwerk geconfigureerd hebt met deze ontvanger op een ander apparaat. In deze gids ga ik er vanuit dat je het voor het eerst opzet. Je kunt in deze stap dan doorgaan zonder hier iets in te vullen.

Wacht tot de installatie voltooid is en de addon is gestart. Onder Instellingen -> Apparaten & diensten -> Apparaten zul je nu Z-Wave JS zien staan.

Slimme stekker verbinden met Z-Wave

Nu het Z-Wave netwerk draait kun je verbinding maken met andere Z-Wave apparaten, zoals je slimme stekker. Voordat je een apparaat gaat toevoegen is het goed om te weten dat je bij Z-Wave zowel de ontvanger als het apparaat wat je toevoegt in ‘inclusion mode’ moet zetten voordat je het apparaat gaat toevoegen. Alleen dan staan beiden open voor nieuwe connecties. Om een apparaat toe te voegen volg je dit stappenplan:

  1. Ga in Home Assistant naar Instellingen > Apparaten & diensten.
  2. Selecteer de Z-Wave-integratie. Kies vervolgens Configureren.
  3. Selecteer Apparaat toevoegen. De Z-Wave-controller staat nu in de ‘inclusion mode’.
  4. Zet je slimme stekker in de inclusiemodus. Raadpleeg de handleiding van het apparaat om te zien hoe dit moet. Bij mijn Fibaro Wall Plug staat in de handleiding dat ik 3x vlug achter elkaar op de b-button moet drukken.
  5. Ter bevestiging wisselt de wall plug nu snel van kleur. Bij veel Z-Wave apparaten is er aan het apparaat zelf een bevestiging te zien dat hij nu in inclusiemodus staat. Bij Zigbee apparaten is dat minder gebruikelijk.
  6. In Home Assistant wordt tegelijkertijd het apparaat automatisch herkend. Na herkenning gaat Home Assistant het apparaat en bijbehorende sensoren en besturingselementen automatisch toevoegen. Dit duurt meestal niet langer dan een minuut.

En dan is je nieuwe apparaat toegevoegd. Je kunt hem nu ook vinden bij Instellingen -> Apparaten & diensten. Je kunt hem hier ook een andere, herkenbare, naam geven.

WiFi

Het voordeel voor de opzet van een slimme stekker via WiFi is dat de installatie vrij eenvoudig is. Onze Raspberry Pi, of een andere apparaat waar Home Assistant op kan draaien, ondersteunt vrijwel altijd out-of-the-box WiFi. In dit voorbeeld ga ik uit van een Shelly PlugS slimme stekker.

Om de WiFi stekker te kunnen gebruiken, moet je hem eerst met je lokale WiFi netwerk laten verbinden. Je volgt hiervoor de volgende stappen:

  1. Stop de slimme stekker in het stopcontact.
  2. De slimme stekker zendt een WiFi netwerk uit met ‘shellyplug’ in de naam. Maak met je telefoon of laptop verbinding met dit netwerk.
  3. Ga met je telefoon of laptop in je browser naar 192.168.33.1
  4. Ga naar Internet & Security en dan naar WiFi Client Mode.
  5. Hier geef je de naam van je lokale WiFi netwerk (SSID) en het bijbehorende wachtwoord op.
  6. Klik op ‘Save’. De plug maakt nu verbinding met je lokale WiFi netwerk.
  7. Maak met je telefoon of laptop weer verbinding met je eigen WiFi netwerk.

Je kunt hiervoor ook onderstaande videotutorial gebruiken:

We gaan nu verder in Home Assistant. Ga naar Instellingen -> Apparaten & diensten. Onder de tab Integraties zal de Shelly Plug S nu automatisch herkend worden. Klik in het ‘ontdekt’ blok op ‘Configureer’. De slimme stekker wordt nu toegevoegd aan Home Assistant. In het proces kun je de slimmer stekker nog toewijzen aan een bepaalde ruimte in je woning.

Slimme stekker toevoegen aan dashboard

Om de slimme stekker in je dashboard te plaatsen en handmatig te schakelen ga je als volgt te werk. Deze stap is niet noodzakelijk, maar wel handig (voor nu) om te checken hoe het apparaat reageert op onze aansturing.

  1. Ga hiervoor in het hoofdmenu naar ‘Overzicht’ en klik rechtsboven op het icoon met de 3 puntjes. Kies ‘Configureer UI’.
  2. Kies rechtsonder ‘+ Voeg kaart toe’.
  3. In de pop-up kies je voor de tab ‘Per entiteit’.
  4. Zoek vervolgens je apparaat op. Bijvoorbeeld door op ‘shelly’ of ‘wall plug’ te zoeken. Je krijgt dan alle entiteiten te zien die bij de wall plug horen. Selecteer de entiteiten en klik rechtsonder op doorgaan.
  5. Home Assistant doet nu zelf een voorstel voor een kaart. Ik ga daarmee akkoord, en dan krijg je de volgende kaart op je dashboard. Door de schakelaar aan en uit te zetten, zet je de slimme stekker aan en uit.

De automatisering aanmaken

This is where the magic happens. We gaan nu alles wat we hebben opgezet aan elkaar knopen.

Om de automatisering aan te maken gaan we in Home Assistant naar Instellingen -> Automatiseringen en scenes. Vervolgens klik je rechtsonder op ‘+ Automatisering toevoegen’. In de pop-up kies je vervolgens voor een lege automatisering.

Een automatisering bestaat uit 3 onderdelen:

  1. Trigger. Dit is wat deze automatisering activeert.
  2. Voorwaarden. Pas als aan deze voorwaarden voldaan wordt, gaat de automatisering over tot de actie(s).
  3. Acties. Dit is wat de automatisering moet gaan aanpassen of activeren.

In ons geval gaat de automatisering er als volgt uitzien:

  • Trigger: Per uur
  • Voorwaarde: Checken of de energieprijs onder het gewenste niveau is
  • Actie: Zet de slimmer stekker aan

Trigger
We beginnen bij de trigger. We willen dat hij elk uur gaat kijken of de energieprijs dan interessant genoeg is om de bitcoinminer aan te zetten. Daartoe voegen we een ‘Tijdspatroon’-trigger toe. Klik hiervoor op Trigger toevoegen -> Tijdspatroon. Vervolgens kunnen we deze instellen. We laten Uren leeg, we willen namelijk dat hij elk uur checkt. Bij Minuten vullen we 0 in. Hiermee gaat hij elke eerste minuut van elk uur deze automatisering uitvoeren.

Door rechtsonder te klikken op ‘Opslaan’ kun je de automatisering opslaan. Er zal je dan ook gevraagd worden om de automatisering een naam te geven. Ik heb gekozen voor ‘Miner aan bij lage energieprijs’.

Voorwaarde
Klik op ‘+ Voorwaarde’ om een voorwaarde toe te voegen. Op dit punt dien je zelf te bepalen wanneer je nu eigenlijk wilt gaan minen. Ik hou het voor nu eenvoudig en kies zelf een vast prijsniveau. Je zou het ook op basis van een variabel prijsniveau te doen. Bv. als de energieprijs onder het wekelijks gemiddelde komt, of het goedkoopste uur van die dag. Dit laatste gebruik ik bijvoorbeeld voor het opladen van onze elektrische fietsen. Die laden allen tijdens de twee meest goedkope uren van de dag. Ik ga voor nu even uit van een meer eenvoudige opzet waarbij we gaan minen als de energieprijs onder een bepaald niveau komt.

Wat dat niveau is kan je zelf bepalen. Op websites als Minerstat kun je berekenen op welk niveau het winstgevend is om te minen. De winstgevendheid hangt af van de energieprijs, de bitcoinprijs en de concurrentie. Ik kies er zelf voor om iets meer op de lange termijn te kijken, de bitcoinprijs kan immers volatiel zijn. Mijn advies is om een keuze te maken tussen:

  1. Wanneer de inkoopprijs van energie 0 cent of negatief is. In deze situatie is het aanbod van stroom gelijk of groter dan de vraag
  2. Wanneer de all-in energieprijs onder het door jou gewenste niveau is. Het prijsniveau bepaal je door te kijken wat jij het waard vindt. Bv. door te kijken naar wat jij verwacht dat de bitcoinprijs over 1, 2 of 3 jaar gaat zijn, en dan te bekijken op welk niveau je dan nu winstgevend bent. Bij mij functioneert de bitcoinminer ook als bijverwarming, dat neem ik zelf ook mee in mijn overweging. Je kunt er ook in meenemen dat je het leuk vindt, of het feit dat je helpt om het bitcoinnetwerk te decentraliseren.
  3. Wanneer de all-in energieprijs zo laag is dat het met de huidige prijs winstgevend is. Ik raad dit niet aan omdat de huidige prijs niet veel zegt, tenzij je binnen een dag gaat verkopen.
  4. Wanneer de all-in energieprijs 0 of negatief is. Als je helemaal niks met bitcoin hebt, kun je de bitcoinminer ook eenvoudigweg inzetten om overschot aan stroom te gebruiken. Wanneer er negatieve energieprijzen zijn, kun je zelfs verdienen aan het gebruik van stroom. Bovendien help je hiermee het stroomnet te stabiliseren.

Ik heb er voor gekozen om te minen wanneer de all-in stroomprijs 12 cent of lager is. Hiervoor gebruik ik een sensor die de all-in energieprijs toont in eurocent. Mijn voorwaarde ziet er zo uit:

Actie
Bij het instellen van de actie maken we gebruik van de service ‘Schakelaar: Aanzetten’. Deze service kan een aan/uit-schakelaar aanzetten. Bij ‘Doelen’ geven we vervolgens aan welke schakelaar hij moet aanzetten. Klik hier op ‘Entiteit kiezen’, en zoek daar op de switch entiteit die bij je slimme stekker hoort. Het makkelijkst is om te zoeken op de naam van je slimme stekker.

Vervolgens kies je opslaan. Dat is het, we zijn klaar!

Het is nu natuurlijk even wachten totdat de automatisering aan de voorwaarde voldoet en de miner actief wordt.

We moeten nog één belangrijk ding doen, namelijk een tweede automatisering aanmaken voor het uitzetten van de miner als de energieprijs te hoog is. Hierbij geef ik bij de voorwaarde aan dat de prijs boven 11.99 moet komen. Als actie gebruik ik nu ‘Schakelaar: Uitzetten’.

Methode #2: Via de API

Bij deze methode gaan we de bitcoinminer aansturen via de API. Deze API is op de standaard firmware niet beschikbaar. Om de miner aan te kunnen Om onze bitcoinminer aan te kunnen sturen, zullen we van buitenaf een API moeten kunnen aanspreken. De standaard firmware van bitcoinminers maken dit niet mogelijk. Gelukkig is er Braiins OS. Braiins OS is een alternatief open-source besturingssysteem voor ASIC miners. Op moment van schrijven worden de volgende modellen ondersteund:

  • Antminer S19 serie
    Ondersteunde modellen: S19, S19 Pro, S19j, S19j Pro, T19, S19 XP, S19j Pro+, S19k Pro, S19j Pro-A, S19 Pro-A
  • Antminer S17 serie
    Ondersteunde modellen: S17, S17 Pro, S17+, S17e, T17, T17+, T17e
  • Antminer S9 serie
    Ondersteunde modellen: S9, S9i, S9j

De firmware vervangen door Braiins OS

Je kunt de voor jouw miner geschikte firmware downloaden op de website van Braiins OS. In deze gids gebruik in een Antminer S9 van voor 2019. Dat jaartal is belangrijk, want dat bepaalt hoe makkelijk het gaat zijn om de firmware te vervangen.

Fabrieksfirmware van voor 2019

Bekijk de video voor het vervangen van de firmware.

Of volg deze stappen:

Het voordeel van de firmware van vóór 2019, is dat je de firmware kunt upgraden via de web interface. Dat doe je als volgt:

  1. Ga naar de web interface van je miner. In stap <HIER INVOEGEN> heb je bepaald wat het lokale IP-adres is van je miner
  2. Ga naar System -> Upgrade
  3. Je moet zijn bij het onderdeel ‘Flash new firmware image’
  4. Kies bladeren, upload de firmware die je download hebt en kies ‘Flash image’

Braiins OS wordt nu geïnstalleerd. De netwerkconfiguratie (m.a.w. het statische IP-adres) en de instellingen voor de mining pool worden automatisch gemigreerd naar Braiins OS. Wel zo handig.

Fabrieksfirmware van 2019 en later

Specifiek voor de Antminer S9 is er een methode via SSH, welke hier wordt beschreven. Hier beschrijf ik hoe je met een SD-kaart de firmware kunt vervangen. Hiervoor volg je de volgende stappen:

  • Gebruik Etcher om de firmware die je gedownload hebt te flashen op een SD-kaart.
  • (Deze stap is alleen voor de Antminer S9) Pas de jumpers op het moederboord aan zodat het apparaat vanaf de SD-opstart in plaats vanaf het besturingssysteem die in het geheugen staat. De jumpers dienen de volgende configuratie te hebben:
  • Plaats de SD-kaart in de miner
  • De miner zal nu opstarten met het besturingssysteem van de SD-kaart. Na opstarten kun je de Braiins web interface benaderen via het interne IP van de miner
  • Optioneel: Je kunt nu besluiten om Braiins OS in het geheugen (NAND) te installeren en daarmee de standaard firmware te vervangen. Voordeel is dat je dan wat anders met je SD geheugenkaartje kunt doen. Hiervoor ga je in Braiins OS naar System -> Install current system to device (NAND).

Braiins OS configureren

De Braiins OS van je miner benader je door in je browser het lokale IP-adres te bezoeken. Vervolgens word je gevraagd om in te loggen. De standaard inloggegevens voor Braiins OS zijn:

  • Gebruikersnaam: root
  • Wachtwoord: root

Mining pool
Gebruik je deze miner voor het eerst? Dan zul je eerst een pool moeten instellen. Een mining pool is een samenwerkingsverband tussen miners om een nieuw blok op de blockchain te creëren. Als individuele miner stel je je rekenkracht ter beschikking aan het collectief van de pool. Zo wordt de kans vergroot dat de pool een block mag creëren en er inkomsten binnenkomen. Het voordeel voor individuele miners is dat de inkomsten gelijkmaker verdeeld zijn. Er zijn verschillende mining pools waar je uit kunt kiezen. Ik raad zelf een FPPS (Full Pay Per Share) pool aan. In deze tutorial gaan we minen op basis van dynamische energieprijzen. Het kan dus goed zijn dat je miner lange tijd niet aan gaat. De uren dat je dan wel actief bent, wil je het element geluk zoveel mogelijk uitsluiten. FPPS sluit daar het best op aan. Hier wat meer achtergrond over uitbetalingsmethoden van mining pools.

Deze gids is geen uitgebreide mining pool keuzegids. Ik raad zelf Luxor aan. Nadat je je keuze hebt gemaakt, dien je je bij de mining pool aan te melden.

Na aanmelding dien je het adres van de mining pool op te zoeken, zodat je deze in je miner kunt instellen. Kan je het niet direct vinden, zoek dan even op Google naar de naam van de pool in combinatie met ‘stratum address’. Voor Luxor is dit stratum+tcp://btc.global.luxor.tech:700, zoals te zien is in de documentatie.

In de interface van de mining pool vind je ook instructies voor de worker name. Dit is de naam van je miner. Wanneer je meerdere miners hebt, kun je aan de hand van de workers onderscheid maken tussen verschillende miners. Bij Luxor betekent dit dat je als gebruikersnaam de volgende structuur aanhoudt: gebruikersnaamluxor.naamvandeminer. Ter illustratie: ruben37.s9.

Nu kun je terugkeren naar de Braiins web interface van je miner, waar je reeds bent ingelogd. Om de mining pool op te geven, ga je naar Configuration -> Pools. Je kunt een nieuwe pool toevoegen door op ‘Add new pool’ te klikken. In het veld ‘Pool URL’ vul je het adres van de mining pool in. In het veld Username vul je, in dit voorbeeld, ruben37.s9 in.

Na opslaan zal je miner gaan werken voor deze mining pool. Als je miner goed draait, zul je een overzicht als deze zien:

In je account bij de mining pool zul je zien of je miner (worker) actief is, en alles dus naar behoren werkt. In dit screenshot van een Luxor account is te zien dat er twee miners actief zijn. Bovendien kun je per miner zien wat de performance is geweest.

Dit is de enige essentiële instelling. Voor de veiligheid kun je de gebruikersnaam en wachtwoord aanpassen. Dit doe je onder System -> Settings.

Miner integratie installeren via HACS

Nu kunnen we putten uit alle integraties uit de community store, en kunnen we de plugin toevoegen waarmee we met onze miner kunnen communiceren.

De integratie staat niet standaard in HACS en zullen we eerst moeten toevoegen. Daarvoor gaan we in Home Assistant naar HACS, klikken we op Integraties en vervolgens “Custom Repositories”.

Vul “https://github.com/Schnitzel/hass-miner” in onder repository en selecteer “Integration” als categorie.

Klik toevoegen, sluit het venster en selecteer “Explore & Download Repositories”.

De integratie is nu toegevoegd aan HACS. Zoek in HACS op miner en je zult de zojuist toegevoegde integratie vinden. Klik hier op en selecteer “Download this repository with HACS”.

‍Je zal nu automatisch de meest recente versie te zien krijgen. Klik rechtsonder op ‘Download’.

Hierna zul je in HACS een nieuwe integratie met de naam “miner” zien staan. Zoals de melding je al vertelt moet je Home Assistant opnieuw opstarten voordat je aan de slag kunt met de nieuwe integratie. Ga hiervoor naar Settings -> System en klik rechtsboven op “Restart”. De integratie is nu succesvol geïnstalleerd.

In Home Assistant verbinding maken met de bitcoin miner

As the SSH connection requires a username and password authentication the miner integration currently supports the two most used configurations of username and password: “root/admin”, “admin/admin” and “root/root”. Currently it’s not possible to configure a custom username and password (but this is definitely planned for the future). 

Each machine that needs configuration via Home Assistant needs to be added with the following steps. 

‍We gaan nu verbinding maken met de miner. Mocht je meerdere bitcoin miners willen toevoegen aan Home Assistant, dan dien je dit proces per miner te herhalen. We beginnen door een nieuwe integratie toe te voegen aan Home Assistant (Settings -> Devices & Services, en klik rechtsonder op “Add Integration”).

Vul in het zoekveld “miner” in en selecteer de “Miner” integratie. Mocht je geen resultaat krijgen, doe dan even een harde refresh in je browser om ervoor te zorgen dat je cache wordt geleegd voor deze pagina. Probeer het daarna nogmaals.

‍Vervolgens zal je worden gevraagd om het (lokale) ip-adres van de bitcoin miner in te vullen.

‍In de stap hierna geef je de gebruikersnaam en het wachtwoord in van je Braiins interface.

Vervolgens maakt de integratie contact met je miner en krijgt hij automatisch een naam. Deze is hierna aan te passen. Als alles succesvol is verlopen verschijnt er bij de intergratie een nieuw device met meerder entiteiten. Ook wordt automatisch herkend welk type miner het is. In mijn geval is dat een Antminer S9. Je kunt als laatste stap de miner nog aan een ruimte in je huis toevoegen, maar dat is niet nodig. Klik daarna op “Finish”.

Nu kun je de miner bedienen vanuit Home Assistant!

Sensoren & bediening voor de miner

Op het moment van schrijven voegt de integratie voor mijn Antminer S9 16 entiteiten toe aan Home Assistant. Dit zijn allereerst de volgende sensoren:

  • Hashrate (de huidige hashrate in TH/s)
  • Miner consumption (het huidige stroomverbruik in watt)
  • Power Limit (wanneer de prestaties beperkt worden zie je hier het maximum wattage waarop de miner nu draait)
  • Temperature (de temperatuur van de chip in celsius or fahrenheit)

De sensoren worden elke 10 seconden vernieuwd. De sensoren zijn ook per individueel board te zien.

Daarnaast zul je twee ‘controls’ zien voor de miner:

  • Active (Een schakelaar om de miner aan en uit te zetten)
  • Power Limit (Een slider waarmee je het stroomverbruik van de miner kunt limiteren)

‍Met deze ‘controls’ kun je de miner handmatig bedienen vanuit Home Assistant. Het is goed om te weten dat wanneer je ‘power limit’ instelt, de sensoren vervolgens korte tijd niet beschikbaar zijn. Dit komt omdat wanneer je iets aanpast in de configuratie van de miner, het miner proces gaat herstarten. Gedurende tijd kun je niet communiceren met de miner en zijn de sensoren en controls ‘greyed out’.

Vanaf dit punt heb je alles voor elkaar om vanuit Home Assistant met de miner te communiceren en kun je helemaal losgaan met automatiseringen en scripts. In dit artikel focussen we ons verder op het aansturen van de miner op basis van dynamische energieprijzen.

De automatisering aanmaken

Dit is waar het leuk wordt. We gaan nu alles wat we hebben opgezet aan elkaar knopen.

Om de automatisering aan te maken gaan we in Home Assistant naar Instellingen -> Automatiseringen en scenes. Vervolgens klik je rechtsonder op ‘+ Automatisering toevoegen’. In de pop-up kies je vervolgens voor een lege automatisering.

Een automatisering bestaat uit 3 onderdelen:

  1. Trigger. Dit is wat deze automatisering activeert.
  2. Voorwaarden. Pas als aan deze voorwaarden voldaan wordt, gaat de automatisering over tot de actie(s).
  3. Acties. Dit is wat de automatisering moet gaan aanpassen of activeren.

In ons geval gaat de automatisering er als volgt uitzien:

  • Trigger: Per uur
  • Voorwaarde: Checken of de energieprijs onder het gewenste niveau is
  • Actie: Zet de miner aan

Trigger
We beginnen bij de trigger. We willen dat hij elk uur gaat kijken of de energieprijs dan interessant genoeg is om de bitcoinminer aan te zetten. Daartoe voegen we een ‘Tijdspatroon’-trigger toe. Klik hiervoor op Trigger toevoegen -> Tijdspatroon. Vervolgens kunnen we deze instellen. We laten Uren leeg, we willen namelijk dat hij elk uur checkt. Bij Minuten vullen we 0 in. Hiermee gaat hij elke eerste minuut van elk uur deze automatisering uitvoeren.

Door rechtsonder te klikken op ‘Opslaan’ kun je de automatisering opslaan. Er zal je dan ook gevraagd worden om de automatisering een naam te geven. Ik heb gekozen voor ‘Miner aan bij lage energieprijs’.

Voorwaarde
Klik op ‘+ Voorwaarde’ om een voorwaarde toe te voegen. Op dit punt dien je zelf te bepalen wanneer je nu eigenlijk wilt gaan minen. Ik hou het voor nu eenvoudig en kies zelf een vast prijsniveau. Je zou het ook op basis van een variabel prijsniveau te doen. Bv. als de energieprijs onder het wekelijks gemiddelde komt, of het goedkoopste uur van die dag. Dit laatste gebruik ik bijvoorbeeld voor het opladen van onze elektrische fietsen. Die laden allen tijdens de twee meest goedkope uren van de dag. Ik ga voor nu even uit van een meer eenvoudige opzet waarbij we gaan minen als de energieprijs onder een bepaald niveau komt.

Wat dat niveau is kan je zelf bepalen. Op websites als Minerstat kun je berekenen op welk niveau het winstgevend is om te minen. De winstgevendheid hangt af van de energieprijs, de bitcoinprijs en de concurrentie. Ik kies er zelf voor om iets meer op de lange termijn te kijken, de bitcoinprijs kan immers volatiel zijn. Mijn advies is om een keuze te maken tussen:

  1. Wanneer de inkoopprijs van energie 0 cent of negatief is. In deze situatie is het aanbod van stroom gelijk of groter dan de vraag
  2. Wanneer de all-in energieprijs onder het door jou gewenste niveau is. Het prijsniveau bepaal je door te kijken wat jij het waard vindt. Bv. door te kijken naar wat jij verwacht dat de bitcoinprijs over 1, 2 of 3 jaar gaat zijn, en dan te bekijken op welk niveau je dan nu winstgevend bent. Bij mij functioneert de bitcoinminer ook als bijverwarming, dat neem ik zelf ook mee in mijn overweging. Je kunt er ook in meenemen dat je het leuk vindt, of het feit dat je helpt om het bitcoinnetwerk te decentraliseren.
  3. Wanneer de all-in energieprijs zo laag is dat het met de huidige prijs winstgevend is. Ik raad dit niet aan omdat de huidige prijs niet veel zegt, tenzij je binnen een dag gaat verkopen.
  4. Wanneer de all-in energieprijs 0 of negatief is. Als je helemaal niks met bitcoin hebt, kun je de bitcoinminer ook eenvoudigweg inzetten om overschot aan stroom te gebruiken. Wanneer er negatieve energieprijzen zijn, kun je zelfs verdienen aan het gebruik van stroom. Bovendien help je hiermee het stroomnet te stabiliseren.

Ik heb er voor gekozen om te minen wanneer de all-in stroomprijs 12 cent of lager is. Hiervoor gebruik ik een sensor die de all-in energieprijs toont in eurocent. Mijn voorwaarde ziet er zo uit:

Actie
Bij het instellen van de actie maken we gebruik van de service ‘Schakelaar: Aanzetten’. Deze service kan een aan/uit-schakelaar aanzetten. Bij ‘Doelen’ geven we vervolgens aan welke schakelaar hij moet aanzetten. Klik hier op ‘Entiteit kiezen’, en zoek daar op de switch entiteit die bij je miner hoort. Het makkelijkst is om te zoeken op de naam van de miner, in mijn geval ‘miner-a03841’.

Vervolgens kies je opslaan. Dat is het, we zijn klaar!

Het is nu natuurlijk even wachten totdat de automatisering aan de voorwaarde voldoet en de miner actief wordt.

We moeten nog één belangrijk ding doen, namelijk een tweede automatisering aanmaken voor het uitzetten van de miner als de energieprijs te hoog is. Hierbij geef ik bij de voorwaarde aan dat de prijs boven 11.99 moet komen. Als actie gebruik ik nu ‘Schakelaar: Uitzetten’.

Laat je reactie achter

Je e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met een *

10 reacties op “Bitcoin minen met dynamische energieprijzen en Home Assistant

  1. Ha Danny,

    Ik volg sinds kort de groene nerds podcast en kwam daardoor ook dit artikel tegen. Ik ben benieuwd of je een update kunt geven over de setup.

  2. Kees-Jan apr 22, 2024

    Heel mooi en interessant artikel. Hoe zou je overtollige zonnestroom kunnen integreren in dit model? Dus niet terugleveren maar omzetten in Bitcoin?

  3. Kees-Jan apr 22, 2024

    Het lijkt er echter op dat Bitcoin mining met bv een Antminer S9 bij een kWh prijs van 12 cent momenteel verliesgevend is (vlgs minerstat.com). Of zie ik iets over hoofd?

  4. Frank M. apr 30, 2024

    Interessante toepassing! Ik zou dit zelf ook graag eens willen proberen.

    Bij miningwholesale.eu zou ik de Antminer S9 Space Heater willen bestellen. Heb je toevallig enig idee hoe de (apart te bestellen) wifi module wordt gevoed? Is er een usb aansluiting op de meegeleverde voeding of op de Antminer zelf? Of moet ik een extra stopcontact voorzien voor een usb adapter? Ik zou de Antminer graag ook als mobiele bijverwarming gebruiken maar dit wordt al heel wat minder mobiel als ik naast de voedingskabel voor de Antminer ook een voedingskabel voor de Wifi module moet voorzien. Ik zou voor wifi kiezen omdat ik in het andere geval een utp kabel door de ruimte moet leggen die ik op dat moment wil bijverwarmen.

  5. Erik van Roekel aug 27, 2024

    Hi Danny, mis een indicatie wat je dit nu opgeleverd heeft naast een hoop lol om het op te zetten en te configureren.

  6. Richard N. sep 8, 2024

    De miners in verkoop geven vaak (hoge) Watt verbruik aan. Zijn ze maximaal en vast. Of kunnen ze gedifferentiëerd worden, bv in stappen.