7 Commits
Author SHA1 Message Date
blandClaude Opus 5 afb8ea3fc4 Les EPW-filer som Latin-1, og bruk oppgitt kommune i klimaoppslaget
Energirapporter / rapporter (release) Successful in 1m2s
Release enok / bygg (release) Successful in 1m9s
test / test (push) Successful in 1m16s
EPW-filer er ikke UTF-8. Stedsnavnet «Indre Østfold» kommer som Latin-1-byten 0xD8,
og tolket som UTF-8 ble navnet ødelagt. Da fant ikke oppslaget klimakorrigerings-
faktoren, og energiytelsen ble stående i lokalt klima uten korrigering til Oslo.
Utslaget var 79 kWh/(m²·år) for Nordhusstykket 5, uten annet varsel enn en merknad
inne i rapporten.

Filen leses nå som Latin-1 når den ikke er gyldig UTF-8. Er kommunen oppgitt, gjelder
den for oppslaget, slik at resultatet ikke avhenger av skrivemåten inne i klimafilen.
Merknader fra beregningen skrives også ut på skjermen, ikke bare i rapporten.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o
v0.1.1
2026-09-14 21:29:36 +02:00
blandClaude Opus 5 0404252fa0 Sett opp Rust-verktøykjeden i byggeserveren, og fiks nedlastingsstien
test / test (push) Successful in 2m2s
Kjørebrukeren gitea-runner har rustup installert, men ingen standardkjede satt.
Cargo svarte derfor at den ikke visste hvilken versjon den skulle bruke, og alle
tre arbeidsflytene feilet. Arbeidsflytene setter nå en standardkjede selv om det
mangler, i stedet for at kjøreren må ordnes for hånd.

Gitea har heller ingen «releases/latest/download»-sti slik GitHub har. Taggen
slås opp i API-et først.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o
2026-09-14 21:24:39 +02:00
blandClaude Opus 5 98c6223439 Si fra om hva beregningen måtte anta
test / test (push) Failing after 4s
Energirapporter / rapporter (release) Failing after 3s
Release enok / bygg (release) Failing after 3s
En modell importert fra IFC, gbXML eller regneark beskriver geometrien, men ingen av
formatene sier noe om drift, tetthet eller energiforsyning. Beregningen gikk likevel
gjennom uten et ord om at byggeåret var satt til 2020, at lekkasjetallet fulgte av det,
at hele varmebehovet ble regnet som direkte elektrisk, og at klimaet var Oslo.

For et hus fra 1948 er det forskjellen mellom 0,6 og 8 luftvekslinger per time. Nå
listes slike utfyllingsvalg både på skjermen før beregningen og som merknader i
rapporten. Kontrollen ser også etter en kjeller som er tatt med i klimaskjermen i
stedet for å være beskrevet som egen uoppvarmet sone.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o
v0.1.0
2026-09-14 21:20:34 +02:00
blandClaude Opus 5 719f5c672b Tilpass arbeidsflytene til vertskjøreren på kasse
test / test (push) Failing after 5s
Arbeidsflytene var skrevet for beholderkjørere med ubuntu-latest, actions/checkout@v4
og en hemmelighet ved navn GITEA_TOKEN. Byggeserveren kjører i stedet en vertskjører
med merkelappen fish, henter handlinger fra gitea.com og gir et innebygd token, slik
de andre prosjektene er satt opp. Slik de var ville de ikke ha kjørt i det hele tatt.

- fish som skall, og fish-syntaks i stegene
- utløses når en utgivelse publiseres, ikke av tagger
- release.yml legger enok-binærfilen ved utgivelsen, slik at prosjektlagre med egne
  bygningsmodeller kan lage energirapporter uten å ha Rust installert

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o
2026-09-14 21:05:40 +02:00
blandClaude Opus 5 b6babde13a Geometri fra IFC, grunnmodell etter ISO 13370 og uoppvarmede soner
test / test (push) Failing after 3s
Importen er prøvd mot en virkelig IFC-fil fra Vectorworks Architect 2026 og
avdekket tre feil og ett hull.

IFC-import
- Lengdeenheten hentes nå gjennom prosjektets enhetsoppsett. Filen inneholder to
  lengdeenheter, og oppslaget traff tilfeldig den ene.
- Arealer regnes av geometrien, siden modellen ikke har mengder for vegger og dekker.
  Trekantene grupperes etter retning, og den største gruppen er delens hovedflate.
  Metoden gir riktig areal også når vinduer er skåret ut av veggen.
- Materialsjikt eksporteres som hver sin geometridel. Deler som ligger i samme plan
  og overlapper hverandre telles én gang, ellers ble en vegg talt sju ganger.
- Himmelretningen følger flatenormalen i stedet for et anslag ut fra tyngdepunktet.
- Flater med samme konstruksjon og himmelretning slås sammen, og rommene listes
  med areal, siden IFC ikke sier hvilke som er oppvarmet.

Grunnen og kjelleren
- Flater mot grunnen regnes etter NS-EN ISO 13370. En kjellervegg deles i en del over
  terreng og en nedgravd del, etter høydene `over_terreng` og `dybde`.
- Uoppvarmede soner får egen temperatur time for time etter NS-EN ISO 13789, med
  varmetilskudd fra distribusjonstap og beredere som står der. Uisolerte varmerør i
  en kjeller teller dermed både som tap og som varme som holder etasjeskilleren varm.
- Varmetapsbudsjettet oppgir konstruksjonens egen U-verdi, slik NS 3031 Tabell 3 og
  energikravene i TEK er formulert, mens timesberegningen bruker grunnens demping.

Nordhusstykket 5 er modellert av IFC-geometrien med kjelleren som egen sone.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o
2026-09-14 19:16:18 +02:00
blandClaude Opus 5 a5185ccc5b Knytt grensen for vinduslufting til normert settpunkt for kjøling
test / test (push) Failing after 4s
Grensen var satt til 24 °C uten kilde. NS 3031 gir en normert settpunkttemperatur
for kjøling også for bygninger uten kjøleanlegg, der overskuddsvarmen antas luftet
ut uten at energien telles. Den verdien er et bedre begrunnet utgangspunkt, og gir
mindre urealistisk lagring av solvarme i tette bygninger med store vindusflater.

Romoppvarmingen for TEK17-referansebygget går fra 24,7 til 27,2 kWh/(m²·år).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o
2026-09-14 18:05:16 +02:00
blandClaude Opus 5 0964cacba3 Energiberegning etter NS 3031:2025 med timesmetode og energirapport
enok leser en bygningsbeskrivelse i TOML, henter typisk klimaår for kommunen,
simulerer 8760 timer etter NS-EN ISO 52016-1 og skriver energirapport, CSV og JSON.

Motor
- Femnodemodell for opake bygningsdeler, tonodemodell for vinduer, luftnode og
  strålingsnode per sone, implisitt løsning per time med egen tett LU-løser.
- Varme- og kjølebehov ved eksakt interpolasjon mellom to løsninger, siden systemet
  er lineært. Vinduslufting for bygninger uten kjøleanlegg.
- Solberegning etter ISO 52010-1, kontrollert mot pvlib med avvik under 1 prosent.

Beregningsgang
- Beregningspunktene A til E: netto, brutto, tilført, levert per energibærer og
  vektet levert energi, med solceller, klimakorrigering og effektbehov.
- Energikarakter etter Enovas skala fra 1.1.2026, med arealkorreksjon.

Inndata
- TOML med scenarier for tiltak, og import fra IFC, gbXML og regneark.
- Normerte verdier, karakterskala, vektingsfaktorer og klimadata i data/,
  som kan overstyres med --data.

Kontroll
- Stasjonært varmetap mot U·A·ΔT innenfor 2 prosent, energibalansen innenfor
  2 prosent, varmetapsbudsjettet for TEK17-referansebygget identisk med publisert
  tabell. Kjent avvik i romoppvarming mot Simien 8 er dokumentert i README.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o
2026-09-14 18:03:00 +02:00