mirror of
https://github.com/Legolas-2025/Standalone-electricity-price-ticker.git
synced 2026-08-17 12:34:55 +02:00
Updated version to 6.2.3 with release date 2026-04-01. Added highlights for version 6.2.3 including a bug fix for state-based display refresh logic.
66 lines
3.2 KiB
Markdown
66 lines
3.2 KiB
Markdown
# Electricity Price Ticker – Version Information
|
||
|
||
## Current firmware
|
||
|
||
- **Version:** 6.2.3
|
||
- **Release date:** 2026-04-01
|
||
- **Target MCU:** Seeed XIAO ESP32‑C3
|
||
- **Display:** 20x4 I²C LCD (PCF8574, default address `0x27`)
|
||
- **API endpoint:** `https://api.energy-charts.info/price?bzn=SI`
|
||
- **Resolution:** 15‑minute intervals, hourly averages for overview
|
||
|
||
## Highlights of v6.2.3
|
||
|
||
- **BUG FIX**: State-based display refresh logic
|
||
- Problem: Screen would occasionally fail to update if the ESP32 was busy (fetching data or reconnecting WiFi) during the exact 00/15/30/45 minute mark.
|
||
- Fix: Switched from "Event-Based" (refresh only AT minute X) to "State-Based" (refresh IF current time != last refresh time). This ensures the screen updates immediately even if the device was busy during the transition.
|
||
|
||
## Highlights of v6.2.2
|
||
|
||
- **BUG FIX**: Display blank lines issue
|
||
- Problem: Sometimes rows 0 and 1 (current 15-min prices and current hour) were blank
|
||
- Cause: The "hour suppression" logic was hiding the current hour unexpectedly
|
||
- Fix:
|
||
- Row 1 (current hour) now ALWAYS shows - suppression logic only applies to rows 2-3
|
||
- Row 0 (15-min details) also always shows for the current hour
|
||
|
||
## Highlights of v6.2.1
|
||
|
||
- **BUG FIX**: Fixed `findCurrentPriceIndex()` to return the correct current interval.
|
||
- Problem: At 17:57, it returned index for 18:00 instead of 17:45, causing display to show hour 18 instead of hour 17.
|
||
- Fix: Now calculates next 15-minute boundary and finds the last entry before that boundary.
|
||
|
||
## Highlights of v6.2.0
|
||
|
||
- **CRITICAL FIX**: DST (Daylight Saving Time) handling is now fully fixed for all days.
|
||
- Previously, the code assumed every day has exactly 96 price entries (24h × 4). This caused incorrect price display on DST switch days:
|
||
- Spring forward (March): Only 92 entries → wrong prices displayed
|
||
- Fall back (October): 100 entries → wrong prices displayed
|
||
- **Solution**: All price lookups now use timestamp-based searching through the `unix_seconds` array instead of arithmetic calculation (`hourIndex * 4`).
|
||
- New functions: `findPriceIndexForHour()`, `findCurrentPriceIndex()`, `getHourFromPriceIndex()`
|
||
- Updated functions: `getHourlyAverage()`, `display15MinuteDetails()`, `displayPriceRow()`, `displayPrimaryList()`, `updateLeds()`
|
||
- The ticker now works correctly on all days, including DST switch days, with no manual intervention.
|
||
- **Future-proof**: If EU cancels DST, only the `TZ_CET_CEST` string needs updating (one line of code).
|
||
|
||
## Previous firmware
|
||
|
||
- **Version:** 6.1.2
|
||
- **Release date:** 2026-03-11
|
||
- **Target MCU:** Seeed XIAO ESP32‑C3
|
||
|
||
## Highlights of v6.1.2
|
||
|
||
- Fix: restore proper white LED price indicator behavior on ESP32 by avoiding mixing PWM (`analogWrite`) and `digitalWrite` on the same pin.
|
||
- Fix: LED is now truly off when backlight/LED gating turns it off (no more "dim glow").
|
||
|
||
## Earlier firmware
|
||
|
||
- **Version:** 6.1.1 (2026-03-07) – Daily low/high marker includes negative and zero prices
|
||
- **Version:** 6.1.0 (2026-01-30) – Midnight fetch and market day detection fixes
|
||
- **Version:** 6.0.0 (2026-01-27) – NVS storage and daily fetch
|
||
|
||
For full details, see:
|
||
|
||
- [CHANGELOG.md](./CHANGELOG.md)
|
||
- [README.md](./README.md)
|