- Add eloverblik controller with API client for metering points, time series, and charges
- Add migrations for metering_points, meter_readings, and charges tables
- Add HugSQL queries (upsert-metering-point!, insert-meter-reading!, insert-charge!)
- Add POST /eloverblik/sync route to trigger sync from browser
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Tabs now display the date (e.g. "Today 2026-02-14"). Removed redundant
"Today — DK1" / "Tomorrow — DK1" headings from the price tables.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove the Refresh Prices button. Prices are fetched automatically on
page load, and clicking the headline triggers a re-fetch.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
HTMX-powered tabs switch between today's and tomorrow's prices without
full page reload. Today tab is active by default.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
One request per area (DK1, DK2) avoids hitting the 200-record limit
that was truncating tomorrow's data when both areas were fetched together.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Changed upsert to INSERT ON CONFLICT DO NOTHING so existing prices are
never overwritten. Added unique index on (time_dk, price_area) to enforce
no duplicate quarter-hour entries per area.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Each hour shows as an open-by-default card with the average price and
indented quarter-hour rows. Added @source directive to Tailwind v4 input
so .clj files are scanned for utility classes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
URI/create rejects raw braces/brackets in query strings. URL-encode the
filter JSON so the request succeeds.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds a prices controller that fetches DK1/DK2 hourly spot prices via the
Energi Data Service API, stores them in PostgreSQL, and displays today's
and tomorrow's DK1 prices on the home page in øre/kWh. An HTMX "Refresh
Prices" button triggers the fetch-and-display cycle.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>