|
25 | 25 | CONF_METER_INTERVAL,
|
26 | 26 | CONF_MONITORED_VARIABLES,
|
27 | 27 | CONF_MONITORED_VARIABLES_AUTOCONFIG,
|
| 28 | + CONF_NUM_CONNECTORS, |
28 | 29 | CONF_SKIP_SCHEMA_VALIDATION,
|
29 | 30 | CONF_FORCE_SMART_CHARGING,
|
30 | 31 | CONF_HOST,
|
|
44 | 45 | DEFAULT_METER_INTERVAL,
|
45 | 46 | DEFAULT_MONITORED_VARIABLES,
|
46 | 47 | DEFAULT_MONITORED_VARIABLES_AUTOCONFIG,
|
| 48 | + DEFAULT_NUM_CONNECTORS, |
47 | 49 | DEFAULT_SKIP_SCHEMA_VALIDATION,
|
48 | 50 | DEFAULT_FORCE_SMART_CHARGING,
|
49 | 51 | DEFAULT_HOST,
|
@@ -192,6 +194,36 @@ async def async_migrate_entry(hass, config_entry: ConfigEntry):
|
192 | 194 | config_entry, data=new_data, minor_version=0, version=2
|
193 | 195 | )
|
194 | 196 |
|
| 197 | + if config_entry.version == 2 and config_entry.minor_version == 0: |
| 198 | + data = {**config_entry.data} |
| 199 | + cpids = data.get(CONF_CPIDS, []) |
| 200 | + |
| 201 | + changed = False |
| 202 | + for idx, cp_map in enumerate(cpids): |
| 203 | + if not isinstance(cp_map, dict) or not cp_map: |
| 204 | + continue |
| 205 | + cp_id, cp_data = next(iter(cp_map.items())) |
| 206 | + if CONF_NUM_CONNECTORS not in cp_data: |
| 207 | + cp_data = {**cp_data, CONF_NUM_CONNECTORS: DEFAULT_NUM_CONNECTORS} |
| 208 | + cpids[idx] = {cp_id: cp_data} |
| 209 | + changed = True |
| 210 | + |
| 211 | + if changed: |
| 212 | + data[CONF_CPIDS] = cpids |
| 213 | + hass.config_entries.async_update_entry( |
| 214 | + config_entry, |
| 215 | + data=data, |
| 216 | + version=2, |
| 217 | + minor_version=1, |
| 218 | + ) |
| 219 | + else: |
| 220 | + hass.config_entries.async_update_entry( |
| 221 | + config_entry, |
| 222 | + data=data, |
| 223 | + version=2, |
| 224 | + minor_version=1, |
| 225 | + ) |
| 226 | + |
195 | 227 | _LOGGER.info(
|
196 | 228 | "Migration to configuration version %s.%s successful",
|
197 | 229 | config_entry.version,
|
|
0 commit comments