[Beta] Quick Chart - Chart your data, quickly and easily

Is there an existing way to chart a device's attribute strictly on a daily basis? Take mowing duration as an example. I'm trying to get one bar for today's mowing duration, one bar for yesterday's mowing duration, another bar for the day before yesterday's mowing duration, etc. And today's mowing duration bar gets bigger the more i mow today. This would require that quick charts accumulates and groups values of the mowing device's duration attribute on a day by day basis.

I'm guessing that's not possible yet, right? If it's within the realm of possibility with this API, and if others would find it useful too, maybe put it on the back burner for a feature at some point? Otherwise, if it's not something that the quick charts API could handle itself, but there would be a way to do it by feeding quick charts the right data at the right time, i'm all ears!

Not yet, remember this is still a beta. Just want to get the basics working with the raw event data that each device accumulates. Once that is done, the sky is the limit on data collection.

The next beta will be a huge upgrade to the charting abilities.

Certainly - just making sure I'm testing all available features :slight_smile: Good to hear about expandability. Must be a pretty extensive API that quick charts offers.

1 Like

New bundle...

0.0.4 - 07/14/22 - Rewrite, rewrite, rewrite...

Can now choose as many devices and attributes that you want on any chart.

3 Likes

I love this idea. This might be a dumb question but how do I add this to a dashboard? I am asuming i add the virtual device but what template do I use?

Use the Attribute template, and select the chart number from the attribute dropdown that appears.

That’s what I thought but it doesn’t show.


These are my settings


Same thing for me. No attributes to select from in the dashboard tile and no events or logs seems to be captured in the virtual device page

Adding a Tile to the Dashboard

1 Like

Hi @bptworld
From your instructions:

What is wrong?

  • Go to the DEVICE
  • Show me the Attribute

Device page:


1 Like

Thanks.

Working on a BIG update right now, should have something out in a little bit.

(hint: data collection)

3 Likes

Do you want me to delete the current config and reset them after the update? Or will your fix work on current setup?

Any chance that will be in the same json format as the events returned by Maker API?

Yes, while in beta it's always best to delete and start again with new builds

Nope. I have no idea what Maker API returns BUT if you send me an example we might be able to come up with some sort of converter.

1 Like

Sorry, I should have disclosed my intentions first,.... Poor form on my part....

I am also looking at a charting solution, using a HTML page that reads recent device events from Maker API (at the moment), and I was wanting to make use of local storage for recording longer timeframes. I was thinking if I could read in the events in the same format as I am retrieving them from Maker API, I wouldn't need to write the code differently when interpretting the events, just use a different source.

So I was interested in whether you would consider separating out the storage of the events from the charting, so the storing of the event data could be used for any number of other purposes, not just charts.

Ha, that's how I'm doing it now. :grin: I wrote a separate child app to collect the data and write it to a file. Then that file is read back into the charting child app to produce the charts.

Right now I just finished setting the options for raw data like temp, humidity, etc. It simply adds to a text file when there is new data.

ie.

  • New temp reading is found
  • It adds the new Data: the Device, the Attribute, DateTime, Event (reading) into a text file.
  • Then the charting child reads the file, sorts/combines all the data and makes the chart.

Going to work on time duration next. ie. How long a device has been on/active/open,etc per day.

The only difference is going to be how the collector child app works, no changes will be needed to the charting child app.

Probably not making much sense but it'll be cool when it's done! :man_shrugging:

1 Like

Here's an example of what Maker API returns. I wouldn't need every key/value pair for what I am doing... It's basically an array of json elements (I'm probably not using the right terms there....

Example Data

[{"device_id":"614","label":"Raspberry Pi (Analytics) Temperature","room":"Infrastructure","name":"temperature","value":"47.225","date":"2022-07-16T21:50:59+0000","unit":"\u00b0C","isStateChange":true,"source":"DEVICE"},{"device_id":"614","label":"Raspberry Pi (Analytics) Temperature","room":"Infrastructure","name":"temperature","value":"46.738","date":"2022-07-16T21:48:59+0000","unit":"\u00b0C","isStateChange":true,"source":"DEVICE"},{"device_id":"614","label":"Raspberry Pi (Analytics) Temperature","room":"Infrastructure","name":"temperature","value":"47.712","date":"2022-07-16T21:48:00+0000","unit":"\u00b0C","isStateChange":true,"source":"DEVICE"},{"device_id":"614","label":"Raspberry Pi (Analytics) Temperature","room":"Infrastructure","name":"temperature","value":"46.738","date":"2022-07-16T21:47:00+0000","unit":"\u00b0C","isStateChange":true,"source":"DEVICE"},{"device_id":"614","label":"Raspberry Pi (Analytics) Temperature","room":"Infrastructure","name":"temperature","value":"47.712","date":"2022-07-16T21:44:00+0000","unit":"\u00b0C","isStateChange":true,"source":"DEVICE"},{"device_id":"614","label":"Raspberry Pi (Analytics) Temperature","room":"Infrastructure","name":"temperature","value":"48.199","date":"2022-07-16T21:43:00+0000","unit":"\u00b0C","isStateChange":true,"source":"DEVICE"},{"device_id":"614","label":"Raspberry Pi (Analytics) Temperature","room":"Infrastructure","name":"temperature","value":"46.738","date":"2022-07-16T21:41:59+0000","unit":"\u00b0C","isStateChange":true,"source":"DEVICE"},{"device_id":"614","label":"Raspberry Pi (Analytics) Temperature","room":"Infrastructure","name":"temperature","value":"47.712","date":"2022-07-16T21:40:59+0000","unit":"\u00b0C","isStateChange":true,"source":"DEVICE"},{"device_id":"614","label":"Raspberry Pi (Analytics) Temperature","room":"Infrastructure","name":"temperature","value":"47.225","date":"2022-07-16T21:39:59+0000","unit":"\u00b0C","isStateChange":true,"source":"DEVICE"},{"device_id":"614","label":"Raspberry Pi (Analytics) Temperature","room":"Infrastructure","name":"temperature","value":"46.738","date":"2022-07-16T21:38:59+0000","unit":"\u00b0C","isStateChange":true,"source":"DEVICE"},{"device_id":"614","label":"Raspberry Pi (Analytics) Temperature","room":"Infrastructure","name":"temperature","value":"47.225","date":"2022-07-16T21:38:00+0000","unit":"\u00b0C","isStateChange":true,"source":"DEVICE"},{"device_id":"614","label":"Raspberry Pi (Analytics) Temperature","room":"Infrastructure","name":"temperature","value":"45.764","date":"2022-07-16T21:36:00+0000","unit":"\u00b0C","isStateChange":true,"source":"DEVICE"},{"device_id":"614","label":"Raspberry Pi (Analytics) Temperature","room":"Infrastructure","name":"temperature","value":"47.225","date":"2022-07-16T21:35:00+0000","unit":"\u00b0C","isStateChange":true,"source":"DEVICE"},{"device_id":"614","label":"Raspberry Pi (Analytics) Temperature","room":"Infrastructure","name":"temperature","value":"46.738","date":"2022-07-16T21:34:00+0000","unit":"\u00b0C","isStateChange":true,"source":"DEVICE"},{"device_id":"614","label":"Raspberry Pi (Analytics) Temperature","room":"Infrastructure","name":"temperature","value":"47.225","date":"2022-07-16T21:33:00+0000","unit":"\u00b0C","isStateChange":true,"source":"DEVICE"},{"device_id":"614","label":"Raspberry Pi (Analytics) Temperature","room":"Infrastructure","name":"temperature","value":"46.738","date":"2022-07-16T21:31:59+0000","unit":"\u00b0C","isStateChange":true,"source":"DEVICE"},{"device_id":"614","label":"Raspberry Pi (Analytics) Temperature","room":"Infrastructure","name":"temperature","value":"47.225","date":"2022-07-16T21:30:59+0000","unit":"\u00b0C","isStateChange":true,"source":"DEVICE"},{"device_id":"614","label":"Raspberry Pi (Analytics) Temperature","room":"Infrastructure","name":"temperature","value":"47.712","date":"2022-07-16T21:29:59+0000","unit":"\u00b0C","isStateChange":true,"source":"DEVICE"},{"device_id":"614","label":"Raspberry Pi (Analytics) Temperature","room":"Infrastructure","name":"temperature","value":"46.738","date":"2022-07-16T21:29:00+0000","unit":"\u00b0C","isStateChange":true,"source":"DEVICE"},{"device_id":"614","label":"Raspberry Pi (Analytics) Temperature","room":"Infrastructure","name":"temperature","value":"45.764","date":"2022-07-16T21:28:00+0000","unit":"\u00b0C","isStateChange":true,"source":"DEVICE"}]