/
Control conexión 4G vía SMS en el Huawei E8372H-320
Search
Try Notion
Control conexión 4G vía SMS en el Huawei E8372H-320
Fecha publicación
2022/02/11
#
32
Dificultad
Avanzado
3 more properties
Descripción
Los módems 4G de este tipo funcionan completamente diferente de las generaciones anteriores. Cambiarles el modo de funcionamiento para que trabajen como un dispositivo serie no es tan sencillo.
Pero esto esta lejos de ser un problema, al contrario, es una gran ventaja. Ya que el módem se reconoce como una nueva targeta de red a través de la cuál accedemos a Internet. Más fácil y transparenete imposible.
El reto está en la gestión de SMS para orquestrar la conexión y desconexión. Ya que estos módems disponen de una web para gestionar estos temas.
Aquí te contamos como automatizar todo el procedimiento.
Detalles de funcionamiento
El contenido del SMS se guarda en /var/run/modem, contenido siempre en minúsculas.
Elimina todos los SMS.
Para controlar el módem desde la línea de comandos se usan dos scripts, el de
conexión: modem_on
desconexión: modem_off
Cada vez que se procesa un nuevo SMS este sobrecarga el contenido del fichero /var/run/modem.
Para conectar la conexión se puede hacer ejecutando el script modem_on
Si no tenemos acceso a la máquina, debemos mandar un SMS al número de teléfono que tiene la SIM con el contenido: on
Para desconectar el equipo, el procedimiento es el análogo. Ejecutar modem_off, o enviar un SMS con el contenido off
Cada minuto se ejecuta el script de modem.py a través del crontab
Este script tiene varias funciones
modem.py - se encarga de recibir los SMS, procesarlos y actualizar el contenido de /var/run/modem; borrando los mensajes después de haberlos procesado.
modem.py - se encarga de lanzar la conexión a Internet y desconectarla.
modem.py - vigila que la conexión este activa haciendo ping a una determinada IP de Internet para asegurar que el enlace esta vivo. En caso de problema de conexión vuelve a lanzar la conexión.
modem.py - se ejecuta cada minuto a través de crontab.
Instalación del código
Estructura de directorios y copia del código
mkdir -p /opt/modem
YAML
El código que usaremos para implementar la lógica esta en el repostiorio:
y para desplegarlo debemos:
cd /opt/modem git clone https://github.com/i40sys/modem-control-huawei-8372.git . chmod 755 modem.py modem_on modem_off
YAML
enlazamos ejecutables en los directorios correspondientes:
ln -s /opt/modem/modem_on /usr/local/bin/modem_on ln -s /opt/modem/modem_off /usr/local/bin/modem_off
YAML
añadimos el script a crontab para que se ejecute cada minuto
*/1 * * * * cd /opt/modem && ./venv/bin/python3 modem.py
YAML
creamos virtualenv para python e instalamos dependencias:
apt install python3-venv cd /opt/modem python3 -m venv venv . venv/bin/activate pip3 install -r requirements.txt
YAML
Configuración
La configuración esta en modem.py , concretamente en sus primeras líneas define ciertas posibilidades de configuración. Exactamente son las siguientes líneas:
DEBUG_LEVEL = logging.DEBUG DESIRED_DEFAULT = "on" PING_IP = "8.8.8.8, 8.8.4.4, 1.1.1.1, 1.0.0.1" MODEM_FILE = "/var/run/modem" MODEM_IP = "192.168.8.1" LOG_FILE = "/var/log/modem.log" # change for your credentials: MODEM_USER = "admin" MODEM_PASSWORD = "DQBETBG90JR"
YAML
Utilidad reset.sh que hay en el repositorio desplegado
Este script nos permite simular la conexión y desconexión físca del módem al puerto USB cuando estamos en remoto.