02/11/2022, 18:08
Buongiorno a tutti,
sono alle prese con un problema che sta bloccando un intero progetto, ho fatto molti test ma non riesco a trovare una soluzione .
Si tratta di un comando che se avviato “a mano” in una shell di linux funziona correttamente, mentre non funziona con crontab. Questo script consente di effettuare una chiamata telefonica utilizzando un componente hardware chiamato “Hat SIM7600G-H” attaccato al mio Raspberry Pi Zero.
Il componente in questione è un modulo che si collega al Raspberry tramite USB, questo modulo contiene una sim e consente di collegarsi a internet (dalla sim), mandare SMS o fare telefonate (nel mio caso deve “fare uno squillo”). Questi sono due link sul sito di acquisto e un tutorial di youtube.
https://www.melopero.com/shop/raspberry-...obal-band/
https://www.youtube.com/watch?v=ABnwz-IYzqA (il modello è leggermente diverso)
Il file di crontab contiene un solo comando che serve a lanciare lo script di funzionamento:
* * * * * minicom -D /dev/ttyUSB2 -S /home/pizero/esempio/call.txt
Il comando minicom, se lanciato senza crontab, apre una shell in cui inserire i comandi AT (comandi testuali per indicare le operazioni che deve svolgere questo componente). Il file call.txt contiene queste quattro righe
AT+CPIN=1234
AT+CSCS=”GSM”
AT+CMGF=1
ATD+39123456789;
Praticamente il file contiene i comandi che potrei inserire io a mano nella shell di minicom ma che in questo caso vengono presi dal file call.txt . Si tratta di comandi per inserire il pin della sim e effettuare una chiamata al numero dell’ultima riga che è il destinatario (ho coperto pin e telefono ).
Veniamo al dunque: crontab dovrebbe fare ogni minuto uno squillo al numero indicato (cosa che non succede), mentre se eseguo lo stesso comando (uguale senza asterischi) dalla shell linux parte istantaneamente una telefonata (quindi il componente funziona).
Sono certo che non è un problema di crontab: per altri comandi funziona correttamente e anche dai log di sistema vedo che viene eseguito. Mentre inserendo il comando minicom in crontab non succede assolutamente nulla.
Ho provato anche a inserire il comando minicom in un file .sh e da crontab richiamare quel file, senza nessun miglioramento.
Qualcuno potrebbe aiutarmi
Molte grazie
sono alle prese con un problema che sta bloccando un intero progetto, ho fatto molti test ma non riesco a trovare una soluzione .
Si tratta di un comando che se avviato “a mano” in una shell di linux funziona correttamente, mentre non funziona con crontab. Questo script consente di effettuare una chiamata telefonica utilizzando un componente hardware chiamato “Hat SIM7600G-H” attaccato al mio Raspberry Pi Zero.
Il componente in questione è un modulo che si collega al Raspberry tramite USB, questo modulo contiene una sim e consente di collegarsi a internet (dalla sim), mandare SMS o fare telefonate (nel mio caso deve “fare uno squillo”). Questi sono due link sul sito di acquisto e un tutorial di youtube.
https://www.melopero.com/shop/raspberry-...obal-band/
https://www.youtube.com/watch?v=ABnwz-IYzqA (il modello è leggermente diverso)
Il file di crontab contiene un solo comando che serve a lanciare lo script di funzionamento:
* * * * * minicom -D /dev/ttyUSB2 -S /home/pizero/esempio/call.txt
Il comando minicom, se lanciato senza crontab, apre una shell in cui inserire i comandi AT (comandi testuali per indicare le operazioni che deve svolgere questo componente). Il file call.txt contiene queste quattro righe
AT+CPIN=1234
AT+CSCS=”GSM”
AT+CMGF=1
ATD+39123456789;
Praticamente il file contiene i comandi che potrei inserire io a mano nella shell di minicom ma che in questo caso vengono presi dal file call.txt . Si tratta di comandi per inserire il pin della sim e effettuare una chiamata al numero dell’ultima riga che è il destinatario (ho coperto pin e telefono ).
Veniamo al dunque: crontab dovrebbe fare ogni minuto uno squillo al numero indicato (cosa che non succede), mentre se eseguo lo stesso comando (uguale senza asterischi) dalla shell linux parte istantaneamente una telefonata (quindi il componente funziona).
Sono certo che non è un problema di crontab: per altri comandi funziona correttamente e anche dai log di sistema vedo che viene eseguito. Mentre inserendo il comando minicom in crontab non succede assolutamente nulla.
Ho provato anche a inserire il comando minicom in un file .sh e da crontab richiamare quel file, senza nessun miglioramento.
Qualcuno potrebbe aiutarmi
Molte grazie