234 lines
9.6 KiB
Markdown
234 lines
9.6 KiB
Markdown
# enok
|
||||
|
|
|
|||
|
|
Årlig energiberegning og energirapport for bygninger etter **NS 3031:2025**, med
|
|||
|
|
timesoppløsning gjennom hele året og energikarakter etter Enovas skala som gjelder fra
|
|||
|
|
1. januar 2026.
|
|||
|
|
|
|||
|
|
Programmet tar en beskrivelse av bygningen — geometri, konstruksjoner, vinduer, ventilasjon,
|
|||
|
|
varmekilder og drift — og et typisk klimaår, og gir 8760 timesverdier, et fullt energibudsjett
|
|||
|
|
fra netto energibehov til vektet levert energi, en energikarakter og en ferdig rapport i PDF.
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
enok beregn bygninger/nordhusstykket-5.toml
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
Nordhusstykket 5 (Småhus, 140 m², byggeår 1948)
|
|||
|
|
Klimadata: Indre Østfold
|
|||
|
|
|
|||
|
|
Varmetapstall 3,00 W/(m²K)
|
|||
|
|
Netto energibehov 351,2 kWh/(m²·år)
|
|||
|
|
Levert energi 327,6 kWh/(m²·år)
|
|||
|
|
Vektet levert energi 327,6 kWh/(m²·år)
|
|||
|
|
Energikarakter F
|
|||
|
|
|
|||
|
|
Tiltak:
|
|||
|
|
Isolerte varmerør og kjellervegger 310,9 kWh/(m²·år) F
|
|||
|
|
Nye vinduer 304,9 kWh/(m²·år) E
|
|||
|
|
Etterisolert klimaskjerm 205,6 kWh/(m²·år) D
|
|||
|
|
Væske-vann-varmepumpe 162,3 kWh/(m²·år) C
|
|||
|
|
Full pakke 67,9 kWh/(m²·år) A
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Hva programmet gjør
|
|||
|
|
|
|||
|
|
**Beregningsmetode.** Dynamisk timesberegning etter NS-EN ISO 52016-1, slik NS 3031:2025
|
|||
|
|
krever. Hver opake bygningsdel modelleres med fem noder der varmekapasiteten fordeles etter
|
|||
|
|
masseplassering, vinduer med to noder, og sonen har en luftnode og en strålingsnode som
|
|||
|
|
fordeler langbølget utveksling mellom innvendige overflater. Systemet løses implisitt for hver
|
|||
|
|
time. Varme- og kjølebehovet bestemmes ved å løse uten tilført effekt og med en prøveeffekt;
|
|||
|
|
siden systemet er lineært treffer interpolasjonen settpunktet nøyaktig.
|
|||
|
|
|
|||
|
|
**Beregningspunkter.** Budsjettet følger NS 3031:2025 fra A til E: netto energibehov,
|
|||
|
|
brutto etter distribusjons- og akkumuleringstap, tilført energi etter systemvirkningsgrad og
|
|||
|
|
årsvarmefaktor for hver varmekilde, levert energi per energibærer med fradrag for
|
|||
|
|
egenprodusert solstrøm, og til slutt vektet levert energi.
|
|||
|
|
|
|||
|
|
**Energikarakter.** Vektet levert energi per kvadratmeter oppvarmet BRA slås opp i Enovas
|
|||
|
|
skala, med arealkorreksjonen som gjelder for småhus og boligblokk. Vektingsfaktorene er
|
|||
|
|
elektrisitet 1,0, fjernvarme og biobrensel 0,45, eksportert energi 0. Vedovn regnes å dekke
|
|||
|
|
inntil 10 prosent av romoppvarmingen.
|
|||
|
|
|
|||
|
|
**Klimadata.** Timesverdier for alle norske kommuner fra datasettet som ble laget til
|
|||
|
|
NS 3031:2025 (CERRA 1991–2020, CC-BY-4.0). Beregnes bygningen i lokalt klima, korrigeres de
|
|||
|
|
klimaavhengige energipostene til referanseklima Oslo med klimakorrigeringsfaktorene fra
|
|||
|
|
standardens tillegg, slik energimerkeforskriften krever. Arkivet lastes ned én gang og
|
|||
|
|
hurtiglagres.
|
|||
|
|
|
|||
|
|
**Tiltak.** Scenarier i samme fil gir før-og-etter-tall og karakterer i én tabell.
|
|||
|
|
|
|||
|
|
## Installasjon
|
|||
|
|
|
|||
|
|
```sh
|
|||
|
|
cargo install --path .
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Typst må være installert for PDF-rapporten. Uten Typst kjører du med `--ingen-pdf`; da skrives
|
|||
|
|
`rapport.typ` som du kan kompilere senere.
|
|||
|
|
|
|||
|
|
## Bruk
|
|||
|
|
|
|||
|
|
| Kommando | Hva den gjør |
|
|||
|
|
| --- | --- |
|
|||
|
|
| `enok beregn FIL.toml` | Beregner og skriver rapport, CSV og JSON til `ut/<navn>/` |
|
|||
|
|
| `enok import FIL` | Leser IFC, gbXML eller regneark og skriver `bygning.toml` |
|
|||
|
|
| `enok klima --liste` | Lister alle kommuner med klimadata |
|
|||
|
|
| `enok klima --kommune Oslo` | Viser nøkkeltall for ett klimasted |
|
|||
|
|
| `enok skala smaahus --areal 140` | Viser karakterskalaen med arealkorreksjon |
|
|||
|
|
|
|||
|
|
Nyttige valg til `beregn`: `--ingen-pdf`, `--ingen-timeserie`, `--enova-xml`,
|
|||
|
|
`--uten-scenarier`, `--ut KATALOG`.
|
|||
|
|
|
|||
|
|
### Utdata
|
|||
|
|
|
|||
|
|
| Fil | Innhold |
|
|||
|
|
| --- | --- |
|
|||
|
|
| `rapport.pdf` | Energirapport med karakter, varmetapsbudsjett, energibudsjett og figurer |
|
|||
|
|
| `rapport.typ`, `stil.typ` | Typst-kilde, slik at rapporten kan tilpasses |
|
|||
|
|
| `resultat.json` | Hele resultatet, inkludert forutsetninger og månedsverdier |
|
|||
|
|
| `timeserie.csv` | 8760 rader med temperaturer, laster, sol og energistrømmer |
|
|||
|
|
| `maaned.csv` | Månedssummer |
|
|||
|
|
| `enova-2014.xml` | XML for energimerkesystemet, med `--enova-xml` |
|
|||
|
|
|
|||
|
|
## Bygningsbeskrivelsen
|
|||
|
|
|
|||
|
|
En bygning beskrives i TOML. Alt som utelates fylles med normerte verdier for
|
|||
|
|
bygningskategorien, eller med typiske verdier for byggeåret, og rapporten viser hva som er
|
|||
|
|
antatt og hvor det kommer fra.
|
|||
|
|
|
|||
|
|
```toml
|
|||
|
|
[bygning]
|
|||
|
|
navn = "Nordhusstykket 5"
|
|||
|
|
kategori = "smaahus"
|
|||
|
|
byggeaar = 1948
|
|||
|
|
oppvarmet_bra = 140.0
|
|||
|
|
|
|||
|
|
[klima]
|
|||
|
|
kommune = "Indre Østfold"
|
|||
|
|
|
|||
|
|
[[flate]]
|
|||
|
|
navn = "Yttervegg sør"
|
|||
|
|
type = "vegg"
|
|||
|
|
areal = 26.0
|
|||
|
|
orientering = 180 # grader fra nord med klokka
|
|||
|
|
u_verdi = 1.0 # eller `lag = [{ materiale = "tre", tykkelse = 0.02 }, …]`
|
|||
|
|
masseklasse = "lett"
|
|||
|
|
mot = "ute" # ute | grunn | uoppvarmet
|
|||
|
|
|
|||
|
|
[[vindu]]
|
|||
|
|
navn = "Vinduer sør"
|
|||
|
|
areal = 6.0
|
|||
|
|
orientering = 180
|
|||
|
|
u_verdi = 2.80
|
|||
|
|
g_verdi = 0.76
|
|||
|
|
|
|||
|
|
[infiltrasjon]
|
|||
|
|
n50 = 8.0
|
|||
|
|
|
|||
|
|
[ventilasjon]
|
|||
|
|
type = "naturlig" # naturlig | avtrekk | balansert
|
|||
|
|
|
|||
|
|
[[oppvarming.kilde]]
|
|||
|
|
type = "el_kjel" # direkte_el, luft_luft_vp, vaeske_vann_vp, vedovn, fjernvarme, …
|
|||
|
|
andel_rom = 0.75
|
|||
|
|
andel_tappevann = 1.0
|
|||
|
|
|
|||
|
|
[[scenario]]
|
|||
|
|
navn = "Nye vinduer"
|
|||
|
|
endringer.vindu = [{ navn = "Vinduer sør", u_verdi = 0.80, g_verdi = 0.50 }]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Scenarier flettes inn i bygningsbeskrivelsen: tabeller flettes rekursivt, elementer i lister
|
|||
|
|
matches på `navn` eller `type`, nye elementer legges til, og `slett = true` fjerner et element.
|
|||
|
|
|
|||
|
|
Ferdige eksempler ligger i `eksempler/`.
|
|||
|
|
|
|||
|
|
## Import fra Vectorworks og andre BIM-verktøy
|
|||
|
|
|
|||
|
|
| Format | Slik henter du det | Hva som kommer med |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| IFC | *Fil → Eksporter → Export IFC Project* | Flater, areal, U-verdier fra egenskapssett, himmelretning fra plassering, vinduer og dører koblet til vegg |
|
|||
|
|
| gbXML | Verktøy som eksporterer gbXML | Rom, flater, åpninger, konstruksjoner med lag |
|
|||
|
|
| Regneark | *Fil → Eksporter → Export Worksheet* | Enkel CSV med én rad per bygningsdel |
|
|||
|
|
|
|||
|
|
Himmelretningene i IFC utledes av elementenes plassering: veggens lokale akse gir planet, og
|
|||
|
|
ytre normal velges som den som peker bort fra bygningens tyngdepunkt, korrigert for prosjektets
|
|||
|
|
sanne nord. Kontroller dem mot tegningen etter import.
|
|||
|
|
|
|||
|
|
Ingen av formatene beskriver ventilasjon, lekkasjetall eller varmekilder. Importen skriver
|
|||
|
|
merknader øverst i TOML-filen om hva som må fylles ut.
|
|||
|
|
|
|||
|
|
Regnearkformatet er bevisst enkelt, slik at det kan settes opp som en rapport i BIM-verktøyet:
|
|||
|
|
|
|||
|
|
```csv
|
|||
|
|
type,navn,areal,u_verdi,orientering,helning,mot,g_verdi,antall
|
|||
|
|
bygning,Nordhusstykket 5,140,,,,smaahus,1948,
|
|||
|
|
vegg,Yttervegg sør,26,1.0,180,90,ute,,
|
|||
|
|
gulv,Mot kjeller,98,0.8,,180,uoppvarmet,,
|
|||
|
|
vindu,Stue sør,3.0,2.8,180,90,,0.76,2
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Rapporter fra byggeserveren
|
|||
|
|
|
|||
|
|
`.gitea/workflows/rapport.yml` bygger rapporter for alle bygningene i `bygninger/` og legger
|
|||
|
|
PDF, JSON og CSV ved utgivelsen når du setter en tagg som begynner med `v` eller `rapport-`.
|
|||
|
|
IFC-, gbXML- og CSV-filer importeres automatisk til TOML dersom det ikke allerede finnes en
|
|||
|
|
TOML-fil med samme navn. Se `bygninger/LES-MEG.md`.
|
|||
|
|
|
|||
|
|
## Kontroll av beregningen
|
|||
|
|
|
|||
|
|
Motoren er kontrollert mot uavhengige referanser:
|
|||
|
|
|
|||
|
|
| Kontroll | Resultat |
|
|||
|
|
| --- | --- |
|
|||
|
|
| Solinnstråling på skrå og orienterte flater, mot pvlib (Hay–Davies) | avvik under 1 % for alle himmelretninger i Oslo-klima |
|
|||
|
|
| Stasjonært varmetap mot U·A·ΔT | innenfor 2 % |
|
|||
|
|
| Årlig energibalanse | går opp innenfor 2 % |
|
|||
|
|
| Varmebehov som funksjon av temperaturdifferanse | eksakt lineært |
|
|||
|
|
| Varmetapsbudsjett for TEK17-referansebygget | identisk med publisert tabell, 0,69 W/(m²K) |
|
|||
|
|
| Normerte energiposter for småhus | varmtvann 25,1, belysning 11,4, teknisk utstyr 17,5 kWh/(m²·år) |
|
|||
|
|
|
|||
|
|
### Kjent avvik
|
|||
|
|
|
|||
|
|
Standard Norges lanseringseksempel for NS 3031:2025 oppgir 46,2 kWh/(m²·år) romoppvarming og
|
|||
|
|
106,4 kWh/(m²·år) netto energibehov for TEK17-referansebygget beregnet med Simien 8. enok
|
|||
|
|
beregner 24,7 og 84,1 for den samme bygningen.
|
|||
|
|
|
|||
|
|
Varmetapsbudsjettet, de normerte energipostene, solinnstrålingen og energibalansen stemmer
|
|||
|
|
hver for seg, så avviket ligger i hvor stor del av solvarmen som nyttiggjøres. NS 3031:2025
|
|||
|
|
Tillegg A er ikke offentlig tilgjengelig, så de normerte solfaktorene, skjermingsforutsetningene
|
|||
|
|
og timesprofilene Simien bruker, lar seg ikke etterprøve her. `tests/referansebygg.rs` låser
|
|||
|
|
dagens verdier slik at endringer i motoren blir synlige, og oppdateres når standardens
|
|||
|
|
forutsetninger er tilgjengelige.
|
|||
|
|
|
|||
|
|
Bruk derfor tallene til å sammenligne tiltak mot hverandre og til å se hvor varmen forsvinner.
|
|||
|
|
Til en energiattest som skal leveres til Enova må resultatet kontrolleres mot et validert
|
|||
|
|
beregningsprogram.
|
|||
|
|
|
|||
|
|
## Datagrunnlag
|
|||
|
|
|
|||
|
|
Alle normerte verdier ligger i `data/` og kan overstyres med `--data KATALOG`.
|
|||
|
|
|
|||
|
|
| Fil | Innhold og kilde |
|
|||
|
|
| --- | --- |
|
|||
|
|
| `skala.toml` | Energikarakterskalaen fra 1.1.2026, Enova SF via Multiconsult-notatet «Grunnlag for ny energikarakterskala», 19.12.2025 |
|
|||
|
|
| `vekting.toml` | Vektingsfaktorer etter energimerkeforskriften § 10a med NVEs veileder |
|
|||
|
|
| `normerte/*.toml` | Normerte laster, driftstider og settpunkt. Utgangspunktet er NS 3031:2014 Tillegg A; varmtvann er oppdatert til NS 3031:2025-verdien for småhus. Timesprofiler fra NS 3031:2025 kan legges inn i `profil_*`-feltene |
|
|||
|
|
| `varmepumpe_spf.toml` | Veiledende årsvarmefaktorer, NS 3031:2014 tabell B.9-3 |
|
|||
|
|
| `materialer.toml` | Materialdata og typiske U-verdier per byggeperiode |
|
|||
|
|
| `klimakorreksjon.csv` | Klimakorrigeringsfaktorer, Standard Norge SN/K 34, doi 10.5281/zenodo.15041587 |
|
|||
|
|
|
|||
|
|
Klimadata: «TMY files for Norway based on CERRA data from 1991-2020», doi
|
|||
|
|
10.5281/zenodo.14779899, CC-BY-4.0.
|
|||
|
|
|
|||
|
|
## Regelverk
|
|||
|
|
|
|||
|
|
- Forskrift om energimerking av bygninger og energivurdering av varme- og klimaanlegg,
|
|||
|
|
§§ 10a og 10b, med NVEs veileder
|
|||
|
|
- NS 3031:2025 *Bygningers energiytelse — Beregning av energi- og effektbehov*
|
|||
|
|
- NS-EN ISO 52016-1:2017 og NS-EN ISO 52010-1:2017
|
|||
|
|
|
|||
|
|
## Lisens
|
|||
|
|
|
|||
|
|
MIT.
|