Hi folks,
at home, I have a freshly installed solar power plant and now wanted to do some information gathering and analysis with its data.
As I can already collect various energy based information in my home to mqtt and influx, including the current solar power, I wanted to compare these to the solar power forecast for my site.
I found a nice service at solcast (https://toolkit.solcast.com.au/) where you can define your power plant (as a hobbyist for free in a so called rooftop-site) and it comes with a well documented API (https://docs.solcast.com.au/#rooftop-sites).
I am already able to collect my own measurements and feed them back to my rooftop-site at solcast (for tuning their estimates) , as well as do the queries to their API and collect forecast information.
My challenge is, that I am debating on how to structure the data to be stored in influxDB.
For each query, you will receive a chart (like the next seven days, in 30min fixed intervals, as JSON response), containing an array of objects, basically consisting of timestamp and power estimates.
The estimates are based on the time of the query, so for each query I will get a fresh set of estimated power values. But the timestamps are on a fixed interval and will stay the same for each iteration/new query of the chart (besides the fact that for a new query, new timestamp values will appear as time passes).
This is what it looks like in their own UI:
What I want to achieve is that the charts will remain stored in influxdb and data at the same timestamp will nor be overwritten.
The idea is that I would be able to collect or compare individual charts later.
My current thinking is around whether to use a field or a tag (or both) for storing a "chart-ID" (in my mind simply the number/counter of the query from each invocation of the API throughout the day - the rooftop site will allow for up to 20 queries per day with the hobbyist license/account).
This is my first attempt and I am curious what you people think I am doing wrong or what I should do in order to improve (shows a seven day forecast array/chart with 30min intervals from now() ):
Many thanks in advance for your input!
regards,
Fred