not ideal but working bat charging
This commit is contained in:
@ -8,6 +8,7 @@ from homeassistant.core import callback
|
||||
from homeassistant.components import mqtt
|
||||
from homeassistant.exceptions import HomeAssistantError
|
||||
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
||||
from homeassistant.helpers import selector
|
||||
from .const import (
|
||||
DOMAIN,
|
||||
API_URL,
|
||||
@ -25,7 +26,34 @@ from .const import (
|
||||
MIN_RETRY_ATTEMPTS,
|
||||
MAX_RETRY_ATTEMPTS,
|
||||
MIN_RETRY_DELAY,
|
||||
MAX_RETRY_DELAY
|
||||
MAX_RETRY_DELAY,
|
||||
# Battery recommendation constants
|
||||
CONF_BATTERY_ENABLED,
|
||||
CONF_BATTERY_SOC_ENTITY,
|
||||
CONF_BATTERY_CAPACITY,
|
||||
CONF_BATTERY_CHARGE_RATE,
|
||||
CONF_BATTERY_DISCHARGE_RATE,
|
||||
CONF_BATTERY_MIN_SOC,
|
||||
CONF_BATTERY_CHARGE_HOURS,
|
||||
CONF_BATTERY_DISCHARGE_MULTIPLIER,
|
||||
DEFAULT_BATTERY_CAPACITY,
|
||||
DEFAULT_BATTERY_CHARGE_RATE,
|
||||
DEFAULT_BATTERY_DISCHARGE_RATE,
|
||||
DEFAULT_BATTERY_MIN_SOC,
|
||||
DEFAULT_BATTERY_CHARGE_HOURS,
|
||||
DEFAULT_BATTERY_DISCHARGE_MULTIPLIER,
|
||||
MIN_BATTERY_CAPACITY,
|
||||
MAX_BATTERY_CAPACITY,
|
||||
MIN_BATTERY_CHARGE_RATE,
|
||||
MAX_BATTERY_CHARGE_RATE,
|
||||
MIN_BATTERY_DISCHARGE_RATE,
|
||||
MAX_BATTERY_DISCHARGE_RATE,
|
||||
MIN_BATTERY_MIN_SOC,
|
||||
MAX_BATTERY_MIN_SOC,
|
||||
MIN_BATTERY_CHARGE_HOURS,
|
||||
MAX_BATTERY_CHARGE_HOURS,
|
||||
MIN_BATTERY_DISCHARGE_MULTIPLIER,
|
||||
MAX_BATTERY_DISCHARGE_MULTIPLIER,
|
||||
)
|
||||
|
||||
class MQTTNotConfiguredError(HomeAssistantError):
|
||||
@ -261,6 +289,34 @@ class PstrykOptionsFlowHandler(config_entries.OptionsFlow):
|
||||
vol.All(vol.Coerce(int), vol.Range(min=MIN_RETRY_DELAY, max=MAX_RETRY_DELAY)),
|
||||
})
|
||||
|
||||
# Battery Recommendation Configuration
|
||||
schema.update({
|
||||
vol.Optional(CONF_BATTERY_ENABLED, default=self.config_entry.options.get(
|
||||
CONF_BATTERY_ENABLED, False)): bool,
|
||||
vol.Optional(CONF_BATTERY_SOC_ENTITY, default=self.config_entry.options.get(
|
||||
CONF_BATTERY_SOC_ENTITY, "")): selector.EntitySelector(
|
||||
selector.EntitySelectorConfig(domain="sensor")
|
||||
),
|
||||
vol.Optional(CONF_BATTERY_CAPACITY, default=self.config_entry.options.get(
|
||||
CONF_BATTERY_CAPACITY, DEFAULT_BATTERY_CAPACITY)):
|
||||
vol.All(vol.Coerce(int), vol.Range(min=MIN_BATTERY_CAPACITY, max=MAX_BATTERY_CAPACITY)),
|
||||
vol.Optional(CONF_BATTERY_CHARGE_RATE, default=self.config_entry.options.get(
|
||||
CONF_BATTERY_CHARGE_RATE, DEFAULT_BATTERY_CHARGE_RATE)):
|
||||
vol.All(vol.Coerce(int), vol.Range(min=MIN_BATTERY_CHARGE_RATE, max=MAX_BATTERY_CHARGE_RATE)),
|
||||
vol.Optional(CONF_BATTERY_DISCHARGE_RATE, default=self.config_entry.options.get(
|
||||
CONF_BATTERY_DISCHARGE_RATE, DEFAULT_BATTERY_DISCHARGE_RATE)):
|
||||
vol.All(vol.Coerce(int), vol.Range(min=MIN_BATTERY_DISCHARGE_RATE, max=MAX_BATTERY_DISCHARGE_RATE)),
|
||||
vol.Optional(CONF_BATTERY_MIN_SOC, default=self.config_entry.options.get(
|
||||
CONF_BATTERY_MIN_SOC, DEFAULT_BATTERY_MIN_SOC)):
|
||||
vol.All(vol.Coerce(int), vol.Range(min=MIN_BATTERY_MIN_SOC, max=MAX_BATTERY_MIN_SOC)),
|
||||
vol.Optional(CONF_BATTERY_CHARGE_HOURS, default=self.config_entry.options.get(
|
||||
CONF_BATTERY_CHARGE_HOURS, DEFAULT_BATTERY_CHARGE_HOURS)):
|
||||
vol.All(vol.Coerce(int), vol.Range(min=MIN_BATTERY_CHARGE_HOURS, max=MAX_BATTERY_CHARGE_HOURS)),
|
||||
vol.Optional(CONF_BATTERY_DISCHARGE_MULTIPLIER, default=self.config_entry.options.get(
|
||||
CONF_BATTERY_DISCHARGE_MULTIPLIER, DEFAULT_BATTERY_DISCHARGE_MULTIPLIER)):
|
||||
vol.All(vol.Coerce(float), vol.Range(min=MIN_BATTERY_DISCHARGE_MULTIPLIER, max=MAX_BATTERY_DISCHARGE_MULTIPLIER)),
|
||||
})
|
||||
|
||||
# Add description with section information
|
||||
description_text = "Configure your energy price monitoring settings"
|
||||
if mqtt_enabled:
|
||||
|
||||
Reference in New Issue
Block a user