Reference implementation: webclient/.
webclient/index.php - page shell.webclient/ui.php - UI component preview/demo shell.webclient/src/js/index.js - initializes globals, API client, HUD, routing.webclient/src/js/routes.js - hash routes.webclient/src/js/sh/SmartHomeApi.js - callback-style API client.webclient/proxy.php - local proxy to backend API.npm start runs Gulp.webclient/src/scss/main.scss.webclient/src/js/index.js.webclient/dist/js/main.js.webclient/dist/css/main.css.The current client relies on global mutable objects:
DataProviderFavoritesStoreToastsHelperModalsconfirmPopupadvancedSelecteditableStringScreensThe new Vue client should replace these with explicit imports, stores, composables, and component-local state.
| Route | Current Module | Purpose |
|---|---|---|
/ |
routes.js |
Redirects to /areas/favorites. |
/devices |
devices-list-screen.js |
Registered devices list with live state. |
/devices/scanning |
devices-scanning-screen.js |
Network scan and setup entry point. |
/scripts/scopes |
scripts-scopes-screen.js |
Control script scopes list and enable/disable. |
/scripts/regular |
scripts-regular-screen.js |
Regular scripts list and enable/disable. |
/scripts/actions |
scripts-actions-screen.js |
Action scripts grid and run buttons. |
/areas/tree |
areas-tree-screen.js |
Areas tree with details/devices/actions/favorites. |
/areas/favorites |
areas-favorites-screen.js |
Favorite areas dashboard. |
| fallback | routes.js |
404 screen. |
Devices:
Scripts:
Areas:
GET /api/v1/devices/id/{id}/status.FavoritesStore.Screens.reinit() after mutations.