* ✨ 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
15 lines
400 B
Python
15 lines
400 B
Python
"""Constant values for pvpc_hourly_pricing."""
|
|
from aiopvpc.const 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]
|