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:
Temperatur: °C
Vejr: skydække
Regnstatus:
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
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