24
24
DEFAULT_QUICK_VETO_DURATION ,
25
25
DEFAULT_HOLIDAY_DURATION ,
26
26
)
27
- from . import OPTION_UPDATE_INTERVAL_DAILY , DEFAULT_UPDATE_INTERVAL_DAILY
27
+ from . import OPTION_UPDATE_INTERVAL_DAILY
28
28
29
29
from .const import (
30
- DEFAULT_COUNTRY ,
31
30
DEFAULT_REFRESH_DELAY ,
32
31
DEFAULT_TIME_PROGRAM_OVERWRITE ,
33
32
DEFAULT_UPDATE_INTERVAL ,
101
100
},
102
101
)
103
102
103
+ OPTIONS_SCHEMA = vol .Schema (
104
+ {
105
+ vol .Required (
106
+ OPTION_UPDATE_INTERVAL ,
107
+ default = DEFAULT_UPDATE_INTERVAL ,
108
+ ): positive_int ,
109
+ vol .Optional (
110
+ OPTION_UPDATE_INTERVAL_DAILY ,
111
+ ): positive_int ,
112
+ vol .Required (
113
+ OPTION_REFRESH_DELAY ,
114
+ default = DEFAULT_REFRESH_DELAY ,
115
+ ): positive_int ,
116
+ vol .Required (
117
+ OPTION_DEFAULT_QUICK_VETO_DURATION ,
118
+ default = DEFAULT_QUICK_VETO_DURATION ,
119
+ ): positive_int ,
120
+ vol .Required (
121
+ OPTION_DEFAULT_HOLIDAY_DURATION ,
122
+ default = DEFAULT_HOLIDAY_DURATION ,
123
+ ): positive_int ,
124
+ vol .Required (
125
+ OPTION_DEFAULT_HOLIDAY_SETPOINT ,
126
+ default = DEFAULT_HOLIDAY_SETPOINT ,
127
+ ): vol .All (vol .Coerce (float ), vol .Clamp (min = 0 , max = 30 )),
128
+ vol .Required (
129
+ OPTION_DEFAULT_MANUAL_COOLING_DURATION ,
130
+ default = DEFAULT_MANUAL_COOLING_DURATION ,
131
+ ): positive_int ,
132
+ vol .Required (
133
+ OPTION_TIME_PROGRAM_OVERWRITE ,
134
+ default = DEFAULT_TIME_PROGRAM_OVERWRITE ,
135
+ ): bool ,
136
+ vol .Required (
137
+ OPTION_DEFAULT_DHW_LEGIONELLA_PROTECTION_TEMPERATURE ,
138
+ default = DEFAULT_DHW_LEGIONELLA_PROTECTION_TEMPERATURE ,
139
+ ): vol .All (vol .Coerce (float ), vol .Clamp (min = 0 , max = 100 )),
140
+ vol .Required (
141
+ OPTION_FETCH_RTS ,
142
+ default = DEFAULT_FETCH_RTS ,
143
+ ): bool ,
144
+ vol .Required (
145
+ OPTION_FETCH_MPC ,
146
+ default = DEFAULT_FETCH_MPC ,
147
+ ): bool ,
148
+ vol .Required (
149
+ OPTION_FETCH_AMBISENSE_ROOMS ,
150
+ default = DEFAULT_FETCH_AMBISENSE_ROOMS ,
151
+ ): bool ,
152
+ vol .Required (
153
+ OPTION_FETCH_ENERGY_MANAGEMENT ,
154
+ default = DEFAULT_FETCH_ENERGY_MANAGEMENT ,
155
+ ): bool ,
156
+ vol .Required (
157
+ OPTION_FETCH_EEBUS ,
158
+ default = DEFAULT_FETCH_EEBUS ,
159
+ ): bool ,
160
+ }
161
+ )
162
+
104
163
105
164
async def validate_input (hass : HomeAssistant , data : dict ) -> str :
106
165
async with MyPyllantAPI (** data ) as api :
@@ -114,133 +173,12 @@ async def async_step_init(
114
173
) -> FlowResult :
115
174
"""Manage the options."""
116
175
if user_input is not None :
117
- return self .async_create_entry (title = "" , data = user_input )
118
-
119
- config_country = self .config_entry .data .get (OPTION_COUNTRY , DEFAULT_COUNTRY )
120
- config_brand = self .config_entry .data .get (OPTION_BRAND , DEFAULT_BRAND )
176
+ return self .async_create_entry (data = user_input )
121
177
122
178
return self .async_show_form (
123
179
step_id = "init" ,
124
- data_schema = vol .Schema (
125
- {
126
- vol .Required (
127
- OPTION_UPDATE_INTERVAL ,
128
- default = self .config_entry .options .get (
129
- OPTION_UPDATE_INTERVAL , DEFAULT_UPDATE_INTERVAL
130
- ),
131
- ): positive_int ,
132
- vol .Optional (
133
- OPTION_UPDATE_INTERVAL_DAILY ,
134
- default = self .config_entry .options .get (
135
- OPTION_UPDATE_INTERVAL_DAILY , DEFAULT_UPDATE_INTERVAL_DAILY
136
- ),
137
- ): positive_int ,
138
- vol .Required (
139
- OPTION_REFRESH_DELAY ,
140
- default = self .config_entry .options .get (
141
- OPTION_REFRESH_DELAY , DEFAULT_REFRESH_DELAY
142
- ),
143
- ): positive_int ,
144
- vol .Required (
145
- OPTION_DEFAULT_QUICK_VETO_DURATION ,
146
- default = self .config_entry .options .get (
147
- OPTION_DEFAULT_QUICK_VETO_DURATION ,
148
- DEFAULT_QUICK_VETO_DURATION ,
149
- ),
150
- ): positive_int ,
151
- vol .Required (
152
- OPTION_DEFAULT_HOLIDAY_DURATION ,
153
- default = self .config_entry .options .get (
154
- OPTION_DEFAULT_HOLIDAY_DURATION ,
155
- DEFAULT_HOLIDAY_DURATION ,
156
- ),
157
- ): positive_int ,
158
- vol .Required (
159
- OPTION_DEFAULT_HOLIDAY_SETPOINT ,
160
- default = self .config_entry .options .get (
161
- OPTION_DEFAULT_HOLIDAY_SETPOINT ,
162
- DEFAULT_HOLIDAY_SETPOINT ,
163
- ),
164
- ): vol .All (vol .Coerce (float ), vol .Clamp (min = 0 , max = 30 )),
165
- vol .Required (
166
- OPTION_DEFAULT_MANUAL_COOLING_DURATION ,
167
- default = self .config_entry .options .get (
168
- OPTION_DEFAULT_MANUAL_COOLING_DURATION ,
169
- DEFAULT_MANUAL_COOLING_DURATION ,
170
- ),
171
- ): positive_int ,
172
- vol .Required (
173
- OPTION_TIME_PROGRAM_OVERWRITE ,
174
- default = self .config_entry .options .get (
175
- OPTION_TIME_PROGRAM_OVERWRITE ,
176
- DEFAULT_TIME_PROGRAM_OVERWRITE ,
177
- ),
178
- ): bool ,
179
- vol .Required (
180
- OPTION_DEFAULT_DHW_LEGIONELLA_PROTECTION_TEMPERATURE ,
181
- default = self .config_entry .options .get (
182
- OPTION_DEFAULT_DHW_LEGIONELLA_PROTECTION_TEMPERATURE ,
183
- DEFAULT_DHW_LEGIONELLA_PROTECTION_TEMPERATURE ,
184
- ),
185
- ): float ,
186
- vol .Required (
187
- OPTION_BRAND ,
188
- default = self .config_entry .options .get (
189
- OPTION_BRAND , config_brand
190
- ),
191
- ): selector .SelectSelector (
192
- selector .SelectSelectorConfig (
193
- options = _BRANDS_OPTIONS ,
194
- mode = selector .SelectSelectorMode .LIST ,
195
- ),
196
- ),
197
- vol .Optional (
198
- OPTION_COUNTRY ,
199
- default = self .config_entry .options .get (
200
- OPTION_COUNTRY , config_country
201
- ),
202
- ): selector .SelectSelector (
203
- selector .SelectSelectorConfig (
204
- options = _COUNTRIES_OPTIONS ,
205
- mode = selector .SelectSelectorMode .DROPDOWN ,
206
- ),
207
- ),
208
- vol .Required (
209
- OPTION_FETCH_RTS ,
210
- default = self .config_entry .options .get (
211
- OPTION_FETCH_RTS ,
212
- DEFAULT_FETCH_RTS ,
213
- ),
214
- ): bool ,
215
- vol .Required (
216
- OPTION_FETCH_MPC ,
217
- default = self .config_entry .options .get (
218
- OPTION_FETCH_MPC ,
219
- DEFAULT_FETCH_MPC ,
220
- ),
221
- ): bool ,
222
- vol .Required (
223
- OPTION_FETCH_AMBISENSE_ROOMS ,
224
- default = self .config_entry .options .get (
225
- OPTION_FETCH_AMBISENSE_ROOMS ,
226
- DEFAULT_FETCH_AMBISENSE_ROOMS ,
227
- ),
228
- ): bool ,
229
- vol .Required (
230
- OPTION_FETCH_ENERGY_MANAGEMENT ,
231
- default = self .config_entry .options .get (
232
- OPTION_FETCH_ENERGY_MANAGEMENT ,
233
- DEFAULT_FETCH_ENERGY_MANAGEMENT ,
234
- ),
235
- ): bool ,
236
- vol .Required (
237
- OPTION_FETCH_EEBUS ,
238
- default = self .config_entry .options .get (
239
- OPTION_FETCH_EEBUS ,
240
- DEFAULT_FETCH_EEBUS ,
241
- ),
242
- ): bool ,
243
- }
180
+ data_schema = self .add_suggested_values_to_schema (
181
+ OPTIONS_SCHEMA , self .config_entry .options
244
182
),
245
183
)
246
184
0 commit comments