ha(H4): исправления по ревью — маскировка ключа в дампе, reload-repair, reconfigure сохраняет поля
- major: diagnostics больше не содержит полный lanip_key (esp_home — маска, entry_data redacted); ключ для ESPHome — через reconfigure/CLI; план §3 синхронизирован; дамп при незагруженной записи не падает - reconfigure: сохраняет listen_port/keepalive_ms и текущие overrides/ temp_step; превью-дефолты подхватывают значения записи - repair fix-flow: подтверждение перезагружает запись (issue снимается только когда сессия вышла из key_error; иначе создаётся заново) - key_issue_id helper, использование async_remove_issue (мёртвый код), CONF_EMAIL/PASSWORD в TO_REDACT, placeholders в fix_flow, тест плейсхолдеров ru - тесты обновлены (47 components)
This commit is contained in:
@@ -42,6 +42,10 @@ class FglairRuntime:
|
||||
conversions: ConversionSet
|
||||
|
||||
|
||||
def key_issue_id(dsn: str) -> str:
|
||||
return f"key_mismatch_{dsn}"
|
||||
|
||||
|
||||
def _writable_props(template: Template):
|
||||
for info in template_info(template):
|
||||
if info.kind != ValueKind.STRING:
|
||||
@@ -56,6 +60,7 @@ class FglairCoordinator(DataUpdateCoordinator[FglairData]):
|
||||
hass: HomeAssistant,
|
||||
client: FglairClient,
|
||||
conversions: ConversionSet,
|
||||
entry_id: str,
|
||||
) -> None:
|
||||
super().__init__(
|
||||
hass,
|
||||
@@ -65,7 +70,8 @@ class FglairCoordinator(DataUpdateCoordinator[FglairData]):
|
||||
)
|
||||
self.client = client
|
||||
self.conversions = conversions
|
||||
self.key_issue_id = f"key_mismatch_{client.data[CONF_DSN]}"
|
||||
self.entry_id = entry_id
|
||||
self.key_issue_id = key_issue_id(client.data[CONF_DSN])
|
||||
self._synced = False
|
||||
self._sync_task: Optional[asyncio.Task] = None
|
||||
self._unsubs = [
|
||||
@@ -144,6 +150,7 @@ class FglairCoordinator(DataUpdateCoordinator[FglairData]):
|
||||
or self.client.data[CONF_DSN],
|
||||
"host": str(self.client.data.get(CONF_HOST, "?")),
|
||||
},
|
||||
data={"entry_id": self.entry_id},
|
||||
)
|
||||
else:
|
||||
ir.async_delete_issue(self.hass, DOMAIN, self.key_issue_id)
|
||||
|
||||
Reference in New Issue
Block a user