Ilmainen toimitus yli 100 euron tilauksille - Tuotteiden toimitukset Suomesta

Opas: kolmannen osapuolen anturitietojen lähettäminen Ruuvi Gateway -reitittimestä HTTP-palvelimelle

Ruuvi Gateway -reititin on suunniteltu toimimaan Ruuvin tuotteiden kanssa heti käyttöönotosta alkaen, jolloin käyttöönotto on nopeaa ja vaivatonta varsinkin silloin, kun käytössäsi on Ruuvi Cloud -pilvipalvelu.

Kerroimme myös tässä artikkelissa, että Ruuvi Gateway -reititin voi toimia myös monipuolisemman IoT-ympäristön kulmakivenä silloinkin, kun käytössäsi on muita kuin Ruuvin valmistamia antureita. Tässä tukiartikkelissa käsittelemme Ruuvi Gateway -reitittimen asettamista toimimaan kolmannen osapuolen Bluetooth LE -viestien välittämiseen ja lähettämiseen edelleen yksinkertaiselle Python-ympäristön päällä toimivalle HTTP/HTTPS -palvelimelle.

Reititin on mahdollista myös asettaa lähettämään kolmannen osapuolen anturitietoja MQTT-palvelimelle. Löydät lisätietoja MQTT-asetusten muokkaamisesta täältä. Huomaa, että kolmannen osapuolen anturitietoja ei ole mahdollista lukea Ruuvi Cloud -pilvipalvelusta.

Kuuntele kolmannen osapuolen Bluetooth LE -laitteiden viestintää Ruuvi Gateway -reitittimellä

Ruuvi Gateway -reitittimeen on sisäänrakennettuna ominaisuus, jonka avulla voit kuunnella kaikkia reitittimen läheisyydessä olevia Bluetooth LE -yhteensopivia viestejä, mikä helpottaa nykyisen IoT-ympäristösi laajentamista kolmannen osapuolen antureihin Ruuvin valmistamien antureiden käyttämisen lisäksi. Tämän lisäksi Ruuvi Gateway -reitittimessä on valmiina mahdollisuus välittää anturitietoja HTTP(S) tai MQTT(S) -palvelimille, joka avaa aivan uusia käyttömahdollisuuksia silloin, kun käytät Ruuvi Gateway -reititintä olemassa olevan IoT-ympäristösi osana.

Kolmannen osapuolen antureiden kuunteluasetuksen ottaminen käyttöön vaatii vain yhden muutoksen.

Seuraavaksi näytämme, kuinka tämä tapahtuu Ruuvi Gateway -reitittimen ohjatun käyttöönoton avulla. Paikanna ensimmäiseksi Ruuvi Gateway -reitittimen virtaliittimen vieressä oleva painike ja paina sitä lyhyesti paperiliittimellä reitittimen sisäisen Wi-Fi-yhteyspisteen käynnistämiseksi. Kun yhteyspiste on aktivoitu, liity yhteyspisteeseen valitsemalla Ruuvi Gateway XXXX -niminen verkko Wi-Fi verkkolistaltasi. Ruuvi Gateway -reitittimen yhteyspisteeseen liittymisestä ja ohjatun käyttöönoton avaamisesta on sivuillamme myös yksityiskohtaisempi ohje.

Ohjatun käyttöönoton avauduttua paina Seuraava-painiketta, kunnes pääset Pilvipalveluasetukset -sivulle. Valitse tällä sivulla edistyneiden asetusten alta löytyvä Käytä Ruuvi Cloudia ja/tai vaihtoehtoista palvelinta sekä määritä muita lisäasetuksia -vaihtoehto. Voit ohittaa HTTP(S) ja MQTT(S) palvelinten konfiguroinnin tässä kohtaa ja siirtyä eteenpäin painamalla kaksi kertaa Seuraava, jolloin päädyt Bluetooth-skannaus -sivulle.

Etsi sivulta seuraavaksi Kuuntele kaikkia Bluetooth-majakkaviestejä (ei ainoastaan Ruuvi-antureita) valinta edistyneiden asetusten alta ja valitse tämä, jolloin Ruuvi Gateway -reitittimesi alkaa kuuntelemaan ympäristöstään kaikkia Bluetooth LE -viestejä pelkkien Ruuvi-antureiden kuuntelemisen lisäksi.

Valitse Kuuntele kaikkia Bluetooth-majakkaviestejä Bluetooth-skannaussivulla. Käyttöönottaminen ei voisi olla helpompaa!

Valitse käytettävä protokolla ja kanavat

Valitse seuraavaksi Kuuntele 1 MBit/s -majakkaviestejä protokollaluettelosta. Kanavat 37, 38, ja 39 ovat oletuksena valittuina. Voit jättää molemmat näistä asetuksista oletusasetuksiinsa. Valitse Seuraava, jonka jälkeen asetukset on tallennettu reitittimelle.

Ota käyttöön Python-ympäristön HTTP(S) palvelin

Seuraavissa kohdissa otamme käyttöön Python-ympäristön ja pystytämme yksinkertaisen HTTP(S)-palvelimen lähiverkkoon Mac-tietokoneella.

Mikäli Python-ympäristöä ei ole vielä asennettu, lataa ja asenna se tietokoneellesi täältä:
https://www.python.org/downloads/

Ruuvi Gateway -reititin käyttää POST-komentoja tietojen lähettämiseen HTTP-palvelimelle. Lataa lisäksi alla oleva skripti Ruuvin GitHub -tietolähteestä, jonka avulla asentamasi Pythonin HTTP-palvelin ymmärtää POST-komentoja:
https://github.com/ruuvi/ruuvi.gwui.html/blob/master/scripts/http_server_auth.py

Luo tietokoneellesi Ruuvi-niminen kansio ja lataa yllä oleva tiedosto juuri luomaasi kansioon. Minun tapauksessani loin uuden kansion Lataukset-kansion sisään.

Seuraavaksi avaa Sovellukset -> Apuohjelmat -kansiosta Terminaali-ohjelma.

Luo ja ota käyttöön virtuaalinen ympäristö, päivitä pip ja asenna pycryptodome

  1. Siirry Ruuvi-kansioon Terminaalissa
cd /Users/[yourusername]/Downloads/Ruuvi/
  1. Luo venv
  python3 -m venv .venv

Tämän jälkeen on hyvä tarkastaa, että .venv-kansio luotiin Ruuvi-kansion sisään. Voit tarkastaa tämän avaamalla Finderilla Ruuvi-kansion ja valitsemalla Command+Shift+piste. Tämän avulla näet kansion sisältämät piilotiedostot ja .venv-kansion tulee olla kansion sisällä.

.venv-kansio löydetty!
  1. Ota venv käyttöön
source scripts/.venv/bin/activate
  1. Päivitä pip (valinnainen)
pip3 install --upgrade pip
  1. Asenna pycryptodome
pip3 install pycryptodome

Olemme valmiita Python-palvelimen käynnistämiseen seuraavaksi. Voit valita käytettäväksi joko HTTP- tai HTTPS-palvelimen. Valitse seuraavissa kohdissa joko Vaihtoehto 1 tai Vaihtoehto 2 oman tarpeesi mukaisesti.

Vaihtoehto 1: Käytä HTTP-palvelinta

  1. Siirry Ruuvi-kansioon Terminaalissa
cd /Users/[yourusername]/Downloads/Ruuvi/
  1. Käynnistä HTTP-palvelin
python3 http_server_auth.py --port 8001

Vaihtoehto 2: Luo SSL-sertifikaatit ja käytä HTTPS-palvelinta

Tarvitsemme muutamia tietoja sertifikaattien luomista varten, kuten hostnamen ja client namen.

Nämä voidaan löytää seuraavasti

Kirjoita Mac OS Terminaliin

hostname

Minun tapauksessani hostname on `markos-MacBook-Pro.local`

Client name on sama kuin paikallisverkossa näytetävä Ruuvi Gateway -reitittimen nimi Mac OS -ympäristössä:

Kirjoita Terminaaliin

dns-sd -B

Tämä on omassa verkossani RuuviGateway5FC4.local

Nimi löytyi kätevästi instance name -kohdasta.

Luomme seuraavaksi vaadittavat palvelimen ja asiakkaan käyttämät SSL-sertifikaatit. Tämän toteuttamiseksi käytämme OpenSSL-komentoa Terminaalissa. Huomaa, että sertifikaattitiedostot luodaan siihen kansioon, johon Terminaali osoittaa tällä hetkellä. Omalla kohdallani kansio on User/username/Downloads/Ruuvi/

  1. Siirry Ruuvi-kansioon Terminaalissa
cd /Users/[yourusername]/Downloads/Ruuvi/

Luo palvelinsertifikaatit (SSL)

Luomme ensimmäiseksi 2048-bittiset omalla allekirjoituksella kirjoitetut palvelinsertifikaatit. Toteuta seuraavat kohdat tässä järjestyksessä.

  1. Luo yksityinen avain
openssl genrsa -out server_key.pem 2048
  1. Luo sertifikaatin allekirjoituspyyntö (CSR)
openssl req -new -key server_key.pem -out server_csr.pem
  1. Luo asiakkaan omalla allekirjoituksella kirjoitettu sertifikaatti
openssl x509 -req -in server_csr.pem -signkey server_key.pem -out server_cert.pem -days 365

Jotta sertifikaatin luonti kohdassa 3 onnistuu, sinua vaaditaan vastaamaan muutamaan lisäkysymykseen. Vastaa alla mainittuihin, muut voit ohittaa painamalla Enter. Täytin omalle kohdalleni seuraaavaa:

Maatunnus (2 kirjainta): `FI`
Tunnettu nimi: `markos-MacBook-Pro.local`

Näiden kohtien toteuttamisen jälkeen palvelinsertifikaatit löytyvät Ruuvi-kansiosta.

Luo asiakasohjelman sertifikaatit (SSL)

Luo seuraavaksi asiakasohjelman vaatima sertifikaatti ja yksityinen avain (2048-bittinen RSA-avain). Toteuta seuraavat kohdat tässä järjestyksessä.

  1. Luo yksityinen avain
openssl genrsa -out client_key.pem 2048
  1. Luo sertifikaatin allekirjoituspyyntö (CSR)
openssl req -new -key client_key.pem -out client_csr.pem
  1. Luo asiakasohjelman sertifikaatti
openssl x509 -req -in client_csr.pem -signkey client_key.pem -out client_cert.pem -days 365

Jotta sertifikaatin luonti kohdassa 3 onnistuu, sinua vaaditaan vastaamaan muutamaan lisäkysymykseen. Vastaa alla mainittuihin, muut voit ohittaa painamalla Enter. Täytin omalle kohdalleni seuraaavaa:

Maatunnus (2 kirjainta): `FI`
Tunnettu nimi `RuuviGateway5FC4.local`

Näiden kohtien toteuttamisen jälkeen asiakasohjelman sertifikaatit löytyvät Ruuvi-kansiosta.

Palvelimen ja asiakasohjelman tarvitsemat sertifikaatit on luotu onnistuneesti.

Käynnistä HTTPS-palvelin

  1. Siirry Ruuvi-kansioon Terminaalissa
cd /Users/[yourusername]/Downloads/Ruuvi/
  1. Käynnistä HTTPS-palvelin seuraavalla komennolla:
python3 http_server_auth.py --port 8001 --ssl_cert=./server_cert.pem --ssl_key=./server_key.pem --ca_cert=./client_cert.pem

Määritä Ruuvi Gateway -reititin välittämään viestit HTTP-palvelimelle

Ruuvi Gateway -reitittimen asetuksissa on mahdollista määrittää kolmannen osapuolen anturitietojen lähettäminen HTTP(S) ja/tai MQTT(S) -palvelimille. Tällä kertaa lähetämme tiedot HTTP(S)-palvelimelle. Jos haluat käyttää MQTT-palvelinta käytä avuksi tukiartikkeliamme, jonka löydät täältä.

Aloita asetusten muokkaaminen paikantamalla Ruuvi Gateway -reitittimen virtaliittimen vieressä oleva painike ja paina sitä lyhyesti paperiliittimellä sisäänrakennetun Wi-Fi-yhteyspisteen käynnistämiseksi. Kun yhteyspiste on aktivoitu, liity yhteyspisteeseen valitsemalla Ruuvi Gateway XXXX -niminen verkko Wi-Fi verkkolistaltasi.

Kun ohjattu käyttöönotto avautuu, valitse Seuraava, kunnes saavut Pilviyhteys-sivulle. Valitse tällä sivulla Käytä Ruuvi Cloud -pilvipalvelua ja/tai mukautettua palvelinta ja muokkaa muita edistyneitä asetuksia, paina Seuraava, ja valitse Mukautettu palvelin -sivulla HTTP(S) aktiiviseksi. Valinnan aktivoiminen avaa HTTP-asetusten tekemiseen tarvittavat lisäkohdat.

Tarvitset seuraavaksi paikantaa lähiverkossa palvelimena käyttämäsi tietokoneen IP-osoittee tai paikallisen hostnamen.

Joko

Tarkasta IP-osoite käyttöjärjestelmässä siirtymällä kohtaan Asetukset -> Verkko.

Omalla kohdallani Wi-Fi yhteyden alla näkyy IP-osoite 192.168.1.8.

HTTP(S)-palvelimena toimivan Mac-tietokoneeni käyttämä paikallisverkon IP-osoite.

Tai

Vaihtoehtoisesti Mac-tietokoneita käytettäessä voit myös käyttää paikallista hostnamea. Etsi hostname seuraavasti

Kirjoita Terminaaliin

hostname

Minun tapauksessani hostname on `markos-MacBook-Pro.local`

Lisää seuraavaksi palvelimen kohdeosoite Ruuvi Gateway -reitittimen ohjatussa käyttöönotossa aiemmin valitsemasi palvelinvaihtoehdon mukaan (HTTP tai HTTPS).

HTTP-palvelimen tiedot Ruuvi Gateway -reitittimen ohjatussa käyttöönotossa (vaihtoehto 1)

HTTP-palvelimen asetusten lisääminen on suoraviivaista, sillä tarvittavia tietoja ei ole paljoa.

  1. Anna HTTP-palvelimena toimivan tietokoneesi kohdeosoite. Omalla kohdallani käytän paikallista hostnamea. Käytettävä portti määritettiin aiemmin HTTP-palvelimen käyttöönoton yhteydessä.
  2. Kolmannen osapuolen anturin käyttämä dataformaatti ei ole tiedossa, eikä Ruuvi Gateway -reititin pysty dekoodaamaan tietoja, joten tietojen lähettäminen raakamuodossa on ainoa vaihtoehto.
  3. Aseta lähetysväliksi 10 sekuntia, jolloin saat testausta varten jatkuvia päivityksiä.
HTTP-etuliite ja porttinumero on määritetty käytettävään URL-osoitteeseen.
  1. Varmista, että tekemäsi asetukset toimivat painamalla Tarkasta-painiketta. Mikäli virheitä ei löydetty, paina Seuraava-painiketta, kunnes olet ohjatun käyttöönoton viimeisellä sivulla ja muutokset on tallennettu.

HTTPS-palvelimen tiedot Ruuvi Gateway -reitittimen ohjatussa käyttöönotossa (vaihtoehto 2)

HTTPS-palvelimen asetuksissa tarvitsemme lisäksi määrittää käytettävät SSL-sertifikaatit, mutta käyttöönotto on muilta osin suoraviivaista.

1. Syötä HTTPS-palvelimena toimivan tietokoneesi URL-osoite.
Omalla kohdallani käytän paikallista hostnamea. Käytettävä portti määritettiin aiemmin HTTP-palvelimen käyttöönoton yhteydessä.

2. Kolmannen osapuolen anturin käyttämä dataformaatti ei ole tiedossa, eikä Ruuvi Gateway -reititin pysty dekoodaamaan tietoja, joten tietojen lähettäminen raakamuodossa on ainoa vaihtoehto.

3. Aseta lähetysväliksi 10 sekuntia, jolloin saat testausta varten jatkuvia päivityksiä.

Lataa tarvittavat SSL-sertifikaatit kohdassa SSL-sertifikaatit.

4. SSL-sertifikaattien lataaminen löytyy lähetysväliasetuksen alta. Valitse käytettäväksi sekä asiakkaan ja palvelimen SSL-sertifikaatit. Omalla kohdallani latasin asiakasohjelman sertifikaatin ja avaimen, sekä palvelimen sertifikaatin.

5. Varmista, että tekemäsi asetukset toimivat painamalla Tarkasta-painiketta. Mikäli virheitä ei löydetty, paina Seuraava-painiketta, kunnes olet ohjatun käyttöönoton viimeisellä sivulla ja muutokset on tallennettu.

Tehtyjen määritysten toimivuuden tarkastaminen

Kun sekä palvelimen puolen määritykset että Ruuvi Gateway -reitittimen asetuksiin tehdyt muutokset on viety loppuun, voit vihdoin tarkastaa, että kolmannen osapuolen anturitiedot lähetetään Ruuvi Gateway -reitittimeltä määrittämääsi HTTP(S)-palvelinosoitteeseen ja myös luetaan palvelimella.

Kirjoita muistiin Ruuvi Gateway -reitittimen ohjatun käyttöönoton päätössivulla Ruuvi Gateway -reitittimelle annettu IP-osoite. Minun tapauksessani IP-osoite on 192.168.1.8.

Avaa seuraavaksi selainikkuna.

http://[yourgatewayip]/history

Tällä sivulla näytetään Ruuvi Gateway -reitittimen tällä hetkellä eteenpäin välittämät anturitiedot. Jos määritykset onnistuivat, tässä listauksessa on mukana myös reitittimen kuulemat kolmannen osapuolen anturin tiedot.



Kolmannen osapuolen anturin viesti lähetetään eteenpäin Ruuvi Gateway -reitittimeltä.

Tarkasta vielä, että samat tiedot vastaanotetaan onnistuneesti myös HTTP(S)-palvelimellesi. Näet tämän yksinkertaisesti Mac OS Terminaali-sovelluksessa pyörivän Python-palvelimen lokitiedoista.

HTTPS-palvelin vastaanottaa Ruuvi Gateway -reitittimeltä lähetettyjä tietoja. Määritys on tehty onnistuneesti!

Yhteenveto

Tässä oppaassa tutustuimme kolmannen osapuolten antureiden tietojen keräämiseen Ruuvi Gateway -reitittimellä Ruuvin valmistamien antureiden lisäksi.

Käyttäjät voivat tehokkaasti välittää sekä Ruuvin valmistamien että kolmannen osapuolten valmistamien antureiden tietoja ottamalla käyttöön Ruuvi Gateway -reitittimeen sisäänrakennetun kuunteluominaisuuden.