Skip to content

Nord Pool currency auto-detect fails for continental areas (NL/BE/DE/FR/AT/PL) — locks UI to SEK #163

Description

@jdungen

Problem

On a fresh setup with the official Nord Pool HA integration and price area NL, the Settings → Electricity Pricing tab shows Currency: SEK and the field is greyed out (readOnly), so the user cannot correct it. The Markup, Additional Costs, and Export Compensation labels then read SEK/kWh even though all underlying prices are in EUR.

Root cause

_AREA_HINTS in core/bess/ha_api_controller.py:2194 only maps the original Nord Pool members:

_AREA_HINTS = {
    "SE": ("SEK", 1.25),
    "NO": ("NOK", 1.25),
    "DK": ("DKK", 1.25),
    "FI": ("EUR", 1.24),
    "EE": ("EUR", 1.22),
    "LT": ("EUR", 1.21),
    "LV": ("EUR", 1.21),
    "GB": ("GBP", 1.0),
}

Nord Pool's day-ahead market has since expanded to NL, BE, DE-LU, FR, AT, PL (and others). For any of those areas, _hints_from_nordpool_area() returns {}, the discover endpoint skips the currency update, and the bootstrap default SEK from config.yaml stays in place.

The UI side compounds this: PricingFormSection.tsx:58 renders the Currency field with readOnly: true and placeholder "Auto-detected…", so when auto-detect silently fails the user has no manual escape hatch.

This is the same shape as #113 (Swedish-locale bootstrap defaults bleeding into non-SE users), just for the Nord Pool side instead of the Octopus side.

Proposal

Two parts:

  1. Backend (this PR): extend _AREA_HINTS with the post-expansion areas — NL/BE/DE/FR/AT (EUR) and PL (PLN). The prefix parser already handles DE-LU correctly because it slices area[:2]. Tests added in test_discovery_hints.py covering each new area.
  2. Frontend (separate, happy to follow up): when auto-detect resolves to a blank/unknown currency, the field should fall back to editable so the user can set it manually. Out of scope for this PR.

PR with the backend fix incoming.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions