The dashboard and the interface
A full walk through the shell and the dashboard you can reach in Stable 2.0.55: onboarding, the three widgets, custom ordering, stats and bridge cards, bulk actions, Quick Navigation, health refresh, language and theme, System Logs, and the version mismatch and WebSocket warnings.
Learn the fixed shell and the pages you can reach
The React interface in Stable 2.0.55 is made of a top app bar, the main content, a footer and a language switcher in the bottom right. At desktop width the navigation icons are shown directly; on a narrower screen the same items move into a drawer on the right. Click the logo or Dashboard to return to the root route /. The top bar also holds the Status Indicator, the light/dark toggle and the entry point for System Logs.
| Route | Page | Main purpose |
|---|---|---|
/ | Dashboard | Overview, onboarding, widgets and everyday actions |
/bridges | Bridges | The full bridge list, creation, import and export, and per-bridge actions |
/bridges/create | Create Bridge | Create from a template plus the full form or JSON |
/bridges/area-setup | Area Setup | Create bridges in bulk by HA area |
/devices | Devices | Search entities, review mappings and failed items |
/standalone-devices | Standalone Devices | Review Server Mode devices, which still have experimental limits in Stable |
/network-map | Network Map | Bridge, fabric and topology views |
/health | Health | Detailed service, controller, network and device health diagnostics |
/startup | Startup Order | Bridge startup precedence |
/labels | Filter Reference | HA label and area reference |
/lock-credentials | Lock Credentials | Lock credential management; the contents are sensitive, so never screenshot or share them |
/plugins | Plugins | Experimental plugin management and status |
/settings | Settings | System settings, updates and other operations entry points |
An unknown route lands on Not Found. "Reachable" only means that Stable 2.0.55 registers the page; it does not mean every feature on that page has the same maturity. The Plugins and Standalone Devices routes are in Stable, for example, but the features behind them still have to be labeled experimental-in-Stable.
Onboarding when there is no bridge yet
The dashboard starts by calling the detailed health API. If there is no bridge yet, the page does not show the customizable widgets. It shows a welcome card instead, with three ways to create one: Bridge Wizard, Setup by Area and Manual Setup, plus an external Documentation link. These three paths are not maturity levels; they are different setup workflows.
| Entry point | When it fits | Know this before you create |
|---|---|---|
| Bridge Wizard | You want to start from a template, a controller profile and a six-stage guide | You still have to cross-check the filter, the port and the network preflight at the end |
| Setup by Area | Your HA areas are already tidy and you want one bridge per area | It creates several bridges at once and increments the port for each; confirm your resources and controller scale first |
| Manual Setup | You need the full schema, a fine-grained filter or JSON | There are more fields, and you have to understand identity, session and the advanced flags yourself |
Once you have created at least one bridge, the dashboard switches to the widget layout. When at least one fabric appears, a first-success message is shown; after you dismiss it the browser remembers hamh-first-success-dismissed in local storage. That is only a message in the interface, not a commissioning check and not a guarantee of controller compatibility.
Read the status at the top first
Expand the indicator and check the version, uptime, HA connection and WebSocket. With no bridge yet, No Bridges is the expected state.
Choose a workflow
For a first bridge, Bridge Wizard is usually the one to press. Choose Setup by Area only when your HA areas are fully planned, and Manual Setup only when you need the fine-grained schema.
Go back to the dashboard after creating
Confirm that the welcome card has been replaced by Stats, Bridges and Quick Navigation, and that the bridge count matches what you just created.
Verify with status only; do not rush into commissioning
Confirm that HA is Online, that the bridge is running and that the device count is plausible before you move on to commissioning. Do not expose any pairing data while you are still touring the interface.
Show, reorder and reset the three widgets
Once a bridge exists, a Customize Dashboard button appears to the right of the dashboard title. The dialog always manages three widgets: Status Overview, Bridges and Quick Navigation. The eye button toggles visibility, the up and down buttons swap the order, Reset restores the default order and shows everything, and Done closes the dialog.
| Widget ID | UI name | Contents |
|---|---|---|
stats | Status Overview | Four stat cards: bridges, devices, fabrics and the HA connection |
bridges | Bridges | Creation entry points, bulk start, stop and restart, and mini cards ordered by priority |
quickNav | Quick Navigation | Shortcut cards for the pages you use most |
The setting is kept in the current browser under the local storage key hamh-dashboard-widgets. It is not backend bridge configuration, and it does not travel with a Matter Hub backup or sync to every browser. On load the code ignores unknown widgets and adds newly known widgets back into the order; corrupted local storage falls back to the default.
Open Customize Dashboard
Go back to the dashboard root page and press the customize icon to the right of the title. If the icon is not there, first confirm that at least one bridge exists.
Hide the blocks you do not need
Press the eye to the left of a widget. An operations screen, for instance, can keep only Status Overview and Bridges. Hiding a widget does not stop the health refresh or a bridge.
Set the reading order
Use Move up and Move down on the right to bring the block you read most often to the front; the first item cannot move up and the last cannot move down.
Test Reset
If the layout is not what you expected, press Reset to restore
stats → bridges → quickNavwith everything visible, then press Done. This changes nothing in the backend.
Stats, the status indicator and two refresh cadences
The four cards in Status Overview come from api/health/detailed: the total number of bridges (with a running/failed summary), the device count summed across all bridges, the summed fabric count, and the HA connection and uptime. Once you are on the dashboard it refreshes every 15 seconds; the Status Indicator at the top calls api/health separately and refreshes every 30 seconds. The two can therefore disagree for a short while, which is not on its own a reason to conclude that data is corrupted.
| Card / indicator | What clicking does | How to read it |
|---|---|---|
| Bridges | Goes to the Bridges page | The total, plus running/failed; not a controller count |
| Devices | Goes to Devices; the failed chip goes straight to ?showFailed=true | The device count after mapping, summed; look further into the reason behind a failure |
| Fabrics | Goes to Network Map | The fabrics of each bridge, summed; it does not mean the controllers support the same features |
| HA Connection | None | Online or Offline plus the application uptime; it covers only the HA service connection layer |
| The status at the top | Hover or tap for a tooltip | Version, uptime, bridges running, and the combined HA and WebSocket status |
The status icon is error when health is error or unhealthy, or when any bridge is stopped or failed. It can only be warning when health is still healthy but the WebSocket has dropped, or in the healthy fallback where there is no bridge or not every bridge is running; success means every bridge is running and the connections are healthy. With no bridge it shows the matching state instead of pretending that "everything is running".
Bridge mini cards, ordering and bulk actions
The top of the Bridges widget holds Bridge Wizard, Create Bridge and Area Setup, along with Start All, Stop All and Restart All. While a bulk action runs the buttons are disabled, and the code also uses a guard against double clicks; health is fetched again as soon as it finishes. These buttons are real backend actions, not just a change to what the dashboard shows.
The mini cards are ordered by priority, smallest first, with a missing value treated as 100; the #1 and #2 on screen are the current display order. Each card shows an icon, the name, running/stopped/failed, the device count and a non-zero fabric count, and it shows a warning count when there are failed entities. Click a card to open the bridge details.
| Action | Impact | Safe use |
|---|---|---|
| Start All | Tries to start every bridge | Use it after maintenance, and watch for failures instead of clicking repeatedly |
| Stop All | Stops every bridge, and the controllers lose service | Only during a maintenance window you have announced |
| Restart All | Every bridge is briefly interrupted and its service is rebuilt | It should not be your first step for a single device fault |
| Clicking a mini card | Only navigates to that bridge's details | Read the individual statusReason, the failed entities and controller health first |
The nine Quick Navigation shortcuts
Quick Navigation does not replace the full top navigation. It turns the nine destinations you use most in day-to-day operations into cards: Bridges, Area Setup, Devices, Network Map, Health, Startup Order, Lock Credentials, Filter Reference and Settings. Standalone Devices and Plugins are still reachable from the top navigation, but they are not in this set of quick cards.
| Shortcut | When you normally use it |
|---|---|
| Bridges | Checking the full list, importing or exporting, or adding a bridge |
| Area Setup | Creating in bulk once your HA areas are tidy |
| Devices | Searching mappings and reviewing failed devices |
| Network Map | Understanding the bridge and fabric topology |
| Health | Reviewing HA, bridge, controller, session and network diagnostics |
| Startup Order | Managing priority across several bridges |
| Lock Credentials | Managing sensitive lock features; read the security chapter before you touch it |
| Filter Reference | Cross-checking area and label identifiers and filter rules |
| Settings | System, updates, restore and other global settings |
If you hide the Quick Navigation widget, the top navigation still works; on a phone, open the drawer on the right first. A different interface width does not mean a feature has been removed.
Language choices and light/dark
The fixed Language button in the bottom right opens the language list; Stable 2.0.55 ships with English, Deutsch, Français, Español, Italiano, Magyar, Simplified Chinese, Traditional Chinese, Japanese, ไทย, Svenska, Türkçe, Русский and Português (Brasil). Selecting Traditional Chinese maps to zh-TW. Switching affects the interface translation only; it does not change the HA language, a bridge identity or a display name in a controller.
The moon/sun icon at the top switches between dark and light. On the desktop layout the icon is shown directly; on the mobile layout the drawer shows "Dark Mode" or "Light Mode". The theme is a browser UI preference; it does not change a bridge, a device or the contents of a log.
Switch language
Press the Language button in the bottom right and pick your language from the list. If some strings are still untranslated, the translation for that pinned version may not cover them yet; that is not evidence that the backend version is wrong. Note: the Chinese edition of this guide walks through Traditional Chinese here; the steps are the same for any entry in the list.
Choose a theme
On the desktop layout press the theme icon at the top; on the mobile layout open the menu on the right and pick Dark or Light Mode. Check the contrast and the readability.
Tell browser preferences apart from backend data
When you check from a different browser, the language, the widgets or the theme may differ. Do not read that difference as a lost backup.
Redact sensitive content when you report a translation issue
Give only the pinned version, where the string appears and the wording you expect; do not attach full System Logs, live URLs or commissioning screens.
The System Logs dialog: filter, search, refresh and clear
The Bug Report icon at the top opens the System Logs dialog. By default error, warn and info are selected and it asks api/logs for at most 500 entries; you can select several of error/warn/info/debug, type a search string, and refresh by hand. With Auto on it refreshes every 5 seconds; the Auto/Manual chip switches between the two.
Each entry shows a timestamp, a level, a message and optional context. Delete sends a DELETE to the log API and empties the current log. That has real consequences, so do not press it before you have preserved the evidence of the fault. Close only closes the dialog; it clears nothing.
| Control | What it is for | Watch out |
|---|---|---|
| Level | Select several of error/warn/info/debug | debug can produce a lot of output; use it only for short troubleshooting sessions |
| Search | Passes the search string to the log API | Avoid typing or screenshotting sensitive identifiers |
| Refresh | Immediately fetches the logs for the current criteria again | It is not the same as restarting the service |
| Auto/Manual | Controls the automatic refresh every 5 seconds | Switch to Manual to hold the view during a long analysis |
| Delete | Clears the server logs | Save the redacted diagnostics you need, and check your operations policy, before you do it |
Version mismatch and WebSocket connection lost
When the frontend and backend versions differ, AppLayout shows a yellow Version mismatch banner with a Reload button. That usually means the browser is still holding old frontend assets; press Reload first to get the latest UI. Do not rebuild a bridge or change storage because of it. If it is still there after a reload, then check the proxy cache, Ingress and the actual backend version.
When the global WebSocket is not connected, a red "Connection lost, data may be outdated. Reconnecting…" is shown. The WebSocket picks ws/wss from the protocol of the current page, builds api/ws from the document base, and retries about 3 seconds after a drop. The data on screen may be out of date while that lasts, so pause bulk actions and configuration changes.
| Message | First step | Do not |
|---|---|---|
| Version mismatch | Press Reload; confirm that frontend and backend show the same pinned version | Do not reset, delete a bridge or commission again |
| Connection lost | Wait for the automatic reconnect, and check the Status tooltip and HTTP health | Do not run bulk actions one after another on a screen showing stale data |
| HA Offline but the WebSocket connected | Go to Health and check the Home Assistant service connection | Do not mistake the UI WebSocket for the HA WebSocket |
| UI Online but the controller says No Response | Check the bridge, the fabric, the session and the mDNS network layer | Do not just refresh the browser |
Common dashboard pitfalls
The Customize button has disappeared
It only shows when hasBridges is true. If the welcome card is still there, first confirm that the bridge was really created: cross-check it on the Bridges page or against the health API status, not against local storage.
The widget order differs on every machine
The setting lives in each browser's local storage, not in the backend. When you need them to match, set it on every managed browser, or press Reset to go back to the default; do not restore Matter Hub storage.
The stats did not update right after an action
The dashboard refreshes every 15 seconds and the status at the top every 30 seconds. Wait, then verify with Refresh or Health. A bulk action fetches once by itself when it finishes, but the data can still be out of date while the WebSocket is disconnected.
Connection lost never goes away
Check whether the reverse proxy or Ingress forwards
api/wscorrectly, whether HTTPS uses WSS, and whether the base path matches. Do not just restart bridges over and over, because the warning is about the WebSocket layer between frontend and backend.Version mismatch is still there after a reload
Cross-check the browser cache, the proxy cache and the actual backend version. Do a no-cache reload or clear the static asset cache properly; do not clear persistent data.
System Logs does not show an older event
Check the level, the search and the 500-entry limit, and check whether anyone pressed Delete. Once it is cleared, closing the dialog will not bring it back, so before you troubleshoot, save the necessary redacted data as your operations policy requires.
FAQ
Is the device count on the dashboard every entity in HA?
Does hiding the Bridges widget stop a bridge?
Can I use Stop All as an ordinary refresh?
Does switching language change device names in a controller?
Does WebSocket Offline mean Home Assistant is offline?
Does Delete in System Logs remove only the current search results?
api/logs and empties the display, so do not assume it removes only the current filter. Do not run it before you have preserved your diagnostics.Pinned-version official and source-code references
- v2.0.55 reachable routes
- v2.0.55 dashboard, onboarding, cards and bulk actions
- v2.0.55 widget customization dialog
- v2.0.55 widget definitions and local storage
- v2.0.55 version mismatch and WebSocket banners
- v2.0.55 shell, theme and the System Logs entry point
- v2.0.55 System Logs dialog
- v2.0.55 language switcher