DALI: keep asking for a group whose members are still initializing - #1229
Draft
evgeny-boger wants to merge 2 commits into
Draft
DALI: keep asking for a group whose members are still initializing#1229evgeny-boger wants to merge 2 commits into
evgeny-boger wants to merge 2 commits into
Conversation
GetGroup merges the parameters of the group's members that have finished initializing; while none has — a cold boot with a large bus — it answers an empty schema. The store cached that answer as "this group has no settings", and the group page stayed a controls-only stub for the whole session (seen on real hardware after a memo reset). An empty answer now marks the store as awaiting members: the page says so and re-asks every 3 s until the form fills in. A failed GetGroup gets a retry instead of a blank page. The existing "skips if already loaded" fixture had to become non-empty — an empty schema is precisely the case that is no longer cached. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Duplication | 0 |
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
The new retry-load key duplicated dali.buttons.retry word for word — and had landed in the svg-dashboard block besides, so the button rendered the raw key instead of a caption. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Что даёт
Страница группы DALI больше не залипает пустой, если открыть её, пока участники группы ещё инициализируются: она говорит, что происходит, и заполняется сама.
Почему пустой ответ законен
Editor/GetGroupсливает схему параметров только по инициализированным участникам группы (load_group_info). Пока ни один не поднялся, демон честно отвечает пустой схемой — это «пока нечего показать», а не «у группы нет настроек». Стор кэшировал этот ответ как конфигурацию группы, и вкладка оставалась пустой всё время, пока открыта страница DALI.GroupStore.isAwaitingMembers: ответ с пустымpropertiesне считается загруженным, следующийload()спрашивает снова;GetGroupу демона чисто внутренний, шину не трогает), форма заполняется без перезагрузки;GetGroup(занятая шина, таймаут RPC) вместо пустой страницы даёт предупреждение с кнопкой «Повторить».Как воспроизвести и проверить
groupsвGetList, поэтому страница должна быть открыта до перезапуска демона.systemctl restart wb-mqtt-dali.Парно к wirenboard/wb-mqtt-dali#225: там пустой ответ о группе подтягивает инициализацию балластов вперёд, вместо ожидания бэкоффа 5 с → 60 с.
Тикет: SOFT-7444
Скриншоты
Стенд WB8 с реальным WB-DALI, группа 0 на шине 2 (один участник — «DALI 1»). Порядок из раздела выше: открыть страницу DALI, дождаться дерева, группу не открывать,
systemctl restart wb-mqtt-dali, кликнуть по «Группа 0» примерно через 4 с.«До» — homeui
2.250.4~exp~split+dali+live+controls+v2~2~gaf772ffb(master + живые контролы, без этого исправления); «после» —2.250.0~exp~feat+dali+device+controls~16~g90254100. Демонwb-mqtt-dali 1.27.0~exp~soft+dali+host+apis~33~g591221eв обоих случаях.До: +14 с после перезапуска демона — область параметров пуста
До: +81 с, всё ещё пусто, хотя контролы сверху уже показывают 100 % / 6535 К — участники давно инициализировались
После: +4 с — «Устройства группы ещё инициализируются…»
После: +7 с — параметры заполнились сами, без действий пользователя
Если кликнуть по группе в первую секунду после перезапуска, попадаешь в третье состояние, которое добавляет этот PR: «Не удалось прочитать настройки группы…» с кнопкой «Повторить» — RPC демона ещё не поднялся. Скриншота нет.
🤖 Generated with Claude Code