Added support for separate provider fee for negative spot prices in version 7.1. Updated documentation to reflect changes in pricing calculations and display behavior.
Updated README to reflect changes in version 7.0, including new features like the Rolling 48-Hour Logic and Midnight Bridge system. Enhanced sections on API call intervals, dual-buffer NVS, and display states.
Document major changes and new features in v7.0, including the Dual-Buffer NVS System, Midnight Bridge logic, and enhancements for fetching and displaying tomorrow's data.
Document major changes and new features in v7.0, including the Dual-Buffer NVS System, Midnight Bridge logic, and enhancements for fetching and displaying tomorrow's data.
VERSION 7.0 CHANGES (2026-04-02):
----------------------------------
MAJOR UPGRADE: Rolling 48-Hour Logic & Midnight Bridge
- Added Dual-Buffer NVS: Stores "Today" and "Tomorrow" independently.
- Midnight Bridge: At exactly 00:00:00, "Tomorrow" data automatically becomes "Today",
eliminating the 1AM/2AM UTC offset fetch delay.
- Seamless 48H Scrolling: If next-day data is available, the button allows
scrolling up to 47 hours ahead.
- Visual Indicators: Future hours are marked with "HH:>>" to distinguish
from today's "HH:00".
- Smart Fetching: Automatically looks for tomorrow's data after 14:00 local time.
Updated version number to 6.2.4 and added highlights for the new version, including a critical bug fix related to display refresh at exact hour boundaries.
Documented the fix for the auto display refresh glitch that showed previous hour's data at the top of the hour. Updated the changelog with details about the problem and solution.
Updated changelog to document the fix for state-based display refresh logic in version 6.2.3. The refresh logic now checks for hour changes instead of minute marks to ensure timely updates.
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.
- Updated version strings throughout the UI.
Update to v6.2.2 - Screen blank lines issue fix after v6.2.0 DST Fix
- 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
This release fixes a critical bug related to price display during Daylight Saving Time transitions, implementing timestamp-based lookups for accurate price retrieval. It also includes new and updated functions for better handling of price indices and LED control.
Restores LED indicator functionality by ensuring PWM control for the white LED, fixing issues from v6.1.1 where the LED remained dimly lit and patterns were inconsistent.
VERSION 6.1.2 CHANGES (2026-03-11):
----------------------------------
FIX: Restore correct white LED price indicator behavior (to mach the one in prrevious v6.1) on ESP32 (XIAO ESP32C3) by avoiding mixing analogWrite() (LEDC PWM) and digitalWrite() on the same pin. When LED should be OFF we now use analogWrite(whiteLedPin, 0) (instead of digitalWrite LOW). When LED should be fully ON we now use analogWrite(whiteLedPin, 255) (instead of digitalWrite HIGH). Blink / double-blink patterns now toggle between PWM 0 and 255 so the LED is truly off when backlight/presence logic turns LEDs off (no more dimly-lit LED).
NOTE: This version is identical to v6.1.1 except for: updateLeds() LED control fix (PWM-only on whiteLedPin), UI version strings ("v6.1.2") & header comment version/date.
VERSION 6.1.2 CHANGES (2026-03-12):
----------------------------------
Fixed LED indicator not working properly (constantly dimly lit, not responding to price patterns, staying on when LCD backlight turns off). Root cause: Mixing analogWrite() and digitalWrite() on ESP32 causes PWM channel to remain active even after digitalWrite(LOW), resulting in dim LED. LED now properly turns off when backlight is off (areLedsOn = false). LED now correctly shows breathing/blinking patterns based on price thresholds.
VERSION 6.1.1 CHANGES (2026-03-07):
----------------------------------
Fixed daily lowest/highest hourly indicator (and daily average) now correctly considers ALL hourly averages, including negative values and 0.0 (which can be real prices). The daily average is now computed using the number of valid hours actually present in the dataset (validHourCount), instead of always dividing by 24.
NOTE:
- This version includes all fixes from v6.1.1 plus the LED fix.
NOTE:
- This version is identical to v6.1 except for:
* processJsonData() min/max/average fix
* UI version strings ("v6.1.1")
* header comment version/date
NOTE: This version is identical to v6.1 except for the FIX: Daily lowest/highest hourly indicator (and daily average) now correctly considers ALL hourly averages, including negative values and 0.0 (which can be real prices).
This release addresses a bug in the daily min/max price calculations, ensuring that negative and zero prices are now included. It also corrects the daily average computation by considering all valid hours.