* 🍱 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
15 lines
394 B
Python
15 lines
394 B
Python
"""Constant values for pvpc_hourly_pricing."""
|
|
from aiopvpc import TARIFFS
|
|
import voluptuous as vol
|
|
|
|
DOMAIN = "pvpc_hourly_pricing"
|
|
|
|
ATTR_POWER = "power"
|
|
ATTR_POWER_P3 = "power_p3"
|
|
ATTR_TARIFF = "tariff"
|
|
DEFAULT_NAME = "PVPC"
|
|
CONF_USE_API_TOKEN = "use_api_token"
|
|
|
|
VALID_POWER = vol.All(vol.Coerce(float), vol.Range(min=1.0, max=15.0))
|
|
VALID_TARIFF = vol.In(TARIFFS)
|
|
DEFAULT_TARIFF = TARIFFS[0]
|