Closed bk53409 closed 1 month ago
Jel mi može netko detaljnije pojasnit na koji način backend komunicira s ThingsBoardom
Jel mi može netko detaljnije pojasnit na koji način backend komunicira s ThingsBoardom
Da, to bi nas se nekoliko trebalo naći i dogovoriti kako ćemo to. Ja sam istražio mogućnosti ThingsBoarda i imamo generalno dvije mogućnosti:
Ako se mene pita, prvi pristup bi mogao bit loš jer bi za svaki request morali trčati preko REST API-a na ThingsBoard i dohvaćati veliku količinu podataka. Primjerice, kako ćemo provjeriti je li student bio na predavanju 12.12.2012. u 12:15 u D2, a svi telemetry podaci su nam na platformi...
Drugi pristup je ideja da backend sluša promjene na thingsboardu i čim dođe novi telemetry data, backend to dohvati preko MQTT-a i lokalno pohrani kod sebe u svoju bazu (tablica Telemetry iz one slike kaj smo profesoru prezentirali). Ovime bi onda svu logiku radili na backendu i sve potrebne podatke bi imali kod sebe, u jednoj bazi.
Jel mi može netko detaljnije pojasnit na koji način backend komunicira s ThingsBoardom
Da, to bi nas se nekoliko trebalo naći i dogovoriti kako ćemo to. Ja sam istražio mogućnosti ThingsBoarda i imamo generalno dvije mogućnosti:
* koristiti REST API koji ThingsBoard pruža, preko njega možemo dohvatiti telemetry data pojedinog uređaja (TKO se KADA skenirao u KOJOJ dvorani) * koristiti MQTT - backend bi imao dodatan proces (dretvu) koja bi se subscribeala na ThingsBoard MQTT broker i slušala potrebne topicse za telemetry data
Ako se mene pita, prvi pristup bi mogao bit loš jer bi za svaki request morali trčati preko REST API-a na ThingsBoard i dohvaćati veliku količinu podataka. Primjerice, kako ćemo provjeriti je li student bio na predavanju 12.12.2012. u 12:15 u D2, a svi telemetry podaci su nam na platformi...
Drugi pristup je ideja da backend sluša promjene na thingsboardu i čim dođe novi telemetry data, backend to dohvati preko MQTT-a i lokalno pohrani kod sebe u svoju bazu (tablica Telemetry iz one slike kaj smo profesoru prezentirali). Ovime bi onda svu logiku radili na backendu i sve potrebne podatke bi imali kod sebe, u jednoj bazi.
P.S. Možda postoji i treća mogućnost, slobodno pišite :)
Jel mi može netko detaljnije pojasnit na koji način backend komunicira s ThingsBoardom
Da, to bi nas se nekoliko trebalo naći i dogovoriti kako ćemo to. Ja sam istražio mogućnosti ThingsBoarda i imamo generalno dvije mogućnosti:
* koristiti REST API koji ThingsBoard pruža, preko njega možemo dohvatiti telemetry data pojedinog uređaja (TKO se KADA skenirao u KOJOJ dvorani) * koristiti MQTT - backend bi imao dodatan proces (dretvu) koja bi se subscribeala na ThingsBoard MQTT broker i slušala potrebne topicse za telemetry data
Ako se mene pita, prvi pristup bi mogao bit loš jer bi za svaki request morali trčati preko REST API-a na ThingsBoard i dohvaćati veliku količinu podataka. Primjerice, kako ćemo provjeriti je li student bio na predavanju 12.12.2012. u 12:15 u D2, a svi telemetry podaci su nam na platformi...
Drugi pristup je ideja da backend sluša promjene na thingsboardu i čim dođe novi telemetry data, backend to dohvati preko MQTT-a i lokalno pohrani kod sebe u svoju bazu (tablica Telemetry iz one slike kaj smo profesoru prezentirali). Ovime bi onda svu logiku radili na backendu i sve potrebne podatke bi imali kod sebe, u jednoj bazi.
Eto mi treće ideje na pamet: u slučaju da imamo MQTT client koji će syncati našu bazu s telemetry podacima s IoT platforme, ne mora to nužno bit implementirano na backendu. Može se napravit neka mala skriptica koja će se spojit na MQTT, subscribeat na topicse koje dogovorimo i kad god primi neki novi podatak, parsira ga i ovisno o podacima, napravi insert/update u našu bazu, i to je to. Možda još i bolje rješenje jer ne ovisimo o tehnologiji backenda i ne opterećujemo dodatno backend.
Dogovoriti koja će se tehnologija koristiti za izradu backend dijela sustava. Balansirati između korisnosti tehnologije za naše potrebe i znanja koje imamo za tu tehnologiju (tipa, nećemo radit backend u C-u, al opet, ak većina ne zna Python, nećemo uzet Django).
Napisat ovdje što će se od tehnologija koristiti. Imati na umu da će backend komunicirati sa: