fablabromagna-org / FLR-LoRaWAN

Repository di sperimentazione su LoraWAN, dall'implementazione dei device remoti al NetworkServer
GNU General Public License v3.0
0 stars 0 forks source link

Connessione contemporanea di un device a TTN e ChirpStack #3

Open itarozzi opened 1 year ago

itarozzi commented 1 year ago

Dal punto di vista teorico dovrebbe essere possibile collegare contemporaneamente lo stesso device a ChirpStack (via MQTT) e ad altri NS, come ad esempio TTN (via UDP).

Abilitando però entrambi, il device non sembra registrarsi correttamente su TTN.

Può forse dipendere dalla gestione del JOIN, essendo tutti i dati di connessione e autenticazione identici? Il device esegue il comando AT per il JOIN_REQUEST, ma c'è da capire a chi arriva e soprattutto come gestire le risposte di JOIN_ACCEPT che vengono restituite da più NS

itarozzi commented 1 year ago

Da una prima ricerca, e da quanto scritto anche al seguente link, il collegamento di uno stesso device a più LoRaWAN Network Server (LNS) non è possibile. Questo perchè il JOIN prevede una risposta da parte di LNS al device, e in quella risposta vengono scambiate anche le chiavi crittografiche per la trasmissione. Inoltre, anche dal punto di vista del traffico, se anche fosse possibile un JOIN multiplo usando le stesse chiavi, si avrebbe comunque un conflitto di messaggi ACK o DOWNLINK.

Una soluzione per avere una sorta di backup di servizio o un duplice LNS potrebbe essere quella di eseguire un JOIN (con AppID differente) prima verso un LNS e poi, dopo aver inviato i dati, verso il secondo NLS. Ma questo comporta di fatto un duplice invio, con ripercussioni su batteria e tempistiche.

Invece un GATEWAY può essere registrato contemporaneamente su più LNS senza problemi, in quanto non esiste un concetto di JOIN. Esiste uno scambio dati da GW e LNS, ma solo relativo alla ricezione dell'ID e dei dati di localizzazione, oltre ad un invio periodico di keepalive. Ma essendo il GW trasparente sui pacchetti tra Device e LNS, può tranquillamente servire più LNS.