Archivi autore: iqdata

VoxLibera

Meshtastic è una rete mesh decentralizzata che ha molte potenzialità tra le quali quella di funzionare anche in assenza di segnale cellulare.

Lo svantaggio di una rete decentralizzata è che, se un messaggio viene inviato e nessuno lo riceve, esso va perso per sempre.

Da qui nasce l’idea di VoxLibera: un sistema “ponte” tra due reti, ad esempio Meshtastic e Telegram, che consente di intercettare i messaggi e rilanciarli, garantendo che non vadano dispersi e aumentando le possibilità di comunicazione efficace.

Immaginiamo il seguente scenario: un gruppo di escursionisti si avventura in montagna, all’interno di una valle fortunatamente coperta dalla rete Meshtastic, ma priva di segnale cellulare. A causa di un imprevisto, sono costretti ad accamparsi per la notte.

Per segnalare la situazione, inviano un messaggio attraverso un particolare canale Meshtastic. Il messaggio rimbalza tra i nodi fino ad arrivare a un particolare nodo, il “cacciatore” , che lo inoltra a un server centrale.Da li il messaggio viene letto dal sw VoxLibera che, tramite un bot, pubblica il contenuto su un canale Telegram.

Qualcuno legge il messaggio sul Telegram e risponde. La risposta viene rilevata dal bot di VoxLibera, che la inoltra tramite il server centrale, a uno o più nodi “cacciatori”, i quali lo trasmettono via radio, raggiungendo infine gli escursionisti.

Gli escursionisti sono tranquilli: hanno potuto avvertire della loro situazione. Anche i familiari sono rassicurati, sapendo il motivo del ritardo e che tutto è sotto controllo.

Gli scenari di utilizzo quindi possono essere i più svariati: dalle escursioni in montagna ai contesti di emergenza, dalle comunicazioni in aree rurali prive di copertura cellulare fino agli eventi o raduni in cui le reti tradizionali risultano sature.

La cosa davvero importante è usare la tecnologia in modo efficace, adattandola al contesto e sfruttandone al meglio le potenzialità per garantire connettività, sicurezza e comunicazione anche dove normalmente sarebbe impossibile.

Se interessati a provare il sistema,ho messo in piedi una istanza di VoxLibera che usa il canale meshtastic VoxLibera, ( V e L maiuscole), con psk VXZVOddnfJg0Cm0K32XL5/VhW0FmK6UqXgGYxWIftSo=,

Si può aggiungere via cli con il comando
meshtastic –ch-add ‘VoxLibera’ –ch-set psk 0x55765539d7677c98340a6d0adf65cbe7f5615b41662ba52a5e0198c5621fb52a
oppure cliccando qui
Il canale va aggiunto a quelli esistenti

il canale telegram VoxLibera è questo: VoxLibera
https://t.me/voxlibera2

su Telegram, i messaggi che arrivano da Meshtastic risultano mandati da un bot, e contengono ms:<long_name del nodo che trasmette> >, su Meshtastic, i messaggi che arrivano da Telegram risultano mandati da un nodo particolare, nel nostro caso l’ho chiamato proprio VoxLibera, e hanno il prefisso tg:<utente telegram> >

Mappa dei nodi Meshtastic® ricevuti via radio

L’idea alla base

L’idea alla base della costruzione della mappa dei nodi e delle loro relazioni è utilizzare i messaggi radio ricevuti da nodi che abbiamo chiamato ‘cacciatori’.
Questi nodi sono normalissimi dispositivi sui quali gira Meshtastic collegati a un computer (un PC o una single board computer) che, tramite uno script python che usa le API python meshtastic, inoltrano al server delle mappe specifici tipi di pacchetti ricevuti via radio ( telemetrie, informazioni, etc), inoltre, i nodi eseguono periodicamente dei “traceroute” verso i nodi a loro conosciuti.

Lo script può essere anche fatto girare in ambiente docker

I dati provenienti dai pacchetti nodeinfo e di telemetria vengono utilizzati per determinare la posizione e lo stato di ciascun nodo, generando allo stesso tempo uno storico utile alla visualizzazione di grafici.
I risultati dei traceroute, invece, vengono impiegati per disegnare le frecce che rappresentano i collegamenti tra i nodi sulla mappa.

Il software sul server quindi raccoglie e aggrega queste informazioni, visualizzandole in una mappa interattiva, inoltre, le informazioni sulle relazioni tra i nodi vengono anche usate per fare un grafo interattivo

Le frecce sono colorate in base alla direzionalità del link: rosse se il collegamento è stato rilevato in una sola direzione, blu se è bidirezionale.
Va però chiarito che una freccia rossa non indica necessariamente un link monodirezionale: semplicemente, non è stato osservato nessun salto in quel senso.

Dallo script python all’app android…

Lo script python prevede un nodo dedicato e un PC, che non tutti hanno a disposizione, da qui l’idea… perchè non implementare il “cacciatore” su android ? E perchè non partire dall’app ufficiale, che già contiene tutto, facendogli qualche piccola modifica ?

L’app è come quella ufficiale, l’unica cosa ha un menu in più “hunting mode”, che va abilitato per fare in modo che l’app posti i dati sul server delle mappa.

L’app è costantemente aggiornata, le releases più recenti possono essere scaricate da qui https://github.com/emp3r0r7/DarkMesh/releases

Inoltre c’è la possibilità di schedulare l’invio di messaggi a una certa ora, utile per implementare automatismi o domotica

Una volta inserite le informazioni come sopra e premuto “VALIDATE”, l’app diventerà un “cacciatore”… quando il server avrà informazioni sufficienti fornite dall’app, il risultato sarà visibile sulla mappa.

Da notare che l’app dark può convivere in parallelo a quella ufficiale, quindi può far comodo se si hanno due nodi