Update config_flow.py
This commit is contained in:
@ -1,22 +1,21 @@
|
|||||||
"""Config flow for Pstryk Energy integration - Enhanced version."""
|
"""Config flow for Pstryk Energy integration - Enhanced version."""
|
||||||
from homeassistant import config_entries
|
from homeassistant import config_entries
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
import aiohttp
|
|
||||||
import asyncio
|
import asyncio
|
||||||
import async_timeout
|
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from homeassistant.util import dt as dt_util
|
from homeassistant.util import dt as dt_util
|
||||||
from homeassistant.core import callback
|
from homeassistant.core import callback
|
||||||
from homeassistant.components import mqtt
|
from homeassistant.components import mqtt
|
||||||
from homeassistant.exceptions import HomeAssistantError
|
from homeassistant.exceptions import HomeAssistantError
|
||||||
|
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
||||||
from .const import (
|
from .const import (
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
API_URL,
|
API_URL,
|
||||||
API_TIMEOUT,
|
API_TIMEOUT,
|
||||||
DEFAULT_MQTT_TOPIC_BUY,
|
DEFAULT_MQTT_TOPIC_BUY,
|
||||||
DEFAULT_MQTT_TOPIC_SELL,
|
DEFAULT_MQTT_TOPIC_SELL,
|
||||||
CONF_MQTT_ENABLED,
|
CONF_MQTT_ENABLED,
|
||||||
CONF_MQTT_TOPIC_BUY,
|
CONF_MQTT_TOPIC_BUY,
|
||||||
CONF_MQTT_TOPIC_SELL,
|
CONF_MQTT_TOPIC_SELL,
|
||||||
CONF_MQTT_48H_MODE,
|
CONF_MQTT_48H_MODE,
|
||||||
CONF_RETRY_ATTEMPTS,
|
CONF_RETRY_ATTEMPTS,
|
||||||
@ -161,19 +160,19 @@ class PstrykConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
now = dt_util.utcnow()
|
now = dt_util.utcnow()
|
||||||
start_utc = now.strftime("%Y-%m-%dT%H:%M:%SZ")
|
start_utc = now.strftime("%Y-%m-%dT%H:%M:%SZ")
|
||||||
end_utc = (now + timedelta(hours=1)).strftime("%Y-%m-%dT%H:%M:%SZ")
|
end_utc = (now + timedelta(hours=1)).strftime("%Y-%m-%dT%H:%M:%SZ")
|
||||||
|
|
||||||
endpoint = f"pricing/?resolution=hour&window_start={start_utc}&window_end={end_utc}"
|
endpoint = f"pricing/?resolution=hour&window_start={start_utc}&window_end={end_utc}"
|
||||||
url = f"{API_URL}{endpoint}"
|
url = f"{API_URL}{endpoint}"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
async with aiohttp.ClientSession() as session:
|
session = async_get_clientsession(self.hass)
|
||||||
async with async_timeout.timeout(API_TIMEOUT):
|
async with asyncio.timeout(API_TIMEOUT):
|
||||||
resp = await session.get(
|
resp = await session.get(
|
||||||
url,
|
url,
|
||||||
headers={"Authorization": api_key, "Accept": "application/json"}
|
headers={"Authorization": api_key, "Accept": "application/json"}
|
||||||
)
|
)
|
||||||
return resp.status == 200
|
return resp.status == 200
|
||||||
except (aiohttp.ClientError, asyncio.TimeoutError):
|
except (Exception, asyncio.TimeoutError):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
async def _check_mqtt_configuration(self):
|
async def _check_mqtt_configuration(self):
|
||||||
@ -201,7 +200,7 @@ class PstrykOptionsFlowHandler(config_entries.OptionsFlow):
|
|||||||
|
|
||||||
def __init__(self, config_entry):
|
def __init__(self, config_entry):
|
||||||
"""Initialize options flow."""
|
"""Initialize options flow."""
|
||||||
self.config_entry = config_entry
|
super().__init__(config_entry)
|
||||||
|
|
||||||
async def async_step_init(self, user_input=None):
|
async def async_step_init(self, user_input=None):
|
||||||
"""Manage the options - single page for quick configuration."""
|
"""Manage the options - single page for quick configuration."""
|
||||||
|
|||||||
Reference in New Issue
Block a user