Skip to content

DALI: live device controls on device, group and bus pages - #1230

Closed
evgeny-boger wants to merge 1 commit into
split/dali-host-seamsfrom
split/dali-live-controls
Closed

DALI: live device controls on device, group and bus pages#1230
evgeny-boger wants to merge 1 commit into
split/dali-host-seamsfrom
split/dali-live-controls

Conversation

@evgeny-boger

Copy link
Copy Markdown
Member

Часть серии PR, на которые разбит #1223. Зависит от #1226 (использует sendCellValueUpdate оттуда) — ветка от split/dali-host-seams, мержить после него; после мержа #1226 base переключается на master.

Что сделано

Ввод лампы в эксплуатацию — половина дела; вторая — увидеть, как она реагирует. Страницы DALI получают живые контролы демона:

  • устройствоDeviceControls для его mqtt_id: полоса «избранных» контролов (уровень, цвет, цветовая температура, вкл/выкл — что нужно первым делом), остальные — за кнопкой «Все элементы управления»; на телефоне — выдвижная панель снизу;
  • группа — виртуальное устройство группы <bus>_group_NN (GroupStore.controlsMqttId, формула повторяет GroupVirtualDevice в wb-mqtt-dali);
  • шина — широковещательное устройство <bus>_broadcast: все лампы разом, что и хочется попробовать первым после сканирования.

Полоса переиспользует Cell со страницы «Устройства» — контрол ведёт себя ровно так же, как там. Отбор избранных — чистая функция featuredControls с тестом.

Заголовок вкладки. TabToolbar показывает, что открыто (устройство и его шина, группа, шина): на мобильных дерево скрыто, пока открыта страница, и больше ничто этого не говорило. Кнопки тулбара на узких экранах переносятся, а не накладываются друг на друга (.dali-tabToolbar-actions .form-buttonGroup { flex-wrap: wrap }). CollapsiblePanel получил тест на переключение.

Ключи i18n: all-controls, state-on, state-off.

Скриншоты

См. #1223 (страница устройства с полосой контролов, группа, мобильная версия).

Тесты

featured.test.ts (отбор избранных контролов), device-store-controls.test.ts (mqttId из конфига), group-store-mqtt-id.test.ts (формула виртуального устройства), collapsible-panel-toggle.test.tsx. tsc, eslint, vitest по stores/dali, странице DALI и панели — чисто.

🤖 Generated with Claude Code

Commissioning a lamp is one half of the job; the other is seeing it react.
Each device page now carries the daemon's live controls for that device —
a featured strip of what one reaches for first (level, colour, colour
temperature, on/off) and the rest behind "All controls"; a group page shows
the group's virtual device, a bus page the bus's broadcast device. The
strip reuses the dashboard Cell components, so a control behaves exactly as
it does on the Devices page.

The tab toolbar gains the page's title: on mobile the tree is hidden while
a page is open, so nothing else said what was on screen. Its buttons wrap
on phone widths instead of stacking on top of each other.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 duplication

Metric Results
Duplication 0

View in Codacy

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.

@evgeny-boger

Copy link
Copy Markdown
Member Author

Заменён на #1233: этот PR стоял поверх #1226, а #1226 закрыт — его host seams нужны только WASM-редактору и входят в #1223.

В #1233 та же ветка живых контролов, но от master, и из #1226 взят только хелпер sendCellValueUpdate. Закрываю без мержа, ветку split/dali-live-controls оставляю.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant