How to debug dashboard issues
A dashboard problem usually shows itself in one of four ways: the dashboard does not load, a readout shows no data, an image is missing, or a style has no effect. Each is covered below with its usual cause and fix. This guide needs access to the dashboard editor and a dashboard that shows the problem.
The dashboard does not load
A dashboard that fails to load, or that cannot be saved, has a validation error, because Profinity does not load an invalid dashboard. A dashboard whose saved layout no longer matches the schema shows the message "This dashboard no longer matches the schema" with the buttons Reset from Template and View Logs.
Warning
Reset from Template replaces the dashboard with the latest template and loses every customisation, so use it only when the dashboard is not needed.
Otherwise, open Edit Dashboard from the title bar to repair the file.
In the dashboard editor, read the Schema validation issues list, which names each problem, and correct each entry. The usual causes are a missing colon, wrong indentation, an invalid property name, or a required property that is absent. SAVE is blocked while any entry remains, so save once the list is empty, then close the editor, because the dashboard behind it shows the result.
A readout shows no data
A readout that stays empty has a binding that does not match a tag, a component that is not running, or no data arriving. Start with the binding, because it is the most common cause:
Find the tag in the Tag Explorer and compare its path with the source character for character, for example Prohelion BMU/DBC/PackStateOfCharge/SOCPercent in the Example Profile.
Confirm that the component name in the path is correct and that the tag has a current value and a good quality flag.
If the tag is correct, check the component's status indicator in the sidebar.
A green indicator means the component is active, and anything else means it is not receiving CAN data, in which case the fault is the CAN bus connection and How to Connect to CAN Bus applies.
To separate a binding fault from a data fault, replace the binding temporarily with a static value:
A readout that shows 42.5 displays correctly, so the fault is in the binding or the data. Adding the binding back one element at a time shows which element fails.
An image does not appear
An image that does not appear is missing from the profile's images folder, has a filename that differs from the one in the dashboard, or is in a format Profinity does not support.
File names are case-sensitive, so Logo.png and logo.png are different files, and an image in an HTML component needs its full path:
How to Add Images to Your Dashboard gives the location of the folder and lists the supported formats.
A style has no effect
A style that does not apply is usually a stylesheet that is not loaded, or a class name that differs from the CSS.
The web interface loads only profile.css from the profile's styles folder, and any other stylesheet must be imported from it, because Profinity removes a link element from an HTML component.
The class named in the dashboard must also match the one in the CSS exactly, and a class on a readout item has no effect, so it goes on the readouts element.
Refer to How to Style Your Dashboard.
When the cause is still unclear
The Profinity logs record dashboard errors, including data binding errors and missing component or tag errors. Open ADMIN, then Logs, and read the entries from the time the dashboard was opened.
Comparing the dashboard with a working one also locates the difference quickly. Open the working dashboard's source as described in How to View Dashboard Source, compare its structure and formatting with the faulty one, and copy the working pattern.
For more, refer to the Troubleshooting Guide, the Dashboard FAQ and the Dashboard Development Guide, which has schema validation information.