* ✨ Implement optional API token in config-flow + options
to make the data download from an authenticated path in ESIOS server
As this is an *alternative* access, and current public path works for the PVPC,
no user (current or new) is compelled to obtain a token,
and it can be enabled anytime in options, or doing the setup again
When enabling the token, it is verified (or "invalid_auth" error),
and a 'reauth' flow is implemented, which can change or disable the token if
it starts failing.
The 1st step of config/options flow adds a bool to enable this private access,
- if unchecked (default), entry is set for public access (like before)
- if checked, a 2nd step opens to input the token, with instructions
of how to get one (with a direct link to create a 'request email').
If the token is valid, the entry is set for authenticated access
The 'reauth' flow shows the boolean flag so the user could disable a bad token
by unchecking the boolean flag 'use_api_token'
* ♻️ Remove storage of flag 'use_api_token' in config entry
leaving it only to enable/disable the optional token in the config-flow
* ♻️ Adjust async_update_options
* ✨ Add new price sensors with API token access
New price sensors added:
- Injection price: price of excess energy from self-consumption
- OMIE price: electricity price in the 'open' market
- MAG price: Temporal tax cost for gas compensation
* ✅ Adapt tests to work with multiple sensors
* 🐛 Fix all integration sensors going unavailable
when any sensor lacks data for the current day (usually the 'OMIE price')
* Fix rebase
* Customize icons and display precision for new sensors
* Disable MAG Tax and OMIE price sensors by default
* Move logic to assign sensor unique ids to integration
* Move helper functions to helpers.py
* Fix sensor activation for API download
* 🍱 Add new fixture for PVPC data from authenticated API call
and update mocked server responses when data is not available
(now returns a 200 OK with empty data)
* ✨ Implement optional API token in config-flow + options
to make the data download from an authenticated path in ESIOS server
As this is an *alternative* access, and current public path works for the PVPC,
no user (current or new) is compelled to obtain a token,
and it can be enabled anytime in options, or doing the setup again
When enabling the token, it is verified (or "invalid_auth" error),
and a 'reauth' flow is implemented, which can change or disable the token if
it starts failing.
The 1st step of config/options flow adds a bool to enable this private access,
- if unchecked (default), entry is set for public access (like before)
- if checked, a 2nd step opens to input the token, with instructions
of how to get one (with a direct link to create a 'request email').
If the token is valid, the entry is set for authenticated access
The 'reauth' flow shows the boolean flag so the user could disable a bad token
by unchecking the boolean flag 'use_api_token'
* 🌐 Update strings for config/options flows
* ✅ Adapt tests to check API token option and add test_reauth
* 🎨 Link new strings to those in config-flow
* 🐛 tests: Fix mocked date-change with async_fire_time_changed
* ♻️ Remove storage of flag 'use_api_token' in config entry
leaving it only to enable/disable the optional token in the config-flow
* ♻️ Adjust async_update_options
* 🎨 Add missing typing for config-flow
* 🐛 Remove 'tariff' edition from options-flow
The `entry.data["tariff"]` is what makes the `entry.unique_id`,
so it's an incoherence to be able to change it in the Options flow
* 🌐 Update generated EN translation
* 🎨 Link translations of option-flow to those of config-flow
* 🔥 Remove old config entry migration logic
introduced for a breaking change in 2021-06, now unreachable after
completely disabling the YAML config for the integration
* ✅ Remove test for old config entry migration logic
and adjust existent one for config-flow to do not lose coverage
* 📦️ Bump aiopvpc version
* ♻️ Evolve DataUpdateCoordinator and PVPC sensor for new aiopvpc
setting `SensorDeviceClass.MONETARY` for the price sensor
* 🍱 tests: Update tests fixtures with new sensor data
for aiopvpc v4 with 'esios_public' as data-source
* ✅ tests: Adapt test suite for new default data-source
* 📦️ Bump aiopvpc version for latest patch 4.0.1
* ⏪️ Revert changes unrelated to library bump
* ⏪️ Revert tests changes unrelated to library bump