Files

65 lines
2.4 KiB
Python

"""Constants for the Pstryk Energy integration."""
DOMAIN = "pstryk"
API_URL = "https://api.pstryk.pl/integrations/"
API_TIMEOUT = 30 # Reduced from 60 to allow faster startup
BUY_ENDPOINT = "pricing/?resolution=hour&window_start={start}&window_end={end}"
SELL_ENDPOINT = "prosumer-pricing/?resolution=hour&window_start={start}&window_end={end}"
# Energy cost and usage endpoints
ENERGY_COST_ENDPOINT = "meter-data/energy-cost/?resolution={resolution}&window_start={start}&window_end={end}&for_tz=Europe/Warsaw"
ENERGY_USAGE_ENDPOINT = "meter-data/energy-usage/?resolution={resolution}&window_start={start}&window_end={end}&for_tz=Europe/Warsaw"
ATTR_BUY_PRICE = "buy_price"
ATTR_SELL_PRICE = "sell_price"
ATTR_HOURS = "hours"
# MQTT related constants
DEFAULT_MQTT_TOPIC_BUY = "energy/forecast/buy"
DEFAULT_MQTT_TOPIC_SELL = "energy/forecast/sell"
CONF_MQTT_ENABLED = "mqtt_enabled"
CONF_MQTT_TOPIC_BUY = "mqtt_topic_buy"
CONF_MQTT_TOPIC_SELL = "mqtt_topic_sell"
CONF_MQTT_48H_MODE = "mqtt_48h_mode"
# Retry mechanism constants
CONF_RETRY_ATTEMPTS = "retry_attempts"
CONF_RETRY_DELAY = "retry_delay"
DEFAULT_RETRY_ATTEMPTS = 3
DEFAULT_RETRY_DELAY = 20 # seconds
MIN_RETRY_ATTEMPTS = 1
MAX_RETRY_ATTEMPTS = 10
MIN_RETRY_DELAY = 5 # seconds
MAX_RETRY_DELAY = 300 # seconds (5 minutes)
# Battery recommendation sensor constants
CONF_BATTERY_ENABLED = "battery_enabled"
CONF_BATTERY_SOC_ENTITY = "battery_soc_entity"
CONF_BATTERY_CAPACITY = "battery_capacity"
CONF_BATTERY_CHARGE_RATE = "battery_charge_rate"
CONF_BATTERY_DISCHARGE_RATE = "battery_discharge_rate"
CONF_BATTERY_MIN_SOC = "battery_min_soc"
CONF_BATTERY_CHARGE_HOURS = "battery_charge_hours"
CONF_BATTERY_DISCHARGE_MULTIPLIER = "battery_discharge_multiplier"
DEFAULT_BATTERY_CAPACITY = 15 # kWh
DEFAULT_BATTERY_CHARGE_RATE = 28 # %/h
DEFAULT_BATTERY_DISCHARGE_RATE = 10 # %/h
DEFAULT_BATTERY_MIN_SOC = 20 # %
DEFAULT_BATTERY_CHARGE_HOURS = 6 # number of cheapest hours to charge
DEFAULT_BATTERY_DISCHARGE_MULTIPLIER = 1.3 # discharge when price >= avg_charge_price * multiplier
MIN_BATTERY_CAPACITY = 1
MAX_BATTERY_CAPACITY = 100
MIN_BATTERY_CHARGE_RATE = 5
MAX_BATTERY_CHARGE_RATE = 100
MIN_BATTERY_DISCHARGE_RATE = 5
MAX_BATTERY_DISCHARGE_RATE = 50
MIN_BATTERY_MIN_SOC = 5
MAX_BATTERY_MIN_SOC = 50
MIN_BATTERY_CHARGE_HOURS = 3
MAX_BATTERY_CHARGE_HOURS = 12
MIN_BATTERY_DISCHARGE_MULTIPLIER = 1.1
MAX_BATTERY_DISCHARGE_MULTIPLIER = 2.0