Sådan regner vi

Metode

Hver eneste bryg fra de to Eversys-maskiner på 2. og 3. sal logges i Eversys Telemetry API. Vi henter dem hvert femte sekund og oversætter dem til en CO₂-værdi ved hjælp af to faktorer:

co₂(bryg) = bønner (g) × 1,24  +  mælk (ml) × 1,4

1,24 g CO₂eq pr. g bønner kommer fra vores kaffeleverandør ØNSK kaffe og er deres opgjorte aftryk for de specifikke bønner, vi bruger. Det er usædvanligt lavt sammenlignet med ikke-certificeret kaffe (typisk 15–17 g/g). 1,4 g CO₂eq pr. ml mælk er en standardværdi for økologisk komælk fra nordeuropæiske LCA-studier. Begge tal kan ændres i config.json.

Hvad er ikke regnet med

Elektricitet til maskinen, vand, emballage og logistik er bevidst udeladt. Bønner og mælk er de dominerende bidrag for kaffemaskinen som helhed; resten ville støje uden at flytte rangordenen mellem espresso og latte. Det er den vægtning, der gør det meningsfuldt at sammenligne en sort kaffe (≈13 g CO₂) med en cappuccino (≈210 g) — det er mælken, ikke elspareren, der gør forskellen.

Bønner pr. bryg

API'et fortæller os ikke direkte, hvor mange gram bønner der gik i hver enkelt kop. Vi slår op i en lille tabel (beansByProduct) på navnet for den knap, der blev trykket — fx Espresso = 7 g, Dbl. Latte = 14 g, Strong Coffee = 8 g, White tea 80° = 0 g.

Hver knap-værdi skaleres derefter med en kalibrerings-faktor k, som vi regelmæssigt justerer, så den samlede sum af vores estimater matcher maskinens fysiske bønne-tæller. Lige nu er k ≈ 1,5 på begge maskiner; det betyder, at en espresso reelt får ~10,5 g bønner i estimatet. Tallet for et enkelt bryg kan være let unøjagtigt, men de daglige og månedlige totaler er præcise til et kg.

Mælk pr. bryg

Eversys logger et tal i et felt der hedder milk.consumption, men det er ikke i millilitre — det er en intern pumpetælling. Vi har kalibreret det mod en konkret Milk for Choco-portion på ~175 ml, hvor API'et rapporterede consumption = 14. Det giver

mælk (ml) = consumption × 12,5

For enkelt-bryg holder det vand: en Cappuccino ender på ~150 ml, en Latte på ~140 ml, en Cortado på ~60 ml. For dobbelte drikke (Dbl. Latte, Dbl. Cappuccino o.l.) rapporterer API'et samme consumption som det enkelte alternativ — et kendt aftryk fra Eversys-firmwaren. I de tilfælde overskriver vi med en fast værdi pr. produkt i milkByProduct.

Navne på drikke

Eversys' API bruger to forskellige indekser for det samme produkt: /product-parameters giver navne efter productId, men brygge-historikken refererer til knappen via keyId = productId + 1. Vi forskyder derfor opslaget, så et bryg med keyId = 16 viser Milk for Choco (productId 15) og ikke Green Tea 85°. API'ets indbyggede drink_type-felt ignorerer vi — det er firmwarens egen klassifikation og ikke til at stole på (en Latte registreres som CAPPUCCINO, en Espresso som MILK_COFFEE osv.).

Skvæt-mælk og opfølgnings-bryg

Når man dispenserer et lille skvæt ekstra mælk efter en kop kaffe, logger Eversys det som en ny separat bryg. Vi sammenlægger den med den foregående kop, hvis den kommer inden for fem minutter og kun indeholder mælk eller varmt vand. På den måde står Cappuccino + ekstra mælk som én kop, ikke to.

Dødelig dosis — bjælken på forsiden

Et ton CO₂ er svært at forestille sig. Så vi omregner årets udledning til en enhed, man kan stå i: hvor meget CO₂ skal der til, før luften i huset ikke er til at være i? Bjælken på forsiden fylder op mod netop den dosis og nulstilles hver 1. januar.

Thoravej 29 er efter BBR 4.515 m² kontoretageareal — summen af de fire (afvigende) etager, ikke fire gange grundplanen på 1.548 m². Med en antaget etagehøjde på 2,8 m for et kontorhus fra 1967 giver det

12.642 m³ luft

10 % CO₂ i luften er dødeligt inden for få minutter. Til sammenligning er den danske arbejdsmiljø-grænseværdi 0,5 % over en arbejdsdag, og 4 % er det amerikanske NIOSH-niveau for “akut livsfarligt”. Ved 7 % mister man bevidstheden på minutter. Vi regner på de 10 % — det er den tærskel, der svarer til ordet dødelig.

CO₂ vejer 1,83 kg pr. m³ ved 20 °C, og udeluften indeholder allerede ca. 420 ppm. Så dosen er rumfanget gange koncentrations-springet gange massefylden:

(0,10 − 0,00042) × 12.642 m³ × 1,83 kg/m³ ≈ 2,3 ton CO₂

Maskinerne på 2. og 3. sal udleder omkring 5 ton CO₂eq om året. Én fyldning af huset tager derfor omtrent fire en halv måned ved det nuværende tempo — altså to gange om året, plus lidt. Rumfang, etagehøjde og tærskel kan ændres under building i config.json.

Og så det vigtige: det her er et tankeeksperiment, ikke en måling. CO₂'en i vores tal er livscyklus-CO₂eq — den slipper ud på kaffefarme, i lastbiler og ud af køer, og næsten intet af den ender i luften på Thoravej. Huset er desuden ventileret, så ingenting hober sig op; i praksis ligger CO₂-niveauet indenfor på nogle få hundrede ppm over udeluften. Bjælken siger ikke “luften herinde er farlig”. Den siger: hvis årets kaffeudledning var sluppet ud herinde, og hvis ventilationen var slukket, så var vi nået hertil. Det er en målestok — ikke en advarsel.

Kildekode & data

Hele projektet ligger på github.com/NielsOerbaek/kaffe-skam. Den fulde specifikation, beslutninger og afvejninger findes under docs/superpowers/specs/. API-dokumentationen for Eversys-telemetri er på developers.eversys-telemetry.com.

Live —
Tallene dækker kun kaffebønner og komælk  ·  maskinerne understøtter kun komælk  ·  elektricitet, vand og emballage er ikke regnet med