Sådan køres Grafana med DeviceHive

DeviceHive er en IoT-platform, der har masser af forskellige komponenter. Grafana-pluginet er en af ​​dem. Dette plugin kan samle data fra en DeviceHive-server og vise dem med forskellige dashboards ved hjælp af det meget populære værktøj - Grafana. Denne artikel forklarer, hvordan man opretter et Grafana-dashboard med DeviceHive. Som et eksempel bruger dette den analoge ESP8266-chipstift til at visualisere spændingen på den.

Data

For at få vist noget på et dashboard har vi brug for data. Med hensyn til en DeviceHive-server kan data leveres via 'kommandoer' og 'meddelelser'. Kommandoer bruges typisk til at levere alle meddelelser til en enhed, som enheden skal udføre, mens 'underretninger' er det modsatte, enheder underretter deres abonnenter om visse begivenheder. 'Kommandoer' og 'meddelelser' er dybest set enkle JSON-meddelelser.

Begge disse to enheder kan bruges til at plotte grafer, vise statisk tekst, en måler, tabel eller andre Grafana-komponenter. Til denne artikel genererer vi meddelelser ved hjælp af speciel DeviceHive-firmware til ESP8266-chippen. Denne firmware giver chippen mulighed for at oprette forbindelse direkte til en DeviceHive-server ved hjælp af dens protokol og har masser af dokumenterede kommandoer, der kan udstedes fra serversiden.

Genererer underretninger med ESP8266 firmware

Binærerne til DeviceHive-firmwaren er tilgængelige her. Download den nyeste version og flash denne firmware til din chip. Releasearkivet indeholder dokumentation for, hvordan man gør det, men hvis du har et 'nodemcu'-lignende kort, skal du bare tilslutte brættet via et microUSB-kabel til din computer og køre' esp-flasher'-anvendelsen fra udgivelsesarkivet til dit operativsystem og vent, indtil det blinker tavlen. Efter at have flashet tavlen, er der behov for at konfigurere den chip, hvilket Wi-Fi-netværk, DeviceHive-server og den legitimationsoplysning, den skal bruge. Der er to måder at gøre det på: ved hjælp af en posix-lignende terminal med 'esp-terminalen' util eller trådløst som beskrevet her.

Der er en gratis legepladsservice, som kan bruges helt gratis til at prøve en DeviceHive-server. Når din chip er tilsluttet din server eller legeplads, skal du gå til serveradministratorpanelet, finde din ESP8266-enhed på enhedslisten og udstede 'adc / int' -kommandoen med parametrene '{' 0 ': 500}'.

Denne kommando får esp8266 til at rapportere hver 500ms spænding på ADC input # 0 (den eneste ESP8266 har). Når der er skiftet til 'meddelelser', skal der være en skærm som:

Det er spændingen på chipens indgangsnål. Og denne type data er velegnet til os at vise med Grafana: underretninger indeholder data (parametre i vores tilfælde), underretninger kommer kontinuerligt, og alle DeviceHives meddelelser har altid et tidsstempel. Når du har en analog sensor tilsluttet denne pin, er det muligt at vise disse data med Grafana.

Installation af DeviceHive Grafana-pluginet til Grafana

Grafana kan bruges som en lokal tjeneste eller som en hostet service. Se "Officiel dokumentation for at installere Grafana lokalt. Grafana installation ”.

Du kan finde, hvordan man installerer plugins i “Officiel dokumentation. Plugin-installation ”.

For at installere DeviceHive-datakilde via grafana-cli kan du bruge følgende kommando:

$ grafana-cli-plugins installerer devicehive-devicehive-datasource

Hvis du vil installere plugin manuelt, skal du udføre følgende trin:

Forudsætninger, disse pakker skal installeres:

  • Grafana> = 4.6
  • NodeJs> = 8 (valgfrit)
  • NPM> = 5 (valgfrit)
  • Grunt (npm installation-g grunt) (valgfrit)

Du skal også have tilladelser til at kopiere data til mappen Plugins (du kan indstille dem i grafana.ini i Paths-> plugins).

  1. Klon denne repo til mappen Plugins - git klon https://github.com/devicehive/devicehive-grafana-datasource.git;
  2. De næste trin er valgfrie (hvis du vil genopbygge datakildekildekoden):
    2.1 Gå til mappe - cd devicehive-grafana-datasource;
    2.2 Installer alle pakker - npm installation;
    2.3 Build plugin - npm run build;
  3. Genstart Grafana-server
  4. Åbn Grafana i browser;
  5. Åbn sidemenuen ved at klikke på Grafana-ikonet i øverste header;
  6. Klik på Datakilder i sidemenuen;
  7. Klik på + Tilføj datakilde i øverste overskrift;
  8. Vælg EnhedHive i rullemenuen Type;
  9. Konfigurer datakilden.

Efter installationen vil du være i stand til at se DeviceHive datakildeplugin i listen over installerede plugins (se på billedet herunder).

Tilføjelse af Grafana-datakilde

For at tilføje DeviceHive-datakilde, skal du udføre følgende trin:

  1. Åbn sidemenuen ved at klikke på Grafana-ikonet i øverste header;
  2. Klik på Datakilder i sidemenuen;
  3. Klik på + Tilføj datakilde i øverste overskrift;
  4. Vælg EnhedHive i rullemenuen Type;

Se på billedet herunder:

For at konfigurere DeviceHive-datakilden skal du udfylde følgende felter:

Server-URL (er stien til DeviceHive WebSocket-serveren. For legepladsen er dette ws: //playground.devicehive.com/api/websocket)
Enheds-ID (unik identifikator for DeviceHive-enheden)
Login / adgangskode eller AccessToken - legitimationsoplysninger til godkendelse

Du er også i stand til at specificere RefreshToken til automatisk opdatering af AccessToken

På billedet herunder kan du se konfigurationsarbejdsgangen:

Efter tilføjelse og konfiguration af en DeviceHive-datakilde, skal den findes i datakildelisten som på billedet herunder:

Opret nyt betjeningspanel

For at oprette et nyt instrumentbord skal du bare klikke på knappen "Ny" i sidepanelpanelet som vist på billedet herunder:

I denne artikel viser vi eksempler på panelet Graf, så klik på knappen Graf:

Derefter vil du kunne se linjediagram på dit dashboard:

Visning af underretninger / kommandoer med Grafanas graf

Underretning og kommandoer er enhedshive-enheder:
Kommando: repræsenterer en meddelelse, der sendes af klienter til enheder
Underretning: repræsenterer en meddelelse, der sendes af enheder til klienter

Som standard indeholder en meddelelses- eller kommandobesked det felt, der hedder “parametre”, hvor en bruger kan videregive sine egne data.

I starten af ​​denne artikel konfigurerede vi ESP8266-enheden til at sende underretninger med data, der repræsenterer tilstanden på den analoge pin # 0 på chippen. På billedet herunder kan du se, hvordan Grafana-grafikpanelet konfigureres, så det viser dataene på linjediagrammet:

Visning af kommentarer på Grafanas graf

Bemærkninger giver en måde at markere punkter på grafen med rige begivenheder på. Når du holder musepekeren over en kommentar, kan du få en begivenhedsbeskrivelse og begivenhedskoder. Tekstfeltet kan indeholde links til andre systemer med flere detaljer.
Flere oplysninger om kommentarer kan du finde ved at følge dette link.

Billedet herunder viser, hvordan du konfigurerer kommentarer, der er drevet af en DeviceHive-datakilde.

Avanceret grafstemning

Når du har klikket på knappen "Tilføj konverter" vil du være i stand til at vælge en konverter.
En konverter er den enkle funktion, der transformerer en værdi på en eller anden måde.

For øjeblikket understøtter DeviceHive-datakilder følgende typer konvertere:

  • Skala - ganges med en given værdi
  • Offset - tilføjer en given værdi
  • Enhedsomformer - konverterer værdi mellem forskellige enheder af nedenstående målingstyper:
  • Temperatur (‘c’ - Celsius, ‘f’ - Fahrenheit, ‘k’ - Kelvin)
  • Længde ('m' - meter, 'mi' - mil, 'yd' - gård, 'ft' - fødder, 'in' - tomme)
  • Vægt ('kg' - kilogram, 'lb' - pund, 'oz' - ounces)
  • Volume ('l' - Liter, 'gal' - Gallon, 'pt' - Pint)

Et eksempel på denne funktionalitet er vist på billedet herunder.

Konklusion

Grafana er et perfekt værktøj til at visualisere data. Det er meget fleksibelt og giver mange forskellige funktioner til visualisering på en måde, du kan lide. Grafana kan bruge mange datakilder fra en lang række softwareløsninger, og DeviceHive er en af ​​dem. Prøven, som vi beskrev i denne artikel, er meget enkel. Ved hjælp af disse principper er det muligt at oprette mere avancerede grafer, og vi håber, det vil være nyttigt for dig. Ved hjælp af Grafana og DeviceHive kan du opbygge dine egne IoT-visualiseringsløsninger, og du kan desuden ændre begge projekter, som du ønsker, da Grafana og DeviceHive er open source-software.

Skrevet i samarbejde med Igor Trambovetskiy, Senior Developer hos DeviceHive.