4.- Instalación y ajuste del remoteSwitch

Finalmente en esta cuarta parte vamos a explicar cómo cargar el programa remoteSwitch, su configuración y cómo dejarlo como un servicio y hacer de una forma simple que arranque o pare. Y por supuesto, lo más importante y es que al reiniciarse la Raspberry Pi el remoteSwitch arranque automáticamente.

Como ya se ha indicado, vamos a necesitar una instancia del remoteSwitch que actúe como servidor web y tantas como equipos a controlar se necesiten. Si por ejemplo queremos controlar:

  • 1 RemoteBox 2×6
  • 3 StackMain (stacks para 10, 15 y 20m)
  • 1 Controlador RemoteBox 1×4 para 80m donde tenemos 4 verticales enfasadas

Tendremos que tener 6 ficheros de configuración:

  • Servidor WEB
  • Servidor RemoteBox 2×6
  • Uno por cada StackMain (son 3 ficheros)
  • Servidor RemoteBox 1×4 para el controlador del enfasador de verticales

Y lógicamente ejecutar tantas instancias – cada una con su fichero de configuración – como sean necesarias. Lo normal es añadir cada instancia como un servicio y poder arrancar/parar cada uno de ellos

Programa remoteSwitch

Podemos descargar el programa desde el servidor EA4TX servidor:

https://ea4tx.com/wp-content/uploads/files/rspi/remoteSwitch

Nota: recuerda que este binario es para Raspberry Pi.

Tenemos muchas formas de poner el binario del remoteSwitch en la RsPi. En nuestro caso lo vamos a bajar y a copiar a la carpeta donde queremos que esté. Ejecutamos por tanto:

wget https://ea4tx.com/wp-content/uploads/files/rspi/remoteSwitch

Con esto ya tenemos el binario en la RsPi aunque seguramente en la carpeta raiz o /home/pi. Vamos a copiar ahora el programa a la carpeta /usr/local/sbin que es donde habitualmente se dejaría, para ello podemos usar el programa mc (midnight commander que ya habíamos instalado en el paso 2) o bien mediante el comando:

sudo cp remoteSwitch /usr/local/sbin/

O los dos comandos en una única instrucción, dando información del path en donde lo ha de bajar:

wget https://ea4tx.com/wp-content/uploads/files/rspi/remoteSwitch -P /usr/local/sbin/

Con esto ya tenemos bajado el fichero pero le tenemos que marcar los atributos de ejecución. Lo puedes hacer mediante el comando chmod o bien usa el programa mc para realizar este cambio

sudo chmod 755 /usr/local/sbin/remoteSwitch

Fichero de Configuración como Servidor de equipos: rbm1

En esta sección vamos a configurar uno de los servicios que llamaremos RBM1 (podemos darle cualquier nombre) y que se encargará de dar soporte y tratamiento a un RemoteBox o StackMain. Este módulo es el que procesará los comandos que reciba desde el equipo y que interpretará y notificará hacia el servidor web y que veremos más adelante.

El programa remoteSwitch se puede ejecutar mediante linea de comando con todas las opciones pero seguramente sea más práctico tener un fichero de configuración y ejecutar el programa indicándole la ubicación del fichero de configuración. Puedes ver todas las opciones disponibles mediante el comando de ayuda -h por ejemplo:

/usr/local/sbin/remoteSwitch -h

Aunque como dije anteriormente, es más práctico tener un fichero de configuración con todas sus opciones parametrizadas, que ejecutar el programa con todas las opciones por linea de comando. He dejado un modelo de fichero de configuración en el servidor EA4TX y se puede descargar mediante el comando:

wget https://ea4tx.com/wp-content/uploads/files/rspi/rbm1.toml

Y puesto que lo habitual es que los ficheros de configuración suelen estar en la carpeta /etc lo copiamos en esa carpeta.

sudo cp rbm1.toml /etc/

Si editamos el fichero (podemos usar el editor nano o bien mediante el Midnight Commander – comando mc) vamos a personalizar algunos de los parámetros de la configuración.

sudo nano /etc/rbm1.toml

fichero configuracion rbm1.service

Por un lado indica cómo conectarse al servidor NATS, indica que tipo de equipo será «ea4tx_remotebox» , el nombre del equipo «remotebox_1x6» y que se conectará con el equipo por medio de conexión TCP/IP (Connection =1)  donde la dirección será: «127.0.0.1» y el puerto «7011«.

Nota: Justamente el puerto que se definió en el servicio ser2net para acceder al RemoteBox.

Si tu configuración es la correcta, ejecuta el programa mediante el comando:

/usr/local/sbin/remoteSwitch server nats --config /etc/rbm1.toml

Si no te ha dado ningún error, pasa a configurar el fichero del servidor web para arrancar otra instancia con este servicio.

Fichero de Configuración como Servidor WEB: rbw

Ahora configuraremos el servicio para arrancar como servidor web. Usaremos el fichero rbw.toml

Tenemos otra plantilla disponible en EA4TX luego se puede descargar mediante el comando:

wget https://ea4tx.com/wp-content/uploads/files/rspi/rbw.toml

Y ambién lo copiaremos a  /etc.

sudo cp rbw.toml /etc/

Editamos el fichero:

sudo nano /etc/rbw.toml

En este caso también indica cómo conectarse al servidor NATS y además indica al servidor web en qué puerto quedarse a la escucha. Si tu configuración es la correcta, ejecuta el programa mediante el comando:

/usr/local/sbin/remoteSwitch web --config /etc/rbw.toml

Pasado menos de 1 minuto y si no te ha dado ningún error, podrás abrir un navegador apuntando a

http://192.168.10.97:7072

Sistema de arranque

Para dejar estos 2 servicios automatizados en el arranque, vamos nuevamente a utlizar SystemD. Para ello dejaremos en la carpeta /etc/systemd/system  los ficheros que tenemos disponibles en EA4TX:

  • rbm1.system
  • rbw.system.

Puedes bajar estos ficheros mediante el comando:

sudo wget https://ea4tx.com/wp-content/uploads/files/rspi/rbm1.service

y

sudo wget https://ea4tx.com/wp-content/uploads/files/rspi/rbw.service

Y copiarlos a la carpeta /etc/systemd/system. Los comandos serán:

sudo cp rbm1.service /etc/systemd/system/

y

sudo cp rbw.service /etc/systemd/system/

fichero rbm1.service

En principio estos ficheros que has bajado y copiado a la carpeta /etc/systemd/system loa puedes dejar tal cual sin tener que cambiar nada en ellos. Ahora ya solo nos quedaría activar los servicios rbm1 y rbw en el gestor systemd. Ejecutamos por tanto los comandos:

sudo systemctl enable rbm1.service

y

sudo systemctl enable rbw.service

Con esto ya al reiniciarse la RsPi, estos servicios serán ejecutados automáticamente. También los puedes arrancar o parar manualmente, para ello el comando de arranque sería:

sudo service rbm1 start

sudo service rbw start

o bien para parar:

sudo service rbm1 stop

sudo service rbw stop

Con todo esto, ya debiéramos de tener el programa remoteSwitch en ejecución, luego ya podríamos arrancar un navegador en nuestro PC y conectarnos a la URL de la Raspberry Pi con el puerto 7072 (es el puerto por defecto definido en el fichero rbm1.toml para la web)

O bien abrir el programa RBM y configurar que el rotor es «Remote TCP/IP» y en su configuración indicar la IP y puerto TCP usado por la Raspberry Pi (definido en el servicio ser2net)