generador_json
This commit is contained in:
parent
48062b3f1e
commit
9ebc511ab0
7 changed files with 152 additions and 83 deletions
24
desinstalar
24
desinstalar
|
@ -1,13 +1,19 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
sudo rm /etc/nodemecu.conf
|
if [ $UID -ne 0 ]; then
|
||||||
sudo rm /usr/bin/nodemecu
|
echo "Ejecute 'sudo $0'"
|
||||||
sudo crontab -u root -r
|
exit
|
||||||
sudo rm -rf /opt/nodemecu/
|
fi
|
||||||
sed -i '/*sudo nodemecu*/d' $HOME/.bashrc
|
|
||||||
sudo rm /lib/systemd/system/nodemecu.service
|
source /etc/nodemecu.conf
|
||||||
sudo systemctl stop nodemecu.service
|
|
||||||
sudo systemctl disable nodemecu.service
|
rm /etc/nodemecu.conf
|
||||||
sudo systemctl daemon-reload
|
rm /usr/bin/nodemecu
|
||||||
|
crontab -u root -r
|
||||||
|
rm -rf $directorio_instalacion
|
||||||
|
systemctl stop nodemecu.service
|
||||||
|
systemctl disable nodemecu.service
|
||||||
|
rm /lib/systemd/system/nodemecu.service
|
||||||
|
systemctl daemon-reload
|
||||||
|
|
||||||
|
|
||||||
|
|
47
enviar
47
enviar
|
@ -1,47 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
#set -e
|
|
||||||
source /etc/nodemecu.conf
|
|
||||||
source /opt/nodemecu/functions
|
|
||||||
|
|
||||||
|
|
||||||
# Revisando stack
|
|
||||||
|
|
||||||
for filename in /opt/nodemecu/stack/*;do
|
|
||||||
test "$filename" = "/opt/nodemecu/stack/\*" || break
|
|
||||||
jsonlint-php $filename > /dev/null || mv -v $filename $corrupt
|
|
||||||
done
|
|
||||||
|
|
||||||
while :;do
|
|
||||||
ping -c 1 fsf.org > /dev/null 2>&1 || continue
|
|
||||||
test_url="$(curl -s -X POST -o /dev/null -w "%{http_code}" $url)"
|
|
||||||
if [ $test_url -eq 404 ];then
|
|
||||||
echo "$(date +%Y-%m-%d-%H:%M:%S) - $url - $test_url" >> /opt/nodemecu/errors.log && sleep 300 && continue
|
|
||||||
fi
|
|
||||||
[ -f $install_dir/lock ] && continue
|
|
||||||
file=$(get_stack)
|
|
||||||
[ -z $file ] && continue
|
|
||||||
local_transaction_uuid=$(jq -r '."transaction_uuid"' $stack/$file)
|
|
||||||
remote_transaction=$(curl -s --connect-timeout 0,9 --show-error -w "~%{http_code}" -X POST -H "Content-Type: application/json" -d @$stack/$file $url 2> $curl_err)
|
|
||||||
remote_response="$(echo $remote_transaction | cut -d '~' -f 1)"
|
|
||||||
server_error="$(echo $remote_transaction | cut -d '~' -f 2)"
|
|
||||||
if [ ${#remote_response} -eq 36 ];then
|
|
||||||
|
|
||||||
if [ $local_transaction_uuid == $remote_response ]; then
|
|
||||||
mv $stack/$file $historical
|
|
||||||
echo -e "$remote_response: \e[92mOK\e[0m"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo -e "$local_transaction_uuid: \e[91mFAIL\e[0m"
|
|
||||||
# errores
|
|
||||||
unset srv_msg
|
|
||||||
unset curl_msg
|
|
||||||
err_time=$(date +%Y-%m-%d-%H:%M:%S)
|
|
||||||
[ ! -z "$remote_response" ] && srv_msg="- $( echo $remote_response | grep -o '<body.*>.*</body>')"
|
|
||||||
[ -s "$curl_err" ] && curl_msg="- $(</tmp/curl_err)"
|
|
||||||
echo $err_time - $local_transaction_uuid - server status: $server_error $srv_msg $curl_msg >> $log
|
|
||||||
rm $curl_err
|
|
||||||
fi
|
|
||||||
|
|
||||||
done
|
|
||||||
exit
|
|
||||||
|
|
|
@ -1,15 +1,24 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#source /etc/nodemecu.conf
|
#set -x
|
||||||
|
|
||||||
|
source /etc/nodemecu.conf
|
||||||
source funciones
|
source funciones
|
||||||
funcion_datos_simulados
|
|
||||||
echo $lecturas
|
conteo=$(cat $contador)
|
||||||
exit
|
uuid="$(uuidgen)"
|
||||||
case $mode in
|
marca_de_tiempo="$(date +%s)"
|
||||||
|
|
||||||
|
|
||||||
|
case $modo in
|
||||||
test)
|
test)
|
||||||
funcion_datos_simulados
|
funcion_datos_simulados
|
||||||
;;
|
;;
|
||||||
|
sensores)
|
||||||
|
funcion_datos_sensores
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
||||||
# ARMADO DE FICHERO JSON
|
# ARMADO DE FICHERO JSON
|
||||||
|
|
||||||
for i in $lecturas;do
|
for i in $lecturas;do
|
||||||
|
@ -18,7 +27,8 @@ case $i in
|
||||||
sensores="$sensores { $(echo \"id\":\"$(echo $i | cut -d ":" -f 2)\", \"sensores\": [ )"
|
sensores="$sensores { $(echo \"id\":\"$(echo $i | cut -d ":" -f 2)\", \"sensores\": [ )"
|
||||||
;;
|
;;
|
||||||
ts*)
|
ts*)
|
||||||
sensores="$sensores { $(echo \"timestamp\": $(echo $i | cut -d ":" -f 2),)"
|
#sensores="$sensores { $(echo \"timestamp\": $(echo $i | cut -d ":" -f 2),)"
|
||||||
|
sensores="$sensores { $(echo \"timestamp\": $marca_de_tiempo,)"
|
||||||
;;
|
;;
|
||||||
tp*)
|
tp*)
|
||||||
sensores="$sensores $(echo \"type\": \"$(echo $i | cut -d ":" -f 2)\",)"
|
sensores="$sensores $(echo \"type\": \"$(echo $i | cut -d ":" -f 2)\",)"
|
||||||
|
@ -47,15 +57,28 @@ done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
counter=$(cat $install_dir/counter)
|
json="{\"transaction_uuid\":\"$uuid\",\"controller_id\":\"$name\",\"timestamp\":\"$marca_de_tiempo\",\"error_code\":\"10\",\"coordinates\":{\"lat\":1,\"lng\":1},\"battery_status\":\"98\",\"sample\":\"0\",\"storage\":\"uso del almacenamiento\",\"arduinos\":[$sensores]}"
|
||||||
uuid="$(uuidgen)"
|
|
||||||
timestamp="$(date +%s)"
|
touch $lock
|
||||||
json="{\"transaction_uuid\":\"$uuid\",\"controller_id\":\"$name\",\"timestamp\":\"$timestamp\",\"error_code\":\"10\",\"coordinates\":{\"lat\":1,\"lng\":1},\"battery_status\":\"98\",\"sample\":\"0\",\"storage\":\"uso del almacenamiento\",\"arduinos\":[$sensores]}"
|
file=$(date +%Y%m%d%H%M%S -d @$marca_de_tiempo)-$uuid
|
||||||
touch /opt/nodemecu/lock
|
|
||||||
file=$(date +%Y%m%d%H%M%S)-$(uuidgen)
|
|
||||||
|
|
||||||
|
if echo $json | jsonlint-php 2> /dev/null;then
|
||||||
|
echo $json > $registros/$file && rm $lock && echo $((conteo+1)) > $contador
|
||||||
|
else
|
||||||
|
echo "$(date +%Y-%m-%d-%H:%M:%S -d @$marca_de_tiempo) - No se pudo obtener información." >> $log
|
||||||
|
rm $lock
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
exit
|
||||||
|
|
||||||
|
# habia una razon para esto, ya va a saltar
|
||||||
|
|
||||||
for ((i=1 ; i <=3 ; i++));do
|
for ((i=1 ; i <=3 ; i++));do
|
||||||
if echo $json | jsonlint-php 2> /dev/null;then
|
if echo $json | jsonlint-php 2> /dev/null;then
|
||||||
echo $json > /opt/nodemecu/stack/$file && rm /opt/nodemecu/lock && echo $((counter+1)) > $install_dir/counter && break
|
echo $json > /opt/nodemecu/stack/$file && rm /opt/nodemecu/lock && echo $((counter+1)) > $contador && break
|
||||||
else
|
else
|
||||||
echo "$(date +%Y-%m-%d-%H:%M:%S) - No se pudo obtener información." >> /opt/nodemecu/errors.log && sleep 1
|
echo "$(date +%Y-%m-%d-%H:%M:%S) - No se pudo obtener información." >> /opt/nodemecu/errors.log && sleep 1
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -x
|
#set -x
|
||||||
configuracion=nodemecu.conf.ejemplo
|
configuracion=nodemecu.conf.ejemplo
|
||||||
source $configuracion
|
source $configuracion
|
||||||
|
|
||||||
|
@ -8,12 +8,13 @@ if [ $UID -ne 0 ]; then
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
test -d $directorio_instalacion && $(echo "nodemec ya se encuentra instalado"; date)
|
if [ -d $directorio_instalacion ] ; then
|
||||||
|
echo "nodemecu ya se encuentra instalado"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
ficheros="bin arduinos.py contador generador_json funciones instalador monitor monitor_web nodemecu.conf.ejemplo nodemecu.service enviar desinstalar"
|
ficheros="bin arduinos.py contador generador_json funciones instalador monitor monitor_web nodemecu.conf.ejemplo nodemecu.service registrador desinstalar"
|
||||||
|
|
||||||
|
|
||||||
# Dependencias
|
# Dependencias
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
url=
|
url=
|
||||||
name=
|
name=
|
||||||
interval=
|
interval=
|
||||||
mode=test
|
modo=test
|
||||||
|
|
||||||
|
|
||||||
# AJUSTES GENERALES
|
# AJUSTES GENERALES
|
||||||
|
@ -16,4 +16,5 @@ historicos=$directorio_instalacion/historicos
|
||||||
log=/var/log/nodemecu_errors.log
|
log=/var/log/nodemecu_errors.log
|
||||||
registros_corruptos=$directorio_instalacion/corruptos
|
registros_corruptos=$directorio_instalacion/corruptos
|
||||||
envios_fallidos=$directorio_instalacion/fallidos
|
envios_fallidos=$directorio_instalacion/fallidos
|
||||||
|
contador=$directorio_instalacion/contador
|
||||||
|
lock=$directorio_instalacion/lock
|
||||||
|
|
|
@ -4,7 +4,7 @@ Description=Procesador de pila y transmisor de datos Nodemecu.
|
||||||
[Service]
|
[Service]
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
RestartSec=5s
|
RestartSec=5s
|
||||||
ExecStart=/opt/nodemecu/register.sh
|
ExecStart=/opt/nodemecu/registrador
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
|
85
resgistrador
Executable file
85
resgistrador
Executable file
|
@ -0,0 +1,85 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#set -x
|
||||||
|
|
||||||
|
source /etc/nodemecu.conf
|
||||||
|
source funciones
|
||||||
|
|
||||||
|
conteo=$(cat $contador)
|
||||||
|
uuid="$(uuidgen)"
|
||||||
|
marca_de_tiempo="$(date +%s)"
|
||||||
|
|
||||||
|
case $modo in
|
||||||
|
test)
|
||||||
|
funcion_datos_simulados
|
||||||
|
;;
|
||||||
|
sensores)
|
||||||
|
funcion_datos_sensores
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
# ARMADO DE FICHERO JSON
|
||||||
|
|
||||||
|
for i in $lecturas;do
|
||||||
|
case $i in
|
||||||
|
id*)
|
||||||
|
sensores="$sensores { $(echo \"id\":\"$(echo $i | cut -d ":" -f 2)\", \"sensores\": [ )"
|
||||||
|
;;
|
||||||
|
ts*)
|
||||||
|
#sensores="$sensores { $(echo \"timestamp\": $(echo $i | cut -d ":" -f 2),)"
|
||||||
|
sensores="$sensores { $(echo \"timestamp\": $marca_de_tiempo,)"
|
||||||
|
;;
|
||||||
|
tp*)
|
||||||
|
sensores="$sensores $(echo \"type\": \"$(echo $i | cut -d ":" -f 2)\",)"
|
||||||
|
;;
|
||||||
|
vl*)
|
||||||
|
sensores="$sensores $(echo \"value\": $(echo $i | cut -d ":" -f 2),)"
|
||||||
|
;;
|
||||||
|
un*)
|
||||||
|
sensores="$sensores $(echo \"unit\": \"$(echo $i | cut -d ":" -f 2)\",)"
|
||||||
|
;;
|
||||||
|
er*)
|
||||||
|
sensores="$sensores $(echo \"error\": $(echo $i | cut -d ":" -f 2) })"
|
||||||
|
;;
|
||||||
|
AD_SENSOR)
|
||||||
|
sensores="$sensores,"
|
||||||
|
;;
|
||||||
|
AD_ARDUINO)
|
||||||
|
sensores="$sensores]},"
|
||||||
|
;;
|
||||||
|
END)
|
||||||
|
sensores="$sensores]}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
json="{\"transaction_uuid\":\"$uuid\",\"controller_id\":\"$name\",\"timestamp\":\"$marca_de_tiempo\",\"error_code\":\"10\",\"coordinates\":{\"lat\":1,\"lng\":1},\"battery_status\":\"98\",\"sample\":\"0\",\"storage\":\"uso del almacenamiento\",\"arduinos\":[$sensores]}"
|
||||||
|
|
||||||
|
touch $lock
|
||||||
|
|
||||||
|
file=$(date +%Y%m%d%H%M%S -d @$marca_de_tiempo)-$uuid
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if echo $json | jsonlint-php 2> /dev/null;then
|
||||||
|
echo $json > $directorio_instalacion/$file && rm $lock && echo $((counter+1)) > $contador
|
||||||
|
else
|
||||||
|
echo "$(date +%Y-%m-%d-%H:%M:%S -d @$marca_de_tiempo) - No se pudo obtener información." >> $log
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
exit
|
||||||
|
|
||||||
|
# habia una razon para esto, ya va a saltar
|
||||||
|
|
||||||
|
for ((i=1 ; i <=3 ; i++));do
|
||||||
|
if echo $json | jsonlint-php 2> /dev/null;then
|
||||||
|
echo $json > $registros/$file && rm /opt/nodemecu/lock && echo $((counter+1)) > $contador && break
|
||||||
|
else
|
||||||
|
echo "$(date +%Y-%m-%d-%H:%M:%S) - No se pudo obtener información." >> /opt/nodemecu/errors.log && sleep 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
Loading…
Reference in a new issue