Skip to content

Frequently asked questions

This page answers common questions about creating Profinity dashboards in a sentence or two and links to the page that covers each topic in full.

General questions

  • What is a Profinity dashboard? A Profinity dashboard is a user interface that you build in the Visual Editor and that Profinity stores as a YAML file. Its components show tag values, such as CAN signals, component properties and historical data, and its actions and toggles control the system.
  • How do I create a dashboard? Add a Custom Component to the profile, or open a component that already has a dashboard, then open the Visual Editor. The steps are in Build a dashboard in the Visual Editor. A CAN database (DBC) file is only needed when the component needs to publish CAN signals as tags. See Where dashboards are used. For adding the component, refer to Using a Custom Component.
  • Where do I put my dashboard YAML file? The Visual Editor creates and saves the dashboard file for you, and its YAML tab shows the contents. The file is stored in the dashboards directory of the profile, or in the folder of the component, as described in Profiles.
  • Can I use existing dashboards as templates? Yes. Copy the YAML of any existing dashboard and modify the copy, as described in Copy a dashboard as a template.
  • Where do I put images, styles, and content files? Store them in these folders of the profile. For more detail, refer to Store dashboard files in a profile.
    • Images go in images and are referenced by filename only.
    • Custom CSS goes in a file named profile.css in styles.
    • HTML snippets go in content.

Component and layout questions

  • How do I display a simple value? Use a readout component, as in the Readouts reference example.
  • How do I show multiple related values? Use a pill component, which groups values beside an icon, as in the starter template and the Pill reference example.
  • How do I create a chart? Use a chart component whose binding sets seriesMode: timeSeries with a start and stop window. For examples, refer to Time series and the Charts reference example.
  • How do I show status indicators? Use a lamps component, and bind its enabled or color target to a tag, as in Conditional styling.
  • How do I organise components into sections? Use row and group to arrange components, panels for titled panels, and accordion for collapsible sections, as described in Core elements.
  • How do I arrange components horizontally? Set direction: horizontal on a row or group, as shown in Layout directions.
  • How do I show or hide sections conditionally? Bind the visible target of a readout, tab, accordion, or footer, or use an accordion for sections that users open themselves. Refer to Show or hide a component.

Data binding questions

  • How do I show a value on a dashboard? Bind the component to a tag. Find the tag in the Tag Explorer and put its path in the source of the binding. The tag for a CAN signal has the form DBC/MessageName/SignalName, as described in Data binding.
  • How does a binding refer to the component that owns the dashboard? A source that starts with a name, such as DBC/... or Properties/..., is relative to the component that owns the dashboard. The same dashboard therefore works for any component that has the same tags. A source that starts with / names a tag in another component. Refer to Binding source paths.
  • How do I show historical data? Set start and stop on a series binding with seriesMode: timeSeries. Older values come from the designated historian, which needs data logging to be enabled, as described in Live and past data. Add aggregationWindow and aggregationFunction to aggregate the older values into intervals.
  • How do I view a dashboard at a past time? Select View at a time in the title bar, when the profile has a designated historian. Refer to View a dashboard at a past time.
  • How do I convert data types or scale values? Use toType to convert a type, and gain and offset to scale a value, as described under Type conversion and Scaling and offset.

Troubleshooting questions

What you see Cause What to do
The dashboard does not load The dashboard YAML fails validation against the schema. Open it in the Visual Editor and read the entries under Schema validation issues.
Data is not updating, or a chart is blank The source differs from the path of a tag, the tag has no current value, or a chart binding lacks seriesMode: timeSeries. Check that the source matches the path of a tag in the Tag Explorer, that the tag has a current value, and that a chart binding sets seriesMode: timeSeries. Refer to Data not updating and Charts not rendering.
Images do not load The file is not being found. Refer to the Image does not appear row in Component-specific troubleshooting.

Advanced questions

  • How do I create an interactive image? Use the image component with regions, icons, and data values, as in the Image reference example.
  • How do I use the html component? Use the html component, as in the HTML reference example, and note the elements that the HTML sanitiser removes, which are listed in Store dashboard files in a profile.
  • How do I organise a large dashboard, improve performance or make it reusable? Keep the main dashboard to key metrics, place detail in an accordion or in tabs, and group related components with group or panel. Set refreshInterval (in milliseconds, minimum 1000) on charts that do not need live updates. Use relative tag paths so that one dashboard fits every component with the same tags, and reference profile assets by filename only.

Further help

The Component reference describes each component, the Motor controller dashboard example holds a working dashboard, and Troubleshooting guide covers common problems. For anything else, contact Prohelion through the Prohelion website.