3
3
import datetime
4
4
import logging
5
5
import voluptuous as vol
6
+ from aiohttp import ClientError
6
7
7
8
from homeassistant .config_entries import SOURCE_IMPORT , ConfigEntry
8
- from homeassistant .const import CONF_EMAIL , CONF_PASSWORD , SERVICE_RELOAD
9
+ from homeassistant .const import SERVICE_RELOAD
9
10
from homeassistant .helpers .typing import HomeAssistantType
10
11
from homeassistant .helpers import config_entry_oauth2_flow
12
+ from homeassistant .exceptions import ConfigEntryNotReady
11
13
12
- from .const import DOMAIN , DAIKIN_API , DAIKIN_DEVICES , CONF_TOKENSET
14
+ from .const import DOMAIN , DAIKIN_API , DAIKIN_DEVICES
13
15
14
16
from .daikin_api import DaikinApi
15
17
16
18
_LOGGER = logging .getLogger (__name__ )
17
19
18
- ENTRY_IS_SETUP = "daikin_entry_is_setup"
19
-
20
20
MIN_TIME_BETWEEN_UPDATES = datetime .timedelta (seconds = 15 )
21
21
SCAN_INTERVAL = datetime .timedelta (seconds = 30 )
22
22
30
30
31
31
COMPONENT_TYPES = ["climate" , "sensor" , "water_heater" , "switch" , "select" ]
32
32
33
- CONFIG_SCHEMA = vol .Schema (
34
- vol .All (
35
- {
36
- DOMAIN : vol .Schema (
37
- {vol .Required (CONF_EMAIL ): str , vol .Required (CONF_PASSWORD ): str }
38
- )
39
- }
40
- ),
41
- extra = vol .ALLOW_EXTRA ,
42
- )
43
-
44
33
async def async_setup (hass , config ):
45
34
"""Setup the Daikin Residential component."""
46
35
@@ -50,8 +39,6 @@ async def _handle_reload(service):
50
39
try :
51
40
daikin_api = hass .data [DOMAIN ][DAIKIN_API ]
52
41
data = daikin_api ._config_entry .data .copy ()
53
- await daikin_api .retrieveAccessToken (data [CONF_EMAIL ], data [CONF_PASSWORD ])
54
- data [CONF_TOKENSET ] = daikin_api .tokenSet
55
42
hass .config_entries .async_update_entry (
56
43
entry = daikin_api ._config_entry , data = data
57
44
)
@@ -85,6 +72,12 @@ async def async_setup_entry(hass: HomeAssistantType, entry: ConfigEntry):
85
72
)
86
73
87
74
daikin_api = DaikinApi (hass , entry , implementation )
75
+
76
+ try :
77
+ await daikin_api .async_get_access_token ()
78
+ except ClientError as err :
79
+ raise ConfigEntryNotReady from err
80
+
88
81
await daikin_api .getCloudDeviceDetails ()
89
82
90
83
devices = await daikin_api .getCloudDevices ()
0 commit comments