Control conexión 4G vía SMS en el Huawei E8372H-320

Fecha publicación
#
32
Dificultad
Avanzado
3 more properties
Publicado
tags
i40sys, industry 4.0, industry40.systems, industrial, plc, siemens, omron, ubuntu, linux, iot gateway, gateway, iot, internet of things, modem, 3G, 4G, internet, SMS, huawei, e8372

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

Instalación del código

Estructura de directorios y copia del código

YAML
mkdir -p /opt/modem
El código que usaremos para implementar la lógica esta en el repostiorio:
y para desplegarlo debemos:
YAML
cd /opt/modem
git clone https://github.com/i40sys/modem-control-huawei-8372.git .
chmod 755 modem.py modem_on modem_off
enlazamos ejecutables en los directorios correspondientes:
YAML
ln -s /opt/modem/modem_on /usr/local/bin/modem_on
ln -s /opt/modem/modem_off /usr/local/bin/modem_off
añadimos el script a crontab para que se ejecute cada minuto
YAML
*/1 * * * * cd /opt/modem && ./venv/bin/python3 modem.py
creamos virtualenv para python e instalamos dependencias:
YAML
apt install python3-venv

cd /opt/modem
python3 -m venv venv
. venv/bin/activate
pip3 install -r requirements.txt

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:
YAML
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"

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.