Get historical measurements per channel in Grafana

Get historical measurements per channel in Grafana
Relatieve luchtvochtigheid meten en bewaken in je papier opslag
CO2-monitoring in de veehouderij: hoog tijd
Innovatieve monitoring van taluds langs de A10 met Reporter
Een weerstation met waterniveausensor voor een marina of jachthaven
Colruyt Group gebruikt Reporter voor bodemvochtmetingen bij bioboerderij Het Zilverleen
Zout grondwater monitoren tijdens bemaling
Royal Latem Golf Club gebruikt Reporter voor watermonitoring
Een water debietmeter met de cloud verbinden
Sensor adapters, wat zijn dat en hoe werken ze?
Rode Rozen & Tortilla's gebruikt Reporter voor vriezerbewaking
Artes Woudenberg gebruikt Reporter voor windbewaking tijdens restauratie van Brussels Justitiepaleis
Slimme sensoren voor havens en terminals
Regenbewaking voor droge bulk terminals
Pluym - Van Loon gebruikt Reporter voor grondwaterniveaumeting bij projectontwikkeling
Werfmonitoring - veiligheid en efficiëntie
Doeltreffend industriële geurhinder monitoren
Waarom temperatuurbeheersing en monitoring op afstand hand-in-hand gaan
Taste Restaurantgroup gebruikt Reporter voor vriezerbewaking
Cemminerals gebruikt Reporter voor temperatuurmetingen van het kanaalwater
Rombaut Plant gebruikt Reporter voor vorstmonitoring bij containerteelt van coniferen
Vandijk Technics gebruikt Reporter voor temperatuurbewaking in koelcellen
Gecombineerd meten van relatieve luchtvochtigheid en bladnat
Innovatieve boommonitoring: Ecomatik dendrometer geïntegreerd met Reporter
De Bossen meet bodemvocht voor een mooie stokbonenoogst
TM Edison gebruikt Reporter tijdens bouw energie-eiland
Wat is het verschil tussen directe en indirecte kWh-tellers?
Weerbewaking: wind meten op een festivalterrein
Kies de juiste debietmeter voor je volgende waterproject
Hoe eenvoudig dauwpunt en natteboltemperatuur meten?
Precisietest voor de Sensirion SHT35 vochtigheidssensor
Een weerstation installeren op caravans of vakantiehuizen
Het effect van wind op het meten van fijn stof
Een Watermark sensor verbinden met de cloud
Watermark vs SMT100: volumetrisch watergehalte of bodemzuigspanning?
Smart geotechnische gegevensverzameling en interpretatie
6 tips om het meeste uit je koelcel te halen
Temperatuurregistratie voor HACCP
Snel een eenvoudig de 7 principes van HACCP aanpakken
6 lijsten om snel aan de slag te gaan met HACCP
Monitoring van bodemvocht voor de landbouw
Green Wall Monitoring: waarom een groene muur slimme tuinsensoren nodig heeft
Hoe krijgt Reporter stroom?
Bouwkraan en wind: gebruik een weerstation voor veiligheid op je werf
Water niveau sensor om het waterniveau in een container of put te meten
De eenvoud van Reporter: Sumaq is fan!
Bloesem beschermen tegen vorst
Weerverlet bepalen met een weerstation
Realtime vorstbewakings- en waarschuwingssysteem
Pseudomonas syringae preventie bij fruitbomen
Bloemen koud bewaren met temperatuurbewaking

Do you want to visualise a channel of your multi-parameter sensor? Then this step-by-step guide is for you.

Have you already read and completed the steps of part one of this guide? Make sure these have been carried out correctly before continuing.

Step 1: Get the right API call

If you want to get measurement data from one channel, you'll need to use the correct type of API call:

https://api.crodeon.com/api/v2/reporters/{master_id}/sensors/{device_id}/channels/{channel_index}/measurements

For this API you need the following information from your Reporter:

  • master_id = Reporter device ID
  • device_id = Sensor device ID
  • channel_index = Channel index (parameter of the selected sensor)

In this guide we will need the Reporter device ID of which you want to visualise the data. You can find this information on the 'Configure Reporter' page on the Crodeon Dashboard. For this example, we'll be using our demo weather station in Roermond (NL):

Reporter device ID

Step 2: Create new Grafana Dashboard

We have chosen our type of API call, now we can start building our Grafana dashboard using our Reporter data! Therefore we will create a new dashboard to start:

new dashboard

In this guide we will refer to the Settings of a dashboard. The settings can be entered/exited through following button:

dashboard settings

When in the settings, you can navigate Back to dashboard with a button on the same location.

Furthermore, we will create some variables in the following steps. If you need more information on variables and Grafana, you can consult following documentation on grafana.com.

Step 3: Create API linked variables

To be able to user our API call, we need some variables which we will create variables for our Grafana dashboard for.

API variable Grafana dashboard variable
master_id ReporterDeviceID
device_id SensorDeviceID
channel_index ChannelIndex

Steps to add the variable

1. Navigate to the Settings of the dashboard.

2. Go to the Variables tab.

3. Now click Add Variable

4. The first variable will be the Reporter device ID.

  1. Variable type is a Constant
  2. use ReporterDeviceID for the Name
  3. Fill in the Value with your Reporter device ID acquired from the configure page
  4. Navigate Back to list of variables
variables reporter device id

5. Click on New variable to add a second variable for the Sensor device ID

  1. We will use a Queryvariable type to get dynamic sensor info from our API
  2. use SensorDeviceID for the Name
  3. set Label to Sensor DeviceID
  4. Fill in the Query options
  • Select your data source, for this purpose we created 'Crodeon-API-Demo-Infinity-datasource' in our previous blog
  • set the Query Type to Infinity
  • Change the Parser to UQL
  • Update the URL to https://api.crodeon.com/api/v2/reporters/${ReporterDeviceID}/sensorsNotice we are using the previously created variable in the url.
  • Expand the UQL settings and copy paste the following UQL query:
parse-json
| scope "sensors"
| project "__value"="device_id.id", "__text"=strcat('[',"device_id.id",'] ',"label")
  • Verify if the Preview of values shows your sensors
5. Navigate Back to list of variables

    6. Click on New variable to add a third variable for the Channel index

    1. We will use a Query as variable type to get dynamic channel info from our API
    2. use ChannelIndex for the Name
    3. set Label to Channel
    4. Fill in the Query options
      1. Select your data source, for this purpose we created 'Crodeon-API-Demo-Infinity-datasource' in our previous blog
      2. set the Query Type to Infinity
      3. Change the Parser to UQL
      4. Update the URL to https://api.crodeon.com/api/v2/reporters/${ReporterDeviceID}/sensors/${SensorDeviceID}Notice we are using both previously created variables in the url.
      5. Expand the UQL settings and copy paste the following UQL query:
    parse-json
    | scope "channels"
    | project "__value"="index", "__text"="label"

    6. Verify if the Preview of values shows your sensor channels

    5. Navigate Back to list of variables

      Step 4: Create variables for graph visualisation

      To be able to have better graph visualisation, we will add three more variables which can be used in the graphs. These variables will use the API to get details for the channel selected.

      The following variables should be added:

      Grafana dashboard variable UQL query
      ChannelLabel parse-json
      |scope "channels"
      |where "index" == ${ChannelIndex}
      |project "label"
      ChannelValueMultiplier parse-json
      |scope "channels"
      |where "index" == ${ChannelIndex}
      |project "exponent"=pow(10,"display_unit.exponent")
      DisplayUnit parse-json
      |scope "channels"
      |where "index" == ${ChannelIndex}
      |project "short-unit"="display_unit.short_unit"

      Repeat the following steps for all the variables in the table above

      1. Navigate to the Settings of the dashboard.
      2. Go to the Variables tab.
      3. Now click Add Variable (Note: you can also duplicate a variable and edit it)
        1. We will use a Query as variable type to get dynamic channel info from our API
        2. use the variable name in the table for the Name (eg: ChannelLabel)
        3. Change Shown on dashboard to Nothing
        4. Fill in the Query options
          1. Select your data source, for this purpose we created 'Crodeon-API-Demo-Infinity-datasource' in our previous blog
          2. set the Query Type to Infinity
          3. Change the Parser to UQL
          4. Update the URL to https://api.crodeon.com/api/v2/reporters/${ReporterDeviceID}/sensors/${SensorDeviceID}
          5. Expand the UQL settings and set the script to the script from the table
          6. Verify if the Preview of values shows something meaningful

      Step 5: Add a graph visualisation

      Now all the information is available in the dashboard via the variables, we can start using them to create a graph

      1. Exit the Settings and go Back to dashboard
      2. Select Add visualisation
      3. Select your data source, for this purpose we created 'Crodeon-API-Demo-Infinity-datasource' in our previous blog
      4. Modify the Data source settings in the new panel configuration
        1. Change the Parser to UQL
        2. Modify Format to Time Series
        3. Update the URL to https://api.crodeon.com/api/v2/reporters/${ReporterDeviceID}/sensors/${SensorDeviceID}/channels/${ChannelIndex}/measurements?page_size=100000&start_time=${__from:date:iso}&end_time=${__to:date:iso}
        4. Note: we added three request parameters to have the time range picker of Grafana working. See grafana.com for more info.
      5. Expand the UQL settings and copy-paste the following UQL query:
      parse-json
      |scope "items"
      |project "timestamp"=todatetime("timestamp"), "value"=mul("value",$ChannelValueMultiplier)
      6. Verify that your graph is now showing data (if there is data in the given time range)

        Step 6: Update graph labels

        At this point, the data is now visible within the graph, but the legend is not yet showing anything meaningful. Therefore we can use the variables created in step 4 to gloss over our graph.

        At the right side of the edit panel view, you can set some info like:

        • change Title to ${ChannelLabel}
        • At the bottom, use Add field override
          • Select Fields with name and choose the value item in the dropdown list
          • Add override property
            • Property: Axis > Label
            • Value: ${DisplayUnit}
          • Add override property
            • Property: Standard options > Display name
            • Value: ${ChannelLabel}

        Step 7: Finish

        Go Back to dashboard and don't forget to Save dashboard. After saving, you can Exit edit mode, and start using your new dashboard.

        The dashboard has now 3 selectors:

        • Changing the sensor connected to Reporter
        • Changing the channel of the sensor
        • Changing the time range you want to see the data from

        There is limit of maximum 100000 data points set. The maximum data range depends on the measurement interval of your Reporter.

        Grafana data visualisation
        Terug naar blog

        Nog vragen?

        Bel ons op +32474097705 Of gebruik het contactformulier

        1 van 4
        • Demo laptop

          Live online demo

          Meld je aan voor een gratis account op het Crodeon Dashboard en bekijk live een werkende demo.
          Bekijk de demo 
        • person

          Boek een afspraak

          Boek een afspraak met Jonathan, onze Sales Manager, voor meer informatie over deze oplossing.
          Plan een call in 
        • phone email

          Contacteer ons

          Voor partnerships, distributie, of elke andere vraag, aarzel niet om contact op te nemen!
          Contacteer ons