Continuando a sperimentare con i miei hotspot pi-star, realizzati su Raspberry Pi di varie versioni, nei giorni scorsi io e alcuni Radioamatori sperimentatori ci siamo chiesti se fosse possibile gestire le connessioni verso i vari TG e reti digitali tramite degli appositi comandi a tempo da inviare alla scheda MMDVM, utilizzando il sistema di crontab presente nel Raspberry Pi. 

La risposta è SI, lo si può fare; e anche  in questo caso le informazioni erano facilmente reperibili in rete da tempo. Le ho lette e poi ho desiderato sintetizzarle e tradurle in questo articolo.

 

 

Premessa

Le prove descritte in questo articolo sono state da me realizzate e provate su un Raspberry Pi 0 W, con una scheda MMDVM Simplex, connessa alla rete Brandmeister, utilizzando una chiave BM API v2.
Versione Pi-Star: 4.1.6
Dashboard: 20220904

 

AVVISO a chi ha poca pratica con la gestione del pi-star. La descrizione dei vari comandi presenti in questo articolo è abbastanza dettagliata ed è stata realizzata per coloro che hanno già un po’ di pratica con i sistemi Linux / Unix e del ‘cosa si nasconde dietro le quinte’ dell’hotspot pi-star.  Per i neofiti, non prendete paura, ma leggete questo articolo con più attenzione, per non rimanere con un hotspot temporaneamente non funzionante, che sarà poi necessario riconfigurare da capo.

IMPORTANTE: Prima di procedere con le successive prove sul vostro hotspot, assicuratevi di NON avere alcun TG STATICO configurato nel vostro Hotspot.
Se ne avete configurato qualcuno, rimuovetelo utilizzando la semplice dashboard che avete nella pagina di amministrazione del vostro hotspot, oppure utilizzando l’apposita tabella presente nel portale di BM.  Non facendolo, le configurazioni locali applicate alla scheda MMDVM e quelle presenti sul server di BM andrebbero in contrasto tra loro.

IMPORTANTE: Ricordatevi che per effettuare delle prove di funzionamento utilizzando i comandi per gestire lo Slot 1, li potrete realizzare solamente se utilizzate una scheda MMDVM DUPLEX!
Ho sperimentato anche questa opzione, e vi assicuro che i comandi inviati hanno funzionato perfettamente.

ATTENZIONE: Se utilizzate delle connessioni a server DMR diversi da BM, le seguenti configurazioni non potranno funzionare, non potendo utilizzare la BM API key v2.

I comandi Cron utilizzati all’interno della mia versione pi-star 4.1.6 hanno funzionato bene; Andy Taylor MW0MWZ aveva aggiunto tutti gli script necessari per connettersi in tutte le modalità, già dalla versione 4.1.2 in poi.

Oggi, con la versione 4.1.6 aggiornata e la BM API Key v2 correttamente installata, i comandi in DMR – YSF e XLX funzionano correttamente, essendo stati risolti alcuni problemi di lettura Python durante l’uso della precedente BM API Key v1.

Tutte le varie prove che ho effettuato hanno funzionato perfettamente (alcune specifiche, non descritte in questo articolo), anche continuando ad utilizzare l’hotspot con la mia configurazione DMR Gateway Simplex personalizzata.

 

 

Conoscenza dei comandi base per la gestione delle connessioni

Il metodo più semplice per inviare velocemente i comandi al vostro hotspot è quello di connettersi via SSH alla console del vostro nodo, ed inviarli da riga di comando (o da terminale, oppure utilizzando il programma PuTTY, ad esempio…).

Volendo utilizzare un terminale a riga di comando per connettere il vostro hotspot in SSH, dovrete aprire un terminale (su linux), o aprire un Prompt dei comandi (su Windows), e digitare il seguente comando di connessione:

ssh pi-star@numero_IP_del_pistar

seguita poi dall’inserimento della password che avete configurato per l’accesso (di dafault è raspberry).

 

 

Di quali comandi ci occuperemo principalmente in questo articolo

Vi elenco velocemente i comandi base utilizzati per effettuare i vari tipi di connessione.

  • per connettere un Reflector XLX, utilizzare il comando: sudo pistar-link ref039_g
  • per il sistema YSF, utilizzare il comando: sudo pistar-ysflink ysf86098
  • per un TG del sistema BM, utilizzare il comando: sudo pistar-bmapi addtg 2230 0
  • per il sistema TGIF, utilizzare il comando: sudo pistar-tgifapi link 9996 0

I diversi comandi di disconnessione, verranno descritti negli esempi seguenti, contenuti in questo articolo.
Come vedete chiaramente negli esempi descritti qui sopra, lo slot utilizzato su un hotspot simplex è SEMPRE lo 0.

IMPORTANTE: Per gli hotspot DUPLEX, i timeslot per le reti BM e TGIF devono essere configurati come 1 oppure 2, al posto del numero 0; le connessioni risulteranno essere statiche.

 

 

Controllo della chiave BM API corretta

ATTENZIONE: Una volta connessi al vostro hotspot, la prima cosa da verificare è quella di controllare il tipo di chiave API BM che avete installato.
Fatelo subito, inviando il seguente comando:

sudo pistar-bmapi apikey

il vostro hotspot, vi risponderà con un testo simile a questo:

Using BM API v2
Your BrandMeister API Key is: visualizzerete_tutto_il_codice_della_vostra_chiave_API_v2……………………

Ora avrete la certezza che state utilizzando la chiave API v2 di Brandmeister!

NOTA: Nel caso venisse visualizzato che state utilizzando ancora la chiave BM API v1, procedete a sostituirla installando la nuova chiave BM API v2, seguendo le informazioni che ho descritto nei precedenti articoli su questo sito.

Solo dopo aver avuto la conferma che il sistema sta utilizzando la chiave BM API v2, procedete con le successive informazioni descritte nell’articolo.

 

 

Conoscenza dei comandi che utilizzerete

Operando dal terminale dell’hotspot pi-star, digitate solo il nome del comando per vedere quali sono tutte le opzioni previste dal programma. Sono disponibili anche comandi per altre modalità, come quelle utilizzate per la rete NXDN e P25.

ATTENZIONE: Tutti i comandi di esecuzione verso la scheda MMDVM DEVONO essere inviati con profilo di amministratore del sistema (root).

 

 

Comando per la gestione dei Reflector in DSTAR

Iniziamo, conoscendo il seguente comando pi-star-link (che utilizzerete per gestire le connessioni DSTAR verso i Reflector); deve essere inviato con profilo di amministratore (anticipando il comando da eseguire, con il comando amministrativo sudo):

sudo pistar-link

To unlink from any connected reflector, use: pistar-link unlink
To link to REF000 A for example, use: pistar-link ref000_a

If you need to make a reflector FIXED so that users cannot unlink,
for schedulling connections via CRON for example you can use the
the following: pistar-link ref000_a fixed
Should you wish to Un-Fix a reflector, relink to the same reflector
without the fixed flag, such as: pistar-link ref000_a

 

Lascio a voi la traduzione del testo informativo del comando.  Ritengo molto interessante conoscere l’utilizzo aggiuntivo dell’opzione fixed, da poter aggiungere al comando per non permettere agli utenti del nodo di sconnettere il Reflector.

NOTA: Se non avete attivato la modalità D-STAR sul vostro hotspot, il sistema risponderà nel seguente modo:

remotecontrold: unable to get a response from the gateway/starnetserver

 

 

Comando per la gestione dei TG e QSO in DMR BM

Anche il comando pi-star-bmapi (che utilizzerete per gestire le connessioni DMR sulla rete BM), deve essere inviato con profilo di amministratore (sudo):

sudo pistar-bmapi

NOTE: In the below example commands, please replace {TG Number} with
the number of the Talkgroup you wish to add/remove. For example 12345.

Similarly the {TimeSlot} should be replaced with your target time
slot (0, 1, 2), for hotspots it is “0” (you can also omit the TimeSlot
value), for duplex repeaters it will be either “1” for TS1 or “2” for TS2.

Reflector numbers are from 4000 to 5000

To add a static TG: pistar-bmapi addtg {TG Number} {TimeSlot Number}
To remove a static TG: pistar-bmapi deltg {TG Number} {TimeSlot Number}
To drop all Dynamic TGs: pistar-bmapi dropdyn {TimeSlot Number}
To drop the current QSO: pistar-bmapi dropqso {TimeSlot Number}
To set the current position: pistar-bmapi setpos {Lattitude} {Longitude} {Altitude}

 

Anche qui lascio a voi la traduzione del testo informativo delle varie opzioni del comando. Come potete vedere, ogni comando prevede moltissime funzioni interessanti.
Con questo comando, ad esempio, potete provare a gestire il TG (aggiungerlo, toglierlo, fare il Drop dei TG dinamici, fare il Drop del QSO in corso, configurare la posizione geografica inserendo direttamente dei dati specifici). Qui di seguito, ne approfondiamo qualcuno.

Scrivendo qui un esempio, inviando il comando:

sudo pistar-bmapi addtg 2241 0

il sistema vi risponderà così:

Using BM API v2
Request to BrandMesiter API: Add TG 2241 to TimeSlot 0 for DMR ID 222448316
Answer from BrandMesiter API: OK

e nella pagina di Admin del vostro pistar, noterete che il TG 2241 è stato aggiunto tra i TG statici.  Per rimuoverlo, inviate il comando:

sudo pistar-bmapi deltg 2241 0

il sistema vi risponderà così:

Using BM API v2
Request to BrandMesiter API: Delete TG 2241 from TimeSlot 0 for DMR ID 222448316
Answer from BrandMesiter API: OK

 

E così via… Fate le vostre prove e controllate i risultati sia da lato terminale che sulla pagina di Admin del pi-star.

 

 

Comando per la gestione dei TG sulla rete TGIF

Anche il comando pi-star-tgifapi (che utilizzerete per gestire le connessioni TGIF), deve essere inviato con profilo di amministratore (sudo):

sudo pistar-tgifapi

NOTE: In the below example commands, please replace {TG Number} with
the number of the Talkgroup you wish to link. For example 31665.

Similarly the {TimeSlot} should be replaced with your target time
slot number, either 1 or 2

To set the static TG: pistar-tgifapi link {TG Number} {TimeSlot}
To remove the static TG: pistar-tgifapi clear {TimeSlot}

Check the link status: pistar-tgifapi status

 

Anche questa volta lascio a voi la traduzione del testo informativo delle varie opzioni del comando. Come potete vedere, anche questo comando prevede alcune funzioni interessanti.

Per fare qui un esempio, inviando il comando:

sudo pistar-tgifapi status

il sistema vi risponderà così:

No connection to TGIF detected, if you only just rebooted/re-connected you may need to wait a little longer.

Inserendo un comando di connessione:

sudo pistar-tgifapi link 22200 0

ATTENZIONE: Il sistema dovrebbe connettersi al TG indicato.  Ad oggi questo comando ancora non funziona perfettamente con la BM API key v2, in quanto il sistema restituisce il testo:

Request to TGIF API: Set TimeSlot 0 to TG 22200 for DMR ID
Answer from TGIF API: Somthing went wrong with this request

Quindi non  è sicuro che l’hotspot si sia collegato al TG indicato. 
NOTA: La prova che il TG sia connesso correttamente, sarà la visualizzazione dei QSO (in questo caso sul TG 4022200), che appariranno sulla dashboard del vostro hotspot.

Per disconnettere il TG, inviare il seguente comando:

sudo pistar-tgifapi clear 22200 0

e potreste ottenere una risposta simile a questa:

Request to TGIF API: Clear TG from TimeSlot 22200 for DMR ID
Answer from TGIF API: Somthing went wrong with this request

Normalmente, anche in presenza di questo messaggio, il TG viene disconnesso dall’hotspot.

La soluzione a questo problema?  Ancora non c’è. 
Io sono riuscito ad ovviare a questo problema, inserendo la dashboard TGIF Manager, nella pagina Admin del mio hotspot.
Lo potete fare anche voi, seguendo le informazioni che ho scritto nell’articolo sulla MMDVM Simplex.

 

 

Comando per la gestione delle connessioni con i flussi YSF e FCS

Non volutamente per ultimo, ecco descritto il comando per gestire le connessioni in YSF e FCS:

sudo pistar-ysflink

To unlink from any connected reflector, use: pistar-ysflink unlink
To link to YSF31672, use: pistar-ysflink ysf31672
To link to FCS002-90, use: pistar-ysflink fcs00290

Le connessioni in YSF sono precise e funzonanti.

NOTA: Effettuando altri precedenti test in FCS, assieme all’Amico Antonio IZ0MXY, abbiamo potuto constatare che le connessioni al sistema in FCS non sono perfettamente funzionanti e corrette.
Fatele a vostro rischio; molto spesso il pi-star si connettere ad altri Reflector, diversi da quelli indicati nel comando. Abbiamo già segnalato il problema allo Staff di pi-star, e siamo in attesa che risolvano questo bug.

Ad esempio, per connettere in YSF il sistema multi protocollo Lazio, utilizzate questo comando:

sudo pistar-ysflink ysf03832

il sistema risponderà con:

Command sent: “LinkYSF03832” to port: 6073

sul YSF Network,  presente nella pagina di Admin del vostro hotspot, comparirà la connessione :

IT-I0-Lazio

NOTA: Tutto il traffico della connessione YSF IT-I0-Lazio avverrà sul vostro TG locale 7000009

Per disconnettere, utilizzate il comando:

sudo pistar-ysflink unlink

e sulla pagina di Admin del vostro hotspot, scomparirà la connessione suddetta.

 

 

Come inviare i comandi alla scheda MMDVM per utilizzare le varie reti tramite una connessione SSH

Credo che molti di voi conosceranno già il funzionamento di base della scheda radio MMDVM, e della sua possibilità di funzionare con diverse reti DMR.

Per chi desiderasse fare qualche prova di sperimentazione SEMPLICE sul proprio hotspot personale e inviando solo i comandi da terminale, gli sarà necessario connettersi via web all’hotspot e utilizzare la sua  modalità interna per utilizzare i comandi di terminale (attraverso il menu Configurazione > Esperto > SSH Access).

Una volta connessi in modalità terminale, potrete inviare i vostri comandi direttamente all’interno del sistema operativo del pi-star.

IMPORTANTE: Vi ricordo che per fare le prove di funzionamento utilizzando lo Slot 1, dovete aver installato una scheda MMDVM DUPLEX!

 

 

E se desiderate automatizzare dei comandi a tempo?

Prevedere una gestione automatizzata alle reti / TG / Room (giornaliere, settimanali, a tempo…) rende utili questi comandi e le loro opzioni; ma non utilizzandole a mano dalla riga di comando!
Ci penserà crontab a renderle automatizzate!

 

 

Come programmare i comandi per la scheda MMDVM per le varie reti tramite il sistema Crontab

Di seguito farete delle prove modificando il file che gestisce le temporizzazioni del Raspberry (crontab); per questo motivo vi suggerisco di mettervi al sicuro e fare prima un bel backup del vostro sistema funzionante.
Per prima cosa eseguite il backup della vostra configurazione pi-star (menu Backup) e (se possibile), della vostra scheda SD, in modo da poter ripristinare velocemente il funzionamento del vostro sistema.

Una volta che avrete messo il vostro backup al sicuro, utilizzate il menu della dashboard del pi-star e selezionate: Configurazione > Esperto > Sistema Cron.

Il codice che vedrete già presente all’interno della pagina, sono le attuali esecuzioni cron a livello di sistema, già esistenti.  Sono dei comandi a tempo che gestiscono automaticamente l’aggiornamento software del vostro hotspot.
Vi riporto quelle già presenti nel mio pi-star:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don’t have to run the `crontab’
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=”iv3bvk@gmail.com”

# m h dom mon dow user command
*/5 * * * * root /usr/local/sbin/pistar-upnp.service start > /dev/null 2>&1 &
17 * * * * root cd / && run-parts –report /etc/cron.hourly
43 4 * * * root mount -o remount,rw / && cd / && run-parts –report /etc/cron.daily
47 3 * * 7 root mount -o remount,rw / && cd / && run-parts –report /etc/cron.weekly
52 3 1 * * root mount -o remount,rw / && cd / && run-parts –report /etc/cron.monthly

 

NOTA: Per evitare una ridondanza con tutti i comandi descritti sopra, in questi prossimi esempi vi descriverò come inserire i comandi a tempo solo per il sistema DMR BM e YSF. Per inserire gli altri comandi, la tecnica rimane fondamentalmente la stessa.

I comandi crontab utilizzano questa tecnica, e i comandi di sistema devono essere inviati con l’utente root:

 

 

 

 

 

 

 

 

Per inserire i vostri comandi, dopo l’ultima riga presente nella pagina (che per me attualmente termina con “/etc/cron.monthly”), su una nuova riga, aggiungete e/o  modificate il contenuto del file, utilizzando il testo seguente o uno similare (scritto con le vostre impostazioni):

# Connessione di default alla rete BM TG 2230 TimeSlot 2 alle 09:00, poi disconnessione alle 22:30 di ogni Venerdì, ogni 5 giorno della settimana (0=Domenica)
# Questa riga hash viene vista come commento, e non verrà eseguita. La linea di comando inizia con: MIN HOUR DOM MON DOW USER COMMAND
00 09  * * 5   root  pistar-bmapi    addtg 2230 0
30 22  * * 5   root  pistar-bmapi    deltg 2230 0

Questo è un semplice esempio dell’impostazione di configurazione di una connessione / disconnessione DMR BM.
Ogni riga che inizia con il carattere   #   non viene eseguita, ma vi permette di lasciare un commento al vostro codice.  Queste righe di commento devono essere continue, senza l’utilizzo dell’a capo.
NOTA: Se volete andare a capo nella riga, iniziatela nuovamente con un carattere # .

 

# Connessione di default al TG MultiProtocollo Lazio in YSF la Domenica sera alle ore 19:00 e disconnessione alle 22:00 dello stesso giorno
00 19 * * 0   root pistar-ysflink     ysf03832  
00 22 * * 0   root pistar-ysflink     unlink

Questo esempio, invece, riguarda la configurazione di una connessione / disconnessione programmata in modalità YSF.

Il codice che ho scritto (come esempio) qui sopra, vi sarà utile per capire come sia profonda la programmazione del sistema crontab, che permette sia temporizzazioni semplici che davvero molto particolareggiate e complesse.

Eccovi un esempio, di come compaiono le due configurazioni di esempio, all’interno della pagina System Cron dell’hotspot:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

NOTA: Una volta apportate le modifiche ai comandi Cron, ricordatevi di Applicare le modifiche ai comandi utilizzando l’apposito pulsante posizionato in fondo alla pagina.

Non inserisco ulteriori configurazioni in questo articolo, in quanto potete visualizzarne diverse direttamente nella pagina dell’articolo originale. 

 

ATTENZIONE all’uso dei TIMER: Fate MOLTA ATTENZIONE se avete impostato dei timer di ri-connessione all’interno della vostra configurazione DMR Gateway, se la state utilizzando.  Soprattutto per quanto riguarda il timer della connessione del servizio XLX (vedere i miei precedenti articoli). In questo caso, impostate il timer a 0 nella configurazione XLX del DMR Gateway, altrimenti quel timer falserà i timer indicati nella configurazione del crontab.

 

 

Fate pratica con i comandi automatizzati Cron

Imparate ad utilizzare approfonditamente i comandi Cron e vederete che vi si aprirà un nuovo mondo di possibilità!  Leggete le informazioni presenti in questo sito, che spiegano molto bene la particolarità della sua programmazione e offre una moltitudine di esempi di utilizzo.
Attraverso i comandi Cron potrete far fare ciò che desiderate a qualsiasi dispositivo che utilizzi un sistema operativo Unix / Linux.
Per farvi un esempio, è anche possibile gestire i LED del Raspberry e della scheda MMDVM, far riavviare solo alcuni servizi interni o anche l’intero hotspot, quando lo si desidera.

 

 

Conclusioni

Giunti a questo punto, avete potuto vedere le configurazioni di esempio più comuni, ma voi potete realizzarne di tutti i tipi e quantità. Effettuate tutti i test personali che desiderate, e magari riportate sotto a questo articolo le vostre considerazioni.

Come già scritto più volta, queste informazioni devono essere utilizzate a scopo di sperimentazione. Programmare dei timer ad un ripetitore radio digitale può essere vantaggioso per certi versi, ma anche fastidioso per altri.
A buon intenditor, poche parole…

 

Buon divertimento e sperimentazione con le radio digitali e il software libero.

’73 de Paolo IV3BVK (K1BVK) e Antonio IZ0MXY


Scopri di più da Il mondo di Paolettopn (IV3BVK - K1BVK)

Abbonati per ricevere gli ultimi articoli inviati alla tua e-mail.

Grazie per aver visitato il mio blog, lasciate un vostro commento a questo post...