diff --git a/bin/nodemecu b/bin/nodemecu old mode 100644 new mode 100755 index 4fea853..5e7026b --- a/bin/nodemecu +++ b/bin/nodemecu @@ -8,6 +8,7 @@ fi config=/etc/nodemecu.conf source $config +source $funciones [ -z $1 ] && exit @@ -16,6 +17,25 @@ com=$1 case $com in + 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' + " + ;; + start) if [ -z $interval ]; then echo "Asegurese de haber establecido 'intervalo' de regitro y envio de datos." diff --git a/funciones b/funciones index 8f7e633..fd812bf 100644 --- a/funciones +++ b/funciones @@ -15,7 +15,54 @@ funcion_datos_simulados() { lecturas="id:dummy_plug-01 ts:$(date +%s) tp:temp vl:$(( $RANDOM % 20 + 15 )) un:C er:99 AD_SENSOR ts:$(date +%s) tp:hum vl:$(( $RANDOM % 50 + 35 )) un:percent er:99 AD_ARDUINO id:dummy_plug-02 ts:$(date +%s) tp:temp vl:$(( $RANDOM % 20 + 15 )) un:C er:99 AD_SENSOR ts:$(date +%s) tp:hum vl:$(( $RANDOM % 50 + 35 )) un:percent er:99 AD_ARDUINO id:dummy_plug-03 ts:$(date +%s) tp:temp vl:$(( $RANDOM % 20 + 15 )) un:C er:99 AD_SENSOR ts:$(date +%s) tp:hum vl:$(( $RANDOM % 50 + 35 )) un:percent er:99 AD_ARDUINO id:dummy_plug-04 ts:$(date +%s) tp:temp vl:$(( $RANDOM % 20 + 15 )) un:C er:99 AD_SENSOR ts:$(date +%s) tp:hum vl:$(( $RANDOM % 50 + 35 )) un:percent er:99 END" } - +funcion_configurar() { + local comando=$1 + local parametro=$2 + local parametros=$* + local url_regex='(https?)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]' + +case $comando in + nombre) + while :;do + nombre=$(echo $parametros | sed 's/nombre //g' | sed 's/ /_/g') + + if [[ "$nombre" =~ ^[a-zA-Z0-9_]+$ ]];then + sed -i 's/nombre=*/nombre='$nombre'/' $config + break + else + echo "El nombre solo puede contener carateres alfanumericos." + read -p "nombre: " parametro + fi + done + ;; + + servidor) + while :;do + if [[ $parametro =~ $url_regex ]]; then + sed -i 's}servidor=*}servidor='"$parametro"'}' $config + echo "Servidor $parametro" + break + else + echo "Intruzca una url válida." + read -p "url: " parametro + fi + done + ;; + + intervalo) + while :;do + if [[ $parametro -ge 1 && $parametro -le 60 ]]; then + sed -i 's/intervalo=[0-9]*/intervalo='$parametro'/' $config + echo "Intervalo seteado en $parametro" + break + else + echo "Establezca un valor entre 1 y 60." + read -p "Intervalo: " parametro + fi + done + ;; +esac +} diff --git a/generador_json b/generador_json index 27e470d..7fb221b 100755 --- a/generador_json +++ b/generador_json @@ -2,7 +2,7 @@ #set -x source /etc/nodemecu.conf -source funciones +source $funciones conteo=$(cat $contador) uuid="$(uuidgen)" diff --git a/instalador b/instalador index db208d7..60fe28e 100755 --- a/instalador +++ b/instalador @@ -46,6 +46,7 @@ cp -v $configuracion /etc/nodemecu.conf echo " Enlaces a binarios " +chmod 755 $directorio_instalacion/bin/nodemecu ln -vs $directorio_instalacion/bin/nodemecu /usr/bin/nodemecu echo " Fichero de logs @@ -64,5 +65,9 @@ systemctl start nodemecu.service systemctl status nodemecu.service +echo " +4. Configurar +" - +echo "Ejecute 'sudo nodemecu configurar' para comenzar. +" diff --git a/nodemecu.conf.ejemplo b/nodemecu.conf.ejemplo index 2f1b904..911baf6 100644 --- a/nodemecu.conf.ejemplo +++ b/nodemecu.conf.ejemplo @@ -1,6 +1,6 @@ -url= -name= -interval= +servidor= +nombre= +intervalo= modo=test @@ -18,3 +18,4 @@ registros_corruptos=$directorio_instalacion/corruptos envios_fallidos=$directorio_instalacion/fallidos contador=$directorio_instalacion/contador lock=$directorio_instalacion/lock +funciones=$directorio_instalacion/funciones diff --git a/url b/url new file mode 100644 index 0000000..0668d21 --- /dev/null +++ b/url @@ -0,0 +1 @@ +https://ectomobile.sutty.nl/readings