Haven I Jerne
WEATHER MONITOR
Torsdag den 4. juni 2026
Vejrdata sidst opdateret: --:--
Vejrudsigt data sidst opdateret: --:--
Solopgang: --:--    Solnedgang: --:--
UV: 0.0
Månen står op: --:--    Månen går ned: --:--
--
Vejrikon
Temperatur: °C
Vejr: skydække
Regnstatus: Indlæser...

Versionsoversigt

Her kan du se hvilken version af backend der er installeret, samt detaljerede ændrings log for de teknisk interesserede.

Aktuel backend: 8.0.0


Backend v8.0.0
Marts 2026

Added

  • Separat API-namespace med versionsangivelse (history_data).
  • Dedikerede API-routes adskilt fra interne backend-routes.
  • Serializer-/response-lag til normalisering af JSON-output.
  • Standardiseret struktur for API-fejlresponser.
  • Konfigurationssektion for API-versionering og endpoint-kontrol.

Changes

  • Backendens routing struktur er reorganiseret for klar adskillelse mellem interne funktioner og offentlige API-endpoints.
  • Interne datastrukturer eksponeres ikke længere direkte; alle eksterne responser transformeres via defineret output-struktur.
  • Historiske forespørgsler håndteres via parametre (fra/til/interval) i API fremfor interne hjælpefunktioner.
  • Logging er udvidet til at inkludere API-request metadata.
  • Datavalidering er centraliseret før API-respons returneres.

Fixed

  • Inkonsistens mellem live-data og historik-data repræsentation.
  • Manglende håndtering af null-/None-værdier i JSON-responser.
  • Edge case hvor samtidige forespørgsler kunne påvirke intern state.
  • Uensartet HTTP-statuskode ved fejltilstande.

Known issues / Limitations

  • API er read-only og understøtter ikke skriveoperationer.
  • Ingen brugerbaseret autentifikation; installationen fungerer som én logisk enhed.
  • Kun én aktiv API-version (history_data) understøttes i 8.0.
  • Caching-lag er ikke implementeret og performance afhænger af direkte datalæsning.

Technical notes

  • Version 8 markerer overgang fra intern backend-service til eksplicit API-platform.
  • Backend er nu klientagnostisk og kan betjene både WebApp og fremtidig iOS-app.
  • API-kontrakter er struktureret med henblik på stabil fremtidig versionering.
  • Arkitekturen reducerer kobling mellem præsentationslag og datalag markant.
Backend v7.5.0
December 1, 2025

Added

  • Forberedende struktur til ekstern API-anvendelse med henblik på fremtidig klientintegration (fx mobil- eller tredjepartsapps).
  • Klarere modulopdeling mellem dataindsamling, validering, beregning og præsentationsuafhængig logik.
  • Forbedret konfigurationsstruktur med fokus på miljøuafhængig drift.

changes

  • Arkitekturen er videreudviklet mod en ren backend-/servermodel med tydelig adskillelse fra WebApp-laget.
  • Omfattende refactoring af kodebasen med fokus på Flask best practices og PEP8-konform struktur.
  • Intern organisering er justeret for at understøtte fremtidig API-versionering og udvidelse.
  • Dataflow mellem moduler er strammet op for bedre konsistens og robusthed.
  • Logging er konsolideret og gjort mere konfigurationsdrevet.

Fixed

  • Diverse stabilitetsproblemer i backend databehandling og interne tilstandsdeling.
  • Mindre logiske fejl og inkonsistenser identificeret under fuld kodegennemgang.
  • Uensartet fejl- og exceptionhåndtering på tværs af moduler.

Known issues / Limitations

  • Backend eksponerer endnu ikke et offentligt, versionsstyret API til eksterne klienter.
  • Dataudveksling er i version 7.5 baseret på interne datastrukturer frem for formelle API-kontrakter.
  • Visse beregnede vejrparametre (fx windchill og heatindex) mangler fallback ved manglende eller ufuldstændige inputdata.
  • Historiske forespørgsler og rapportudtræk er i øjeblikket optimeret til intern WebApp-brug.

Technical notes

  • Version 7.5 fungerer som stabil backend-platform for live vejrdata, historik, grafer og rapportgenerering.
  • Version 8 vil introducere et versionsstyret, læseorienteret API med fokus på mobilklienter (iOS).
  • Design- og strukturændringer er foretaget for at minimere teknisk gæld frem mod version 8.0.
  • Backend er optimeret til containerbaseret drift i Docker- og NAS-miljø.
Backend v7.0.0
September 1, 2025

Added

  • Introduktion af central start.py som koordinerer backend-motor og webapplikation
  • Data-engine køres i separat tråd og deles med weblaget via fælles status-objekter
  • Modulopdelt domænelogik (forecast, moon_phase, day_utils m.fl.)
  • Central system_utils pakke til logging, konfiguration og fælles hjælpefunktioner
  • SQLiteDatabase abstraktion til struktureret adgang til SQLite
  • Admin-funktionalitet via separat Flask blueprint (web_admin.routes)
  • Dynamisk konfigurationsadgang via get_config() i runtime

changes

  • Markant arkitektonisk ændring fra monolitisk script til modulær applikation
  • Klar adskillelse mellem dataindsamling, databehandling og præsentationslag
  • Backend-status deles eksplicit med Flask-app via thread-safe locks
  • Systemstatus og beregnede værdier eksponeres struktureret til weblaget
  • Intern datamodel standardiseret omkring 'validated' og 'status' datastrukturer

Fixed

  • Forbedret stabilitet gennem trådopdeling af data-engine og webserver
  • Reduceret kobling mellem moduler gennem fælles interfaces og hjælpefunktioner

Known issues / Limitations

  • Flask-app og data-engine deler stadig samme proces
  • Ingen ekstern message queue eller task scheduler (f.eks. Celery)
  • Konfigurationsændringer kræver korrekt implementeret admin-flow for at være sikre

Technical notes

  • Flask bruges som webframework med blueprint-baseret udvidelse
  • Threading anvendes til parallel drift af data-engine
  • Konfiguration læses dynamisk under runtime fremfor hardcoded værdier
  • Statusdeling sikres via status_lock for trådsikkerhed
  • Arkitekturen forbereder overgang til mere REST-orienteret struktur i senere versioner
Backend v6.5.0
July, 1, 2025

Added

  • Introduktion af web-baseret UI (webapp history_data.0) via web_dashbord-modulet
  • Dedikeret API-lag etableret i api/ med tydelig adskillelse fra datalogik
  • Datavaliderings lag implementeret og anvendt på indkommende vejr- og API-data
  • Dockerfile og docker-compose.yml til fuld containeriseret drift
  • Forecast-modul til håndtering af fremadrettede vejrdata
  • Graph-modul til generering af grafer baseret på historiske data
  • Mail-modul til automatiseret udsendelse af rapporter/notifikationer
  • Centraliseret utils-modul til fælles hjælpefunktioner
  • Persistent datafoldere (data/, weather_data/, logs/) formaliseret

changes

  • Overgang fra terminalbaseret visning til webbaseret præsentationslag
  • Backend opdelt i klart afgrænsede moduler frem for monolitisk script
  • API-adgang abstraheret væk fra direkte forbrug i hovedprogrammet
  • Web-relateret logik flyttet ud af core-monitorerings flow
  • Intern datahåndtering tilpasset kontinuerlig drift i container-miljø

Fixed

  • Stabilisering af API-kald gennem konsistent fejlhåndtering i api-laget
  • Ensretning af datatyper og null-håndtering via data validator
  • Forbedret log struktur og reduceret risiko for inkonsistente logfiler
  • Rettet afhængigheder og imports som tidligere var implicitte

Known issues / Limitations

  • Web UI (history_data.0) er primært read-only og understøtter begrænset interaktion
  • Ingen bruger- eller rettighedsstyring i webapplikationen
  • API-versionering er endnu ikke formelt indført
  • Fejlhåndtering i frontend afhænger af backend-respons uden fallback-visning

Technical notes

  • Version 6.5 repræsenterer et dokumenterbart arkitektonisk skift fra script-baseret løsning til modulopdelt backend med web-interface
  • Koden viser klar separation mellem: dataindsamling, datavalidering, API, præsentation og hjælpefunktioner
  • Designet understøtter videreudvikling mod flere klienter (web, senere mobile)
  • Container-first tilgang indikerer produktionsorienteret deployment
  • Denne version fungerer som teknisk fundament for version 7.x
Backend v6.0.0
January, 2025

Added

  • Modulopdelt projektstruktur med separate mapper for funktionelle ansvarsområder
  • Dedikeret API-lag placeret i /api
  • Separat dashboard/logik placeret i /dashboard
  • Adskilte moduler til forecast-, graf- og mail-funktionalitet
  • Fælles hjælpefunktioner samlet i /utils
  • Central entrypoint-fil (weather_monitor.py) som koordinerende hovedproces

changes

  • Overgang fra monolitisk script til modulær arkitektur
  • Tydelig separation of concerns mellem datahentning, databehandling, visualisering og kommunikation
  • Intern kommunikation mellem funktionelle moduler fremfor én samlet kontrol-flow-fil
  • Forbedret vedliges holdbarhed gennem funktions- og ansvarsopdeling

Fixed

  • Reduceret strukturel kompleksitet i hovedprogrammet ved at flytte logik ud i dedikerede moduler
  • Forbedret mulighed for isoleret fejlretning pr. funktionelt område

Known issues / Limitations

  • Ingen eksplicit versionsbinding eller kontrakt mellem moduler dokumenteret i kode
  • Afhængigheder mellem moduler er implicitte og ikke formaliseret via interfaces
  • Ingen central konfigurationsstyring observeret (fx fælles config-objekt)

Technical notes

  • Version 6 repræsenterer en arkitektonisk milepæl med overgang til modulbaseret backend-design
  • Mapperne /api, /dashboard, /forecast, /graph og /mail indikerer lagdeling efter funktionelt ansvar
  • Designændringen muliggør fremtidig udvidelse (fx web-UI, eksterne clients og flere datakilder)
  • Arkitekturen understøtter tydeligt videreudviklingen mod service-orienteret eller API-first design
Backend v5.9.0
March 1, 2025

Added

  • Systemmonitorering via psutil (CPU, RAM, netværk)
  • Multithreaded ressourceindsamling
  • Gennemsnitligt ressourceforbrug logget hvert 15. minut
  • Startup placeholders i terminalen
  • Offline-håndtering for alle moduler

changes

  • Regn logik omskrevet til fuldt tidsvindue-baseret model
  • Døgnskifte logger afsluttende CSV-række før nulstilling
  • Terminal-UI udvidet med systemstatus

Fixed

  • Fejl ved offline moduler der tidligere stoppede programmet
  • Manglende synlighed af systembelastning

Known issues / Limitations

  • Backend har for mange ansvarsområder
  • Svært at teste isoleret

Technical notes

  • Versionen markerer maksimal kompleksitet i monolitten
  • Direkte grundlag for arkitektonisk opdeling i 6.x
Backend v5.7.0
January 3, 2025

Added

  • Persistence af OAuth tokens til filsystem
  • Automatisk token refresh med retry-strategi
  • Akkumuleret regn pr. dag
  • Beregning af regn sidste 30 minutter og 6 timer
  • Skybruds- og kraftig regn-detektion
  • Daglig nulstilling af regn ved døgnskifte

changes

  • CSV-struktur udvidet med regn historik
  • Forbedret fejlhåndtering ved API- og netværksfejl

Fixed

  • Tab af regndata ved genstart
  • Forkerte regn beregninger over tid

Known issues / Limitations

  • Regn beregninger er afhængige af kontinuerlig drift
  • Ingen buffering ved længere nedetid

Technical notes

  • Introduktion af deque som stateful regn-buffer
  • Begyndende kompleksitet i monolit-arkitekturen
Backend v5.5.0
December 31, 2024

Added

  • Programstatus-linje i terminalen
  • Central funktion til statusopdatering
  • Fast opdateringsinterval på 5 minutter

changes

  • Ensartet statusfeedback ved succes og fejl
  • Forbedret håndtering af API-fejl uden crash

Fixed

  • Uventede stop ved midlertidige API-fejl

Known issues / Limitations

  • Statussystem kun tilgængeligt i terminal
  • Ingen ekstern monitorering

Technical notes

  • Main-loop stabiliseret til langvarig drift
  • Forbereder systemet på mere kompleks tilstandshåndtering
Backend v4.0.0
December 30, 2024

Added

  • Terminal-UI med faste linjepositioner
  • Statuslinjer for vejrdata

changes

  • Overgang fra lineær output til positionsbaseret terminal-rendering

Fixed

  • Uoverskuelig terminaloutput ved længere drift

Known issues / Limitations

  • Terminal-UI er afhængig af ANSI escape sequences
  • Ikke kompatibel med alle terminaler

Technical notes

  • Designet til headless drift via SSH
  • UI-logik er hårdt koblet til main-loop
Backend v3.0.0
December 30, 2024

Added

  • Grundlæggende log system med daglige logfiler
  • Logniveauer (INFO, WARN, ERROR)

changes

  • Introduktion af filbaseret logging frem for print-statements

Fixed

  • Manglende fejlsynlighed ved runtime-fejl

Known issues / Limitations

  • Ingen log rotation baseret på størrelse
  • Logging tæt koblet til forretningslogik

Technical notes

  • Logs opdelt pr. dag
  • Ingen central log-konfiguration
Backend v2.0.0
December 30, 2024

Added

  • CSV-logning af vejrdata
  • Tidsstempling af målinger

changes

  • Udvidelse af dataoutput fra ren terminalvisning til filbaseret logning

Fixed

  • Manglende tidsreference i output

Known issues / Limitations

  • CSV-struktur fast og ikke versionsstyret
  • Ingen genstarts sikring

Technical notes

  • CSV anvendes som primær datalagring
  • Ingen abstraktion mellem dataindsamling og lagring
Backend v1.0.0
December 28, 2024

Added

  • Første funktionelle API-kald til Netatmo vejrstation
  • Grundlæggende terminalvisning af vejrdata
  • Periodisk polling af vejrdata

changes

  • Initial struktur for main-loop og API-håndtering

Fixed

  • N/A

Known issues / Limitations

  • Ingen fejlhåndtering ved API-nedbrud
  • Ingen persistence af data eller tokens

Technical notes

  • Monolitisk script uden modulopdeling
  • Designet som proof-of-concept