petr.polezhaev
43d3ff7dea
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)
2026-09-29 14:29:36 +03:00
petr.polezhaev
57ee555704
ha(H4): repair key_mismatch, диагностика для ESPHome, reconfigure, переводы
...
- repairs: issue key_mismatch (ERROR, fixable) при состоянии key_error,
ConfirmRepairFlow, снятие issue при online/unload/remove
- config flow: async_step_reconfigure (меню, prefill ручной формы,
unique_id_mismatch, update_reload_and_abort) — путь «перепровижинировать»
- diagnostics: config/esp_home (dsn/lanip_key/key_id/host для secrets.yaml)
+ esp_home_masked и redacted entry_data, runtime-снимок значений
(raw/display) из кэша ядра
- translations: issues.key_mismatch (title/description/fix_flow) en/ru,
abort unique_id_mismatch/reconfigure_successful; тест согласованности
strings↔en↔ru
- FglairClient.events_dropped; mock_ac: параметр key_id в фикстуре
- тесты: diagnostics, repairs issue+fix-flow, reconfigure (успех/чужое
устройство), translations (45 components)
2026-09-29 14:06:39 +03:00
petr.polezhaev
dee5819743
ha(H3): ниты повторного ревью — пустой диапазон, merge значений, чистка
...
- R1: config flow отклоняет пустое пересечение override и таблицы
(достижимый диапазон), + тест
- R2: async_sync_now перечитывает снимок без await (события не затираются)
- R3: translation_key климата убран (FglairEntity принимает None)
- R4: caps==0 «не сообщено» покрыт тестом
- R5: SWING_HORIZONTAL_MODES удалён (общий SWING_MODES)
2026-09-29 13:54:55 +03:00
petr.polezhaev
d86ed60b51
ha(H3): исправления по ревью — turn_on/off, кламп конверсий, reload, гонка ONLINE
...
- M1: supported_features += TURN_ON/TURN_OFF (сервисы в HA 2026.9),
async_turn_off; удалён мёртвый _enable_turn_on_off_backwards_compat;
тест turn_on/turn_off → operation_mode 1/0
- M2: достижимый диапазон = override ∩ raw-таблица шаблона; raw клампится
в from_display, clamp() по достижимому диапазону (молчаливый кламп ядра
устранён); тесты scaled override
- M3: mock_ac сбрасывает crypto/active на DELETE; тест reload → снова ONLINE
- гонка: async_sync_now больше не перезаписывает данные устаревшим снимком
(ONLINE мог потеряться при быстром старте) — стабильность 4×37 тестов
- m1: превью-текст учитывает выбранный в форме шаблон; m2: убрана
недостижимая проверка шага; m3: удалён мёртвый translation_key climate
- m4: бит 21 op_status (шаблон B); m5: lru_cache template_info/prop_info;
m6: operation_mode=1 без истории → hvac_mode unknown; m7: ошибка команды
→ HomeAssistantError; m8: unload возвращает False, не разбирая runtime
- n2: уточнены описания data_description в переводах
2026-09-29 13:41:20 +03:00
petr.polezhaev
3e0b6b3653
ha(H3): превью шаблона с конверсиями; climate и сущности
...
- config flow: шаг preview (шаблон A/B/F, диапазон/шаг уставки, линейные
коэффициенты num/den/offset, текст-превью по данным trial: hvac/fan/
swing/capabilities/текущая температура)
- coordinator: push-driven DataUpdateCoordinator (снимок кэша, доступность
online/recovering, первичный GET-батч, один batch_commit на действие)
- overrides.py: ConversionSet (ручные линейные конверсии и диапазон поверх
таблиц ядра, применяются в HA)
- entity.py: DeviceInfo/unique_id/доступность, capabilities-фильтры
- climate: hvac/fan/swing/vertical+horizontal swing/preset ECO-BOOST,
уставка 16-30 °C (шаг по шаблону), current_temperature
- sensor: room_temperature, error_code, connection_state (диагностика)
- binary_sensor: connectivity + флаги op_status (PROTOCOL §8.4)
- switch: 8 флагов-свойств; select: положения заслонок 0..N-1
- тесты: превью/конверсии/ошибки диапазона, сущности против mock_ac
(снимок, команды, capabilities-фильтр, ручная конверсия), ConversionSet
- mock_ac: --set NAME=VALUE (0b/0x) для сценариев
- план: demand_control отложен (семантика не зафиксирована)
2026-09-29 12:44:34 +03:00