Varasto- ja työskentelytilan lämmitysautomaatio (kryptolouhinnalla)

Viime aikoina sähkön hinta on päässyt aiheellisesti otsikoihin suuruutensa vuoksi. Samoin mm. Bitcoinin ja Ethereumin teollisen louhintatoiminnan iso energian käyttö ja siten halvimmalla sähköä tehden suuret päästöt.

Uusi iso hallitilani tietenkin lämmitetään suoralla sähköllä, joten kaikki keinot sähkölaskun pienentämiseksi on syytä ottaa käyttöön. Hallitilan vuokrasopimuksessa on edellytetty vähintään +8°C peruslämpöä omista sähköistä. Onnekseni halli on myöskin rakennuksen aurinkoisella puolella, joten jonkin verran lämpöä tulee tuolta isommasta ydinvoimalasta taivaalta ilmaiseksi valoisina pakkaspäivinäkin.

Koska varastohallia käytetään myös työskentelytilana erilaisiin tarpeisiin, on syytä pitää tilan lämmitys hieman pienintä sallittua peruslämpöä korkeammalla tasolla. Nopeasti käytössä kertynyt kokemus kertoo noin +12°C olevan oikein hyvä peruslämpö. Tuohon voi helposti sallia parin asteen pudotuksen energian säästön tarpeen kohdatessa. Ja vastaavasti oikein halvan sähkön päivinä voi nostaa lämpöä muutaman asteen, jotta sitä riittää rakenteisiin ja tilan tavaroiden massoihin varastoituneena jopa useamman päivän ajan.

Lähtötilanteessa hallussani oli jo entuudestaan asuntomme ulkovarastoon hankittu Antminer S9i ASIC-louhintalaite (hankintahinta tammikuussa 2021 oli ~500€) ja siihen 1800W LC-Power LC1800 V2.31 Mining BTC Edition virtalähde (hintaluokka ~200€). Hankinta ei ehtinyt maksaa itseään takaisin kodin ulkovarastossa menneen vuoden aikana, mutta uuden isomman lämmitettävän varastotilan myötä voin siirtää kaiken lämmitystarpeen tähän isompaan varastoon ja myöskin käyttää laitteita huomattavasti paremmalla hyötysuhteella. Siirrettyäni lämmitetyn varastotilan uuteen halliin saatoin sulkea ulkovarastomme lämmityksen ja huomata melko pian säästäväni sähköä 15-30kWh/vrk.

Vihreänä tekijänä mainittakoon: lähes koko laitteiston hinta on maksettu Valoe Oyj osakkeiden luovutusvoitoilla. Siten tämäkin hankinta on tehty CO2-kompensoituna rahalla, joka on välillisesti vähentänyt päästöjä ja tulee jatkossakin vähentämään niitä saman käyttöenergian ollessa joka tapauksessa tarpeen.

Aloitin säätämällä sähköpatterin ja lattialämmityksen termostaatit +5°C pakkasvahdeiksi. Tässä vaiheessa tilan ensisijainen lämmitysmuoto muuttui puhtaasti kryptolouhinnaksi ja kiinteästi asennetut suoran sähkölämmityksen vastukset ovat vain varmistamassa ettei mahdollinen laiterikko aiheuta tilassa tuhoja.

Käytettävissä oleva tehon säätöalue on tällä yhdistelmällä min. 378W – max. 1705W, jota rajoittaa virtalähteen 12V lähtöjen suurin sallittu kuorma 1705W ja ASIC-korttien matalin toimintapiste (3 korttia x 63 sirua x 2W = 378W). Havaitsin nopeasti Antminer S9:n ASIC-piirien (Bitmain BM1387 16nm FinFET) hyötysuhteen laskevan molemmissa tehosäädön ääripäissä. Pidemmän ajan seurannan ja tuloksena vaihdoin normaalitilanteessa tehosäädön 600-900W tasolle ja oikein halvalla sähköllä tai kovin kylmissä olosuhteissa enintään 1200W. Paniikkinappula eli aivan liian kylmäksi menevä varasto voi käynnistää vielä korkeamman tehon käytön.

Bitcoin-louhintaa tekevä Antminer S9-laitteeni on asennettu Braiins OS+ avulla helposti etähallittavaksi ja hyötysuhteeltaan alkuperäistä tehtaan firmwarea paremmaksi (piirikohtainen auto tune säätää kutakin 189 ASIC-piiriä erikseen). Kun käytän Slush Poolia, saan tuolla ohjelmistollaan vielä pienen bonuksen (eli 0% Pool Fee).

Ohjaukseen käytän virtualisoitua Linux-palvelinta (laitteessa joka olisi joka tapauksessa päällä 24/7). Se tarkistaa ennalta määritellyin välein tietyt parametrit ja säätää itse ohjelmoimallani skriptikielisellä koodin pätkällä (yli 200 riviä toiminnallista koodia) louhintalaitteen tehoa tai jopa sammuttaa sen kokonaan, jos sähkö on liian kallista ja/tai lämpöä riittävästi. Tilan lähiverkko on yhdistetty ”firman verkkoon” omilla laitteilla ja ohjaus menee täten salattuna liikenteenä tunnelissa laitteiden välillä. Varsinaiset ohjauksen ”aivot” ovat kotonani sijaitsevassa reitityspisteessä.

Ensimmäisen noin vuoden (jolloin lämmitys tapahtui kodin ulkovarastossa) käytössäni oli yksinkertaisempi ohjelmointi, joka aluksi tarkisti vain Ilmatieteen laitoksen Avoin data -alustan tiedoista paikallisen ulkolämpötilan ja vertaili kryptolouhijan käyttötilaa ulkolämpöön (pyrkien siten havaitsemaan tehon lisäämisen tai vähentämisen tarpeen laitteen sisäisestä lämpötilasta eri toimintapisteissään). Myöhemmässä vaiheessa kodin ulkovaraston ohjaukseen tuli TM_Mikrotik thermometer for Mikrotik RouterBOARDs, sillä ulkovaraston reititinlaitekin oli sarjaportilla varustettu RouterBOARD (aluksi RB450G ja sittemmin laiterikon jälkeen vanha uskollinen RB1200). Kyseinen sarjaporttiin kytkettävä lämpömittari toimii toki muissakin ympäristöissä joissa sarjaportista voi kuunnella tietoa. Näitä sarjaporttiin jatkuvasti lämpötilaa huutelevia anturilaitteita voi tilata Suomessa ComTechiltä. Suosittelen.

Uusissa tiloissa on nyt aikaisemmasta kotimme kiinteähintaisesta sopimuksesta poiketen sähköpörssin Spot-hinnoittelu (Helen Pörssisähkö/Caruna spotsähkö), joten enää säätö pelkän sisälämpötilan ja ulkolämpötilan perusteella ei ole mielekästä. Etenkään näin kalleimman sähkön hinnan aikoihin. Samalla lämmitysautomaationi minimaalinen rooli säätökuormana sähköverkolle korostuu, sillä hintoihin heijastuu todellinen kotimaisen sähköenergian puute tai ylituotanto. Markkinat ohjaa kulutusta pois energiavajeen ajalta kohden ylitarjontaa.

Avuksi tarvittiin uusi API-rajapinta, josta saadaan spot-hintatiedot. Tällaisen rajapinnan tarjoaa rekisteröitymällä pyynnöstä käyttöön mm. ENTSO-E Transparency Platform, joka on yleiseurooppalainen energian myynnin avoin data-palvelu. Haluttu spot-hinta on nimellä ”Day-ahead price”. Huomattavaa, että tämän hetken hinnan saadakseen on haettava myös eilisen hintatiedot. Muussa tapauksessa päivän ensimmäinen tunti 00-01 jää puuttumaan syystä x. Tähän tarkoitukseen on olemassa myös GitHubissa Øystein Jakobsenin projekti fetch-day-ahead-price.

Asian voisi varmasti tehdä nätimmin, hienommin, paremmin…mutta omaan tarpeeseeni riittää tämäkin.

Näinpä muutamia kymmeniä rivejä paranneltua koodia myöhemmin skriptikielinen ohjelmointini osaa säätää lämmöntuottoa sähkön hinnasta, ulko- ja sisälämpötilasta ja näiden välillä dynaamisesti muuttuvasta sisälämmön tavoitelämpötilasta/sähkön käytön raja-arvoista riippuen.

Lokiin tallentuu paitsi laskennassa käytetyt parametrit, myös sähkösopimukseni mukainen sähkön hintatieto auki laskettuna kulloinkin käyttöön otetulle tehosäätöarvolle.

Tavoitteena on saada kryptovaluuttojen louhinta kattamaan tuloina puolet sähkölaskusta. Louhinta on kuitenkin siinä määrin arpapeliä, että läheskään joka arpa ei voita. Joinakin päivinä korkean pooliin osuu useita blokkeja halvan sähkön aikana ja toisina päivinä on koko päivän louhinta sammutettuna kalliin sähkön vuoksi, jolloin sinä aikana menee kaikki hyvä ohi. Mutta vaihtoehtoisena riskinä olisi tehdä turhaa työtä koko päivä kalliiseen hintaan.

Eco- ja ekologisesta lähtökohdasta tämä säätötapa on hyvinkin vihreää Bitcoin-louhintaa ja parhaimmillaan hieman nykyaikaisemmalla louhintalaitteella saataisiin huomattava hyöty. Valitettavasti budjetti ei tässä vaiheessa riitä hyötysuhteen nostamiseksi (siihen tarvittaisiin tuoreempaa 5-7nm tekniikkaa kuten Antminer S17 tai S19).

Seuraavana tavoitteena voisi olla sen verran tehokkaampi ja paremman hyötysuhteen laite tai useampi laite, että edullisen sähkön aikana voisi nostaa helposti&nopeasti lämpötilan 16-20°C kryptovaluuttojen louhintateholla.

Lahjoituksia otetaan vastaan kehitystyön jatkuvuudeksi, josko siitä vielä tulisi joskus ihan jaeltava tuotekin mitä kehtaa levittää. Sitä varten pitäisi päästä tekemään laajempaa testaamista erilaisilla louhintalaitteilla. Ohessa lyhyt listaus kryptovaluuttaosoitteista joihin voi tarjota auttavaa kättä vihreämmän louhinnan ekosysteemin tulevaisuudelle ja ainakin tässä vaiheessa harrastustoimintana tapahtuvalle jatkokehittelylle:

  • Bitcoin (BTC) lahjoitukset: 3KE8GF85y32faR1X5LMD6cAFjTLasqfc4H
  • Ethereum (ETH) lahjoitukset: 0x8d1a72ec06195648b887Ab06f56E0b36Df1E9d92
  • DAI lahjoitukset 0x2704b1d86E73bC801d2f2A791649e5B0735c59Ad
  • Zcash (ZEC) lahjoitukset: t1M4xpfzEDiJQL8ft4RZhagrL3JomoE8mdD
  • DOGE coin lahjoitukset: DSk6K3x1aPV8JqrHYc1LNzYQdmyBE7sWuR
  • Bitcoin Cash (BCH) lahjoitukset: 1MXxyAXSZSCWDJEFv3LvENTYZAvZJ49Be1
  • USD Coin (USDC) lahjoitukset: 0x66F889E0df4ba196C6141fB5fa4831465eF8fBE3
  • Yksisarviset eli Uniswap (UNI) lahjoitukset: 0x9e02Cf4137dF738f5fC68Fd3053942242F0412Ed