Please find my analysis and queries, please review them and clarify.
PMU data (IEC 61850-90-5) is streaming data continuously. Whereas goose data is arriving based on events (e.g. open/close).
Below logic is implemented in openHistorian’s Grafana Service to fetch the PMU data:
• Grafana UI is requesting data for specific interval (e.g last 5 mins data).
• openHistorian Grafana service is calculating the data resolution for given interval using some
calculations.
Sample code:
long range = (stopTime - startTime). Ticks;
if (range <= TimeSpan.TicksPerHour && !measurementIDs.Any(measurementID => (metadata.TryGetValue(measurementID, out row) ? int.Parse(row[“FramesPerSecond”].ToString()) : 1) > 1)) return Resolution.Full;
if (range <= Ticks.PerMinute) return Resolution.Full;
if (range <= Ticks.PerMinute * 5L) return Resolution.TenPerSecond;
if (range <= Ticks.PerMinute * 30L) return Resolution.EverySecond;
if (range <= Ticks.PerHour * 3L) return Resolution.Every10Seconds;
When Grafana requesting data for specific time interval, resolution always falling like Resolution.TenPerSecond or Resolution.Every10Seconds with respective of interval length (ticks).
Once resolution is calculated then Grafana service is fetching the data from Historian data service and return them to Grafana UI.
According to Goose data, resolution must be “Full”, because Goose data will not fall under any variations or interval like TenPersecond or EverySecond.
My Queries:
Is there any possibility to identify whether this measurement id is belonging to goose device?
Or
Is there any way to access openHistorian database from “OpenHistorian.Adapters”?
Specifically, TrendValueAPI.cs file.
I was trying to configure the Grafana GSF function, but I’m getting “Invalid request error” in browser.
I tried below
My Goose Measurement ID is “ABC_GOOSE-DV1”
This data will be occurring randomly, not sequential manner.
Time duration : Last 6 hours
Interval function
Interval(0,NanoSecond, ABC_GOOSE-DV1)
Can you please provide me a sample interval function to handle this scenario?
Basically I need to pull all goose data without any interval for this Measurement ID (ABC_GOOSE-DV1).
Please help.
Note that, I put “NonoSecond” as least option. I don’t want any interval, need full data.
Try switching to “Type: Text Editor” and entering the text directly as it does not look like it’s picking up the function correctly in the “Element List” picker expression.