#!/bin/bash

# Este script comprueba que la plantilla de Meteoclimatic no tenga valores N/A en la variable de temperatura.
# Si aparece N/A en dicha variable es, por lo general, por un problema entre la estación Fine Offset y el ordenador
# El script deshabilita la tensión de +5V en las Raspberry Pi 3B
# Este script no se ha podido probar ya que no disponemos de dicha placa Raspberry Pi 3B
# Este script puede que no funcione en otras placas distintas a la Raspberry Pi 3B


# Debe incluirse en /etc/crontab con la periodicidad que se elija
# Debe ejecutarse con permisos de root


# Uso del script
# No hay que pasar ningún parámetro al script
# Los comandos para deshabilitar los puertos USB son gracias al foro de raspberrypi.org


# Define el tiempo en segundos entre apagado del servicio y reinicio del servicio
espera=30
# Define el tiempo en segundos entre sucesivos intentos de recuperar la conexión USB mediante el apagado y encendido.
delay=60
# Define el número de intentos de reinicio del servicio
let intentos=5
let bucle=0


while [ $bucle -lt $intentos ]; do
   # Variables definidas por jmviper
   rutaplantilla=/var/www/html/weewx/meteoclimatic/meteoclimatic.htm
   temp=$(cat $rutaplantilla | grep TMP)
   temp="${temp// /}"

   resultado="true"
   # Comprueba variable. Si el resultado es incorrecto cambia a false variable objetivo
   if [[ $temp == "*TMP=N/A" ]]
       then
	   resultado="false"
   fi

   # Si el resultado es correcto, finaliza el script
   if [ $resultado == "true" ]
      then
         echo "Consola online. Fin del Script"
         break
   fi

   # Si el resultado no es correcto, continua el script
   # A continuacion se reinician los puertos USB
   
   #To shut off power on USB ports (this shuts power on ethernet as well):
   echo '1-1' | sudo tee /sys/bus/usb/drivers/usb/unbind
   sleep $espera
   #To turn power back on
   echo '1-1' | sudo tee /sys/bus/usb/drivers/usb/bind
   sleep $delay
   let bucle=bucle+1
done

# Lo ideal sería utilizar este script junto con el de envío de mensajes por la aplicación Telegram que se publicó en el foro Meteoclimatic.
