fix: solar forecast charging
This commit is contained in:
@@ -10,8 +10,15 @@ from .const import (
|
||||
CONF_CHARGER_ID,
|
||||
CHARGING_PROFILE_ALL_SURPLUS,
|
||||
CHARGING_PROFILE_CONSERVATIVE,
|
||||
CHARGING_PROFILE_FORECAST,
|
||||
CHARGING_PROFILE_FORECAST_CONSERVATIVE,
|
||||
CONF_CHARGING_PROFILE,
|
||||
CONF_DEAD_BAND_RESYNC_MINUTES,
|
||||
CONF_FORECAST_CONFIDENCE,
|
||||
CONF_FORECAST_LOOKAHEAD_MINUTES,
|
||||
CONF_FORECAST_SENSOR,
|
||||
DEFAULT_FORECAST_CONFIDENCE,
|
||||
DEFAULT_FORECAST_LOOKAHEAD_MINUTES,
|
||||
CONF_DEVICE_ID,
|
||||
CONF_EV_CHARGING_SENSOR,
|
||||
CONF_HOUSE_LOAD_SENSOR,
|
||||
@@ -43,11 +50,21 @@ _CHARGING_PROFILE_SELECTOR = selector.SelectSelector(
|
||||
options=[
|
||||
selector.SelectOptionDict(value=CHARGING_PROFILE_CONSERVATIVE, label="Conservative"),
|
||||
selector.SelectOptionDict(value=CHARGING_PROFILE_ALL_SURPLUS, label="All Surplus"),
|
||||
selector.SelectOptionDict(value=CHARGING_PROFILE_FORECAST, label="Forecast look-ahead"),
|
||||
selector.SelectOptionDict(value=CHARGING_PROFILE_FORECAST_CONSERVATIVE, label="Forecast surplus"),
|
||||
],
|
||||
mode=selector.SelectSelectorMode.DROPDOWN,
|
||||
)
|
||||
)
|
||||
|
||||
_CONFIDENCE_SELECTOR = selector.NumberSelector(
|
||||
selector.NumberSelectorConfig(min=50, max=100, step=5, unit_of_measurement="%", mode=selector.NumberSelectorMode.SLIDER)
|
||||
)
|
||||
|
||||
_LOOKAHEAD_SELECTOR = selector.NumberSelector(
|
||||
selector.NumberSelectorConfig(min=5, max=120, step=5, unit_of_measurement="min", mode=selector.NumberSelectorMode.BOX)
|
||||
)
|
||||
|
||||
_POWER_SENSOR_SELECTOR = selector.EntitySelector(
|
||||
selector.EntitySelectorConfig(domain="sensor", device_class="power")
|
||||
)
|
||||
@@ -103,6 +120,19 @@ def _options_schema(hass: HomeAssistant, current: dict) -> vol.Schema:
|
||||
CONF_DEAD_BAND_RESYNC_MINUTES,
|
||||
default=current.get(CONF_DEAD_BAND_RESYNC_MINUTES, DEFAULT_DEAD_BAND_RESYNC_MINUTES),
|
||||
): _DEAD_BAND_RESYNC_SELECTOR,
|
||||
# ── Forecast profiles ─────────────────────────────────────────────────
|
||||
vol.Optional(CONF_FORECAST_SENSOR): selector.EntitySelector(
|
||||
selector.EntitySelectorConfig(integration="forecast_solar")
|
||||
),
|
||||
vol.Required(
|
||||
CONF_FORECAST_CONFIDENCE,
|
||||
default=current.get(CONF_FORECAST_CONFIDENCE, DEFAULT_FORECAST_CONFIDENCE),
|
||||
): _CONFIDENCE_SELECTOR,
|
||||
vol.Required(
|
||||
CONF_FORECAST_LOOKAHEAD_MINUTES,
|
||||
default=current.get(CONF_FORECAST_LOOKAHEAD_MINUTES, DEFAULT_FORECAST_LOOKAHEAD_MINUTES),
|
||||
): _LOOKAHEAD_SELECTOR,
|
||||
# ─────────────────────────────────────────────────────────────────────
|
||||
vol.Optional(CONF_NOTIFY_TARGET): _notify_selector(_notify_services(hass)),
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user