Rent-a-Pilot Aeronautics

airplanes and other distractions

Dingen tellen in Grafana - Hoe Node-Red gebruiken om de "Group by TAG" nuttig te maken in Influxdb

4 december 2020 | ADSB, Vliegtuigen, Avionica, Internet, Radio

ADS-B Grafana: Maak lijsten van types, calsigns en meer

Laatst liep ik tegen een beperking van Influxdb met Grafana aan. Ik heb een Influxdb die ik voer met data van mijn ADS-B ontvanger. Deze feed bevat gegevens zoals
Reg: PH-AOA
Type: A332
Wat ik wilde doen is het aantal UNIEKE Airbus A330-203's tellen.

Het einddoel

TIEN pings op PH-AOE A332 moet worden geteld als ÉÉN A320-203 en Geen tien!

Om dat te doen moet je een query maken met "GROUP BY". Dat is gemakkelijk genoeg. Nu komt het probleem: Je kunt geen "GROUP BY" doen in Influxdb die twee waarden verbindt. Je kunt dat alleen doen met een TAG.

Influxdb query - groeperen op tag: actype

De query ziet er als volgt uit:

SELECT count(distinct("Reg")) FROM "mesg" WHERE $timeFilter GROUP BY time(1d), "actype"

We hebben een TAG nodig om deze items te groeperen

Deze tag "actype" bestaat niet in de datafeed, dus moet hij worden aangemaakt. Ik gebruik al node red om de feed te verzamelen en te organiseren, dus het is logisch om het daar te doen.

Node-Red lost het op

De ADS-B ontvanger op de Pi produceert de JSON-feed die er na wat knutselen als volgt uitziet:

Hoe voeg je een TAG-waarde toe voor Influxdb met een Node-Red function node

 

Syntax

msg.payload=[msg.payload,{tag:waarde}];

 

Voorbeeld

Om twee tags toe te voegen:

  • Voeg deze tag "icao24" toe van waarde "msg.payload.Icao"
  • Voeg deze tag "actype" toe van waarde "msg.payload.Mdl"

Doe dit:

msg.payload=[msg.payload,{icao24:msg.payload.Icao},{actype:msg.payload.Mdl}];
return msg

 

Je kunt nu de volgende query doen in Grafana:

SELECT count(distinct("Reg")) FROM "mesg" WHERE $timeFilter GROUP BY time(1d), "actype"

Het resultaat is een geaggregeerde lijst van vliegtuigtypes van unieke registraties over een periode van één dag.

0 0 stemmen
Artikel Rating
Abonneer
Laat het weten als er
guest
0 Opmerkingen
Inline feedback
Bekijk alle reacties

Translate you want?

Ik ben aan het experimenteren met machine-vertalingen vanuit het Engels naar het Nederlands. Hierdoor klinkt het soms alsof een blije Amerikaan Nederlands heeft geleerd maar het werkt best aardig. Meestal.

0
Zou graag je gedachten willen weten, s.v.p. laat een reactie achter.x