Ruuvi Gateway -reititin mahdollistaa mittaushistorian ja statistiikan keräämisen paikallisverkossa kiertokyselyn (polling) avulla erityisistä päätepisteistä. Pääsy näihin paikallispäätepisteisiin voidaan helposti määrittää Ruuvi Gatewayn asetuksissa. Tämä mahdollistaa myös eri todennusmenetelmien käyttämisen.
Tässä oppassa näytämme, kuinka määrität pääsyn näihin osoitteisiin ja keräät mittaustietoja cURL-komennolla.
Lisää esimerkkejä kiertokyselyn käytöstä löydät täältä.
Mikä on kiertokysely?
Kiertokyselytila (polling mode) on prosessi, jossa tietokone tai ohjauslaite odottaa ulkoisen laitteen tarkistavan sen valmiuden tai tilan. Palvelimet, solmut (node) ja erilaiset sovellukset voivat käyttää kiertokyselytilaa arvojen hakemiseksi ja toimien käynnistämiseksi syötteen vastaanottamisen yhteydessä.
Ruuvi Gateway -reitittimessä kyselyä voidaan käyttää mittaustietojen ja metriikkatiedon hakemiseen Gatewayn tarjoamista API-päätepisteistä. Tämä mahdollistaa turvallisen ja luotettavan tiedonkeruun ilman, että tietoja tarvitsee siirtää paikallisverkon ulkopuolelle.
Statistiikka-päätepiste (metrics) kertoo tietoja Ruuvi Gatewayn nykyisestä tilasta, mikä voi olla hyödyllistä tietoa verkon ylläpitäjälle.
Mikä on cURL?
cURL on komentorivityökalu, jota käytetään tietojen siirtämiseen palvelimelle tai palvelimelta eri protokollia, kuten HTTP, FTP ja SMTP, käyttäen. Sitä käytetään yleisesti esimerkiksi HTTP-pyyntöjen lähettämiseen, tiedostojen lataamiseen ja API kanssa toimimiseen, mikä tekee siitä tehokkaan työkalun kehittäjille ja järjestelmänvalvojille verkko-interaktioiden automatisoimiseen ja testaamiseen.
Voit kerätä ja tallentaa mittaustietoja Ruuvi Gatewaysta muutaman yksinkertaisen cURL-komennon avulla.
Hallitse pääsyä Ruuvi Gateway -reitittimen päätepisteisiin
Ruuvi Gateway -reitittimen historia- ja statistiikkapäätepisteet ovat käytössä oletuksena, mutta niitä voi lukea paikallisverkossa vain silloin, kun pääsy on sallittu.
Voit määrittää pääsynhallintaan liittyvät asetukset Gatewayn ohjatun käyttöönoton Etäyhteysasetukset-sivulla.
Valittavissa olevat vaihtoehdot ovat:
Salasanasuojattu oletussalasanalla
Salasanasuojattu valinnaisella salasanalla
Ei määritettävissä etäyhteyden kautta
Määritettävissä etäyhteyden kautta ilman salasanaa
Kun ”Määritettävissä etäyhteyden kautta ilman salasanaa” on valittuna, näitä päätepisteitä voidaan lukea ilman erillistä todennusta. Vaihtoehtoja ”Salasanasuojattu” tai ”Ei määritettävissä etäyhteyden kautta” käytettäessä suositellaan API-käyttöoikeuden määrittämistä API-avaimen avulla.
Kun käytät API-avainta (bearer-tunnistetta), voit valita kahdesta vaihtoehdosta:
Ota käyttöön vain luku -API-avain ”/history”-sivulle
Salli täysi (luku/kirjoitus) pääsy Ruuvi Gateway -reitittimeen API-avaimen avulla
Esimerkeissämme käytämme vain paria eri autentikointivaihtoehtoa, mutta voit helposti määrittää haluamasi asetukset Ruuvi Gatewayn ohjatun käyttöönoton avulla.
Tee nämä ensin
Tarvitsemme aluksi tehdä ja varmistaa muutamia eri asioita kiertokyselyn mahdollistamiseksi.
Asenna cURL
Koska käytössäni on MacOS-tietokone, cURL-komento löytyy jo valmiiksi käyttöjärjestelmästäni. Mikäli cURL ei ole vielä asennettuna käyttöjärjestelmässäsi, löydät sopivan asennuspaketin täältä.
Ruuvi Gateway -reitittimen paikallisverkon nimi MacOS-komentokehotteessa
Etsimme seuraavaksi Ruuvi Gateway -reitittimen paikallisverkossa käyttämän nimen, jota käytämme myöhemmin skriptissä. Paikallisverkon laitenimi on MacOS-käyttöjärjestelmän ominaisuus. Jos käytössäsi on Windows-työasema, voit korvata tämän laitteen IP-osoitteella.
Kirjoita Mac OS Terminaliin
dns-sd -B
Luo kansio skripteille ja tallennettaville logitiedostoille
Luomme prosessin aikana muutamia bash-skriptejä ja tallennamme lokitiedoston, joten oman kansion luominen on suositeltavaa. Luo ensin uusi kansio nimeltä Ruuvi oman Lataukset-kansion sisään ja siirry sitten uuden kansion sisään komentokehotteessa.
Kirjoita Mac OS Terminaliin
mkdir /Users/[yourusername]/Downloads/Ruuvi/
cd /Users/[yourusername]/Downloads/Ruuvi/
Esimerkki 1: Lue mittaustietoja 60 sekunnin väleillä cURL-komentokehotteella (ei autentikointia)
Ensimmäisessä esimerkissämme keräämme anturin mittaustietoja Ruuvi Gatewayn /history-päätepisteestä 60 sekunnin välein ilman todennusta. Tämä on turvallista tietojen keräämiseen paikallisverkossa, kuten kotona, ja sitä voidaan käyttää nopeaan tietojen keräämiseen komentokehotteessa.
Määritä Ruuvi Gatewayn ohjatussa käyttöönotossa pääsy ilman autentikointia
Haluamme aluksi määrittää Ruuvi Gatewayn asetukset niin, että päätepisteitä voidaan lukea paikallisverkossa ilman todennusta. Avaa Ruuvi Gatewayn ohjattu käyttöönotto, siirry Etäyhteysasetukset-sivulle ja valitse ”Määritettävissä etäyhteyden kautta ilman salasanaa”.
Kun asetus on muutettu, valitse Seuraava kunnes saavut ohjatun käyttöönoton päätössivulle. Tämän jälkeen voit sulkea Ruuvi Gateway -reitittimen ohjatun käyttöönoton.
Luo skripti ja salli sen ajaminen komentokehotteessa
Seuraavaksi avaa tyhjä sivu tekstieditoriin ja kirjoita seuraavat rivit. Korvaa esimerkissä [ ]-sulkeiden sisällä oleva Gatewayn paikallinen nimi. Jos käytät Windowsia, käytä Gatewayn paikallista IP-osoitetta sen sijaan.
#!/bin/bash
while true
do
curl http://[yourgateway.local]/history
sleep 60
done
Tallenna tämä tiedosto Ruuvi-kansioon nimellä example1.sh
Salli skriptin ajaminen komentokehotteessa
cd /Users/[yourusername]/Downloads/Ruuvi/
chmod +x example1.sh
Aja skripti komentokehotteessa
Voimme seuraavaksi ajaa skriptin samaisessa komentokehotteessa seuraavan komennon avulla
./example1.sh
Valmis! Mittaustiedot luetaan Gatewayn /history-päätepisteestä ja tulostetaan komentokehotteeseen 60-sekunnin välein.
Esimerkki 2: Kerää mittaustiedot .json-tiedostoon cURL-komennon avulla (autentikointi API-avaimella)
Toisessa esimerkissämme keräämme anturin mittaustietoja Ruuvi Gatewayn /history-päätepisteestä. Pääsy Gatewayn Web-käyttöliittymään on suojattu salasanalla ja pääsy todennetaan sen sijaan API-avaimella (bearer token). Kerätyt mittaustiedot tallennetaan .json-tiedostoon.
Aseta Ruuvi Gateway -reititin salasanasuojatuksi, mutta käytä API-avainta (bearer-tunnusta) todennukseen
Haluamme aluksi ottaa salasanasuojauksen käyttöön Ruuvi Gateway -reittimen selainkäyttöliittymän suojaamiseksi, mutta määritämme samalla API-avaimen (bearer token), joka sallii päätepisteiden lukemisen.
Avaa Ruuvi Gateway -reitittimen ohjattu käyttöönotto, siirry Etäyhteysasetukset-sivulle ja valitse “Salasanasuojattu oletussalasanalla”. Valitse seuraavaksi “Ota käyttöön vain luku -API-avain ”/history”-sivulle” aktiiviseksi kohdassa Lisäasetukset.
Yksilöllinen avain luodaan kenttään automaattisesti.
Kopioi tämä avain ja liitä se tekstieditoriin ennen eteenpäin siirtymistä. Napauta sen jälkeen Seuraava-painiketta, kunnes olet ohjatun käyttöönoton viimeisellä sivulla.
Luo skripti ja salli sen ajaminen komentokehotteessa
Avaa tekstieditoriin tyhjä sivu ja kirjoita seuraavat rivit. Korvaa [ ]-sulkeiden sisällä oleva Gatewayn paikallinen nimi ja API-avain (bearer). Jos käytät Windowsia, käytä sen sijaan paikallista Gatewayn IP-osoitetta.
#!/bin/bash
while true
do
curl http://[yourgateway.local]/history -H "Authorization: Bearer [yourbearertoken]" -o history.json
sleep 60
done
Tallenna skripti Ruuvi-kansioon nimellä example2.sh
Salli skriptin ajaminen komentokehotteessa
cd /Users/[yourusername]/Downloads/Ruuvi/
chmod +x example2.sh
Aja skripti komentokehotteessa
Voimme seuraavaksi ajaa skriptin samaisessa komentokehotteessa seuraavan komennon avulla
./example2.sh
Valmis! Mittaustiedot luetaan Gatewayn /history-päätepisteestä API-avainta käyttäen ja tallennetaan history.json-tiedostoon Ruuvi-kansioon 60 sekunnin välein.
Vaihtoehtoisia tapoja mittaustietojen keräämiseen Ruuvi Gateway -reitittimeltä
Kiertokysely (polling) on vain yksi tapa tietojen keräämiseen Ruuvi Gateway -reitittimestä. Jos haluat käyttää erityistä palvelinta mittaustietojen keräämiseen, Ruuvi Gateway -reitittimessä on mahdollista ohjata mittaustiedot myös HTTP(S) tai MQTT(S) -palvelimelle.
Kiertokysely on kuitenkin suoraviivainen tapa mittausten keräämiseen Ruuvi Gateway -reitittimeltä lähiverkossa suoraan komentokehotteesta, eikä erillistä palvelinta tarvita konfiguroida kaikissa käyttötapauksissa.