2022-02-23 14:42:32 +00:00
|
|
|
#!/bin/bash
|
|
|
|
if [ $UID -ne 0 ]; then
|
|
|
|
echo "Ejecute 'sudo $0'"
|
|
|
|
exit
|
|
|
|
fi
|
|
|
|
|
|
|
|
# LECTURA FICHERO DE CONFIGURACION
|
|
|
|
|
|
|
|
config=/etc/nodemecu.conf
|
|
|
|
source $config
|
2022-03-05 20:09:45 +00:00
|
|
|
source $funciones
|
2022-02-23 14:42:32 +00:00
|
|
|
|
|
|
|
[ -z $1 ] && exit
|
|
|
|
|
|
|
|
|
|
|
|
com=$1
|
|
|
|
|
|
|
|
case $com in
|
|
|
|
|
2022-03-05 20:09:45 +00:00
|
|
|
configurar)
|
|
|
|
echo "Complete los cambios a continuación:
|
|
|
|
"
|
|
|
|
echo "Nombre del dispositivo."
|
|
|
|
read -p "nombre: " -a entrada_usuario
|
|
|
|
funcion_configurar nombre ${entrada_usuario[@]}
|
|
|
|
echo ""
|
|
|
|
echo "Servidor de entrega de datos."
|
|
|
|
read -p "servidor (ej. https://url.del/servidor): " entrada_usuario
|
|
|
|
funcion_configurar servidor $entrada_usuario
|
|
|
|
echo ""
|
|
|
|
echo "Intervalo de toma de muestras, entre 1 y 60 minutos."
|
|
|
|
read -p "intervalo: " entrada_usuario
|
|
|
|
funcion_configurar intervalo $entrada_usuario
|
|
|
|
echo ""
|
|
|
|
echo "El modo de operación por defecto es 'test' y se envían datos simulados, cambie a 'sensores' con el comando 'sudo nodemecu modo sensores'
|
|
|
|
"
|
|
|
|
;;
|
|
|
|
|
2022-02-23 14:42:32 +00:00
|
|
|
start)
|
|
|
|
if [ -z $interval ]; then
|
|
|
|
echo "Asegurese de haber establecido 'intervalo' de regitro y envio de datos."
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
if [ -z $name ]; then
|
|
|
|
echo "Asegurese de haber establecido el 'nombre' de dispositivo."
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
echo "El modo de operación es '$mode', puede cambiar el modo con el comando:"
|
|
|
|
echo "'nomecu modo MODE' donde 'MODE' puede ser 'test' para generar y enviar datos simulados o 'sensores' para enviar datos tomados de los sensores."
|
|
|
|
echo ""
|
|
|
|
read -p "Desea continuar? Presione 'enter' para continuar o 'ctrl-c' para cancelar..."
|
|
|
|
echo "*/$interval * * * * /opt/nodemecu/data_gen.sh" > /tmp/nodemecu.crontab
|
|
|
|
crontab -u root /tmp/nodemecu.crontab
|
|
|
|
echo ""
|
|
|
|
echo "Se enviarán datos cada $interval minutos."
|
|
|
|
echo ""
|
|
|
|
exit
|
|
|
|
;;
|
|
|
|
stop)
|
|
|
|
crontab -u root -r
|
|
|
|
echo "Se detuvo la toma y envio de datos."
|
|
|
|
echo ""
|
|
|
|
;;
|
|
|
|
intervalo)
|
|
|
|
if [[ $1 == intervalo && $2 -ge 1 && $2 -le 60 ]]; then
|
|
|
|
sed -i 's/interval=[0-9]*/interval='$2'/' $config
|
|
|
|
echo "intervalo seteado en $2"
|
|
|
|
exit
|
|
|
|
else
|
|
|
|
echo "Establezca un valor entre 1 y 60."
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
nombre)
|
|
|
|
|
|
|
|
parametros=$*
|
|
|
|
nombre=$(echo $parametros | sed 's/nombre //g' | sed 's/ /_/g')
|
|
|
|
if [[ "$nombre" =~ ^[a-zA-Z0-9_]+$ ]];then
|
|
|
|
sed -i 's/name=[a-z A-Z 0-9]*/name='"$nombre"'/' $config
|
|
|
|
else
|
|
|
|
echo "El nombre solo puede contener carateres alfanumericos."
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
monitor)
|
|
|
|
$install_dir/monitor.sh
|
|
|
|
;;
|
|
|
|
|
|
|
|
*)
|
|
|
|
exit
|
|
|
|
;;
|
|
|
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|