Adding a new widget from scratch

With the last update its now easier to tie data directly from your car to the dashboard. This guide will go over the steps of adding a new widget based on data you discovered from your OBD library.

Widgets depends on data from your car. So lets get an overview of how data is retrieved from your car and added to your widgets.:


Creating a new widget consist of the 3 steps shown above. Let go over them:

1) Library - Discover PID’s

Use the library to discover what data you want to log. The library consist of data automatically extracted from your car, but also contains data created by other users. The library is divided into two parts. Your own library and a community part. The community library contains all commands globally in the AutoPi system and your own library contains all the commands specifically releated to your car. If you find a command in the global library you can add it to your own library.


The last part is important, since you can only create loggers for commands located in your own library.

2) Loggers - What should be logged
Now that you have found out what should be logged, you need to setup your device to actually log this. This is done under the loggers section. To create a new logger, just press the “Create” button and you will get this screen:


From the PID list you simply select the PID you want to start logging. The list contains all the PID located in your library and only those you’ve moved to your library. Secondly you enter the interval you want log data with. Set the interval to something realistic. When you create your new logger, you can sync the loggers to the device and it will start logging immediately.

3) Widgets - Select logged data
Now that you have setup what data you want to log, the next step is to visualize the data. You can do that on the dashboard using widgets.

Go to the dashboard and press the “Add widget”. Then select one of the custom widgets, as you are creating a new widget.


Give your new widget a title and select the type of visualization you want. The “Field” contains the data you want to visualize. The widget component will automatically extract data you can visualize. This is done from your previous logged data.

You can only create widgets for data already logged, so you will have to log some data for your new logger before you can visualize it. But dont worry your data is always stored and once it starts streaming into the cloud it will be visualized for all previous trips which also used the new logger. This last part is important.

With these three steps you should be able to visualize all data from your car.

Have fun :slight_smile:



Hi, a lot of very precise informations in you guide! nice work!

In the last step, there is a “Field” value which is ‘obd.speed.value’ in your screenshot.
If I follow your guide, I cannot see this kind of value in the PID editor nor in logger editor.
Could you clarify where ‘Field’ value is coming from when we create our own PID.


Hi @exec1216,

The Widget field will only show field values for data you already logged. The widget is able to preanalyze your already logged data and give you suggestions to what to set the field value to.

This is why you need to setup the loggers before creating the widgets and why the loggers need to have “logged” some data before you can visualize it.

The name of the field is generated from the name of the PID. So in my example above, the PID would have a name called “SPEED”.



Hi Peter,
what would I have to do in order to get readings more detailed? Currently I added a state of charge PID for Ioniq EV but I can only see readings every full hour. I have set the logger to run every few seconds.

Thanks in advance!

Hi @Nejc_Koncan

The loggers will log at the interval you have specified.

However, when the widgets pull data from the API they will try to compress data into a lower amount of data points to minimize data strain on the API.

An example could be that you’ve had 5000 measurement within an day, but these are compressed into 24 datapoints to minimize the amount of data needed to be pulled from the API.

This is pure visualization and does not mean that your data is not logged correctly. To check that you can always pull the data directly from our raw API.



Oooh ok, I’ll try to make a flow in Node-Red to get the data directly.

Thank you :slight_smile:

how to pull data to my row api ?

How does the converter in a logger work? I want to return 0 when the result from the PID is ‘no_data’

For clarity, are the loggers also available for custom services.