Software > WeeWX

Nuevo script instalación automatizada

(1/15) > >>

jantoni:
Ya hace casi 4 años desde la publicación del último script para instalar Weewx de forma sencilla.

Ha llegado el momento de crear uno nuevo, adaptado a los avances y modificaciones en los sistemas operativos.

Comenzaré a probarlo en una Raspberry Pi modelo B+ de 512 MB de RAM para ser probado posteriormente en otras plataformas.

Paciencia....no le puedo dedicar todo el tiempo que quisiera

Iré publicando los avances aquí mismo.

jantoni:
De momento os pongo el último script que tenía escrito, aunque creo que no lo publique.

Este script no funcionará más que con Debian Jessie, por lo que lo pongo solo a título ilustrativo.


--- Código: ---
#!/bin/bash

# Esta versión puede estar desactualizada
# Comprueba la última versión en http://jantoni.no-ip.org/download/raspweather

# Empezamos

# Para desarrollo posterior
#============================================================================================

#$cod="*COD="
#$sig="*SIG="

# Identificar o preguntar por la plataforma Raspberry Pi, Orange Pi, Odroid, PC
#


# Preguntar por codigo estacion Meteoclimatic
#echo "Por favor, introduzca el código de estación en Meteoclimatic (ejemplo ESMAD2800000028522A): "
#read estacion_cod
#echo "Has introducido" $estacion_cod


# Preguntar por el SIG de la estacion en Meteoclimatic
#echo "Por favor, introduzca el SIG facilitado por Meteoclimatic (ejemplo ESMAD2800000028522A): "
#read estacion_sig
#echo "Has introducido" $estacion_cod
#$estacion_cod="$cod$estacion_cod"

# Descargar una plantilla de algún sitio
#wget http://www.googledrive.com/host/0B3z9VwkcZjjWaHNFQzNBUmZCRHc
#mv 0B3z9VwkcZjjWaHNFQzNBUmZCRHc weewx.plantilla


# Editar la plantilla con los datos incorporados anteriormente
#


# Descargar skin Meteoclimatic
#


# Descomprimir skin en /etc/weewx/skins/Standard/
#


# Descargar rutina de envío de datos a Meteoclimatic
#


# Configuración de la rutina con los datos introducidos
#


# Modificar /etc/crontab para envío de datos con la rutina
#
#==============================================================================================


# Cambiamos la zona horaria. Nos garantizamos que sea UTC
echo 'UTC' > /etc/timezone
apt-get install --reinstall tzdata

# Actualizamos el sistema
apt-get update
apt-get upgrade --yes

# Vamos al directorio principal del usuario conectado
cd ~

# Descargamos la version disponible en Weewx.com para su descarga
wget -A '*.deb' -r -l 1 -nd http://weewx.com/downloads/

# Instalamos el software adicional a Weewx
apt-get install --yes libjbig0 liblcms2-2 libtiff5 libwebp5 libwebpdemux1 libwebpmux1 python-cheetah python-configobj python-imaging python-pil python-serial python-six python-usb apache2 php5 php5-sqlite libapache2-mod-php5

# Instalamos Weewx
dpkg -i wee*.deb

# Paramos Weewx que ha debido quedar funcionando
/etc/init.d/weewx stop

# El enlace simbolico parece que genera algun problema en Raspbian Jessie
#ln -s /var/www/weewx /var/www/html/weewx

# Eliminamos el swaping para alargar la vida de la tarjeta SD
swapoff --all

# Desinstalamos el falso reloj y el sistema de swaping
apt-get purge --yes fake-hwclock dphys-swapfile

# Modificamos el sistema de log para que Weewx tenga su propio log y no mezclado con el resto del sistema
echo ":programname,startswith,\"weewx\"" /var/log/weewx.log | sudo tee -a /etc/rsyslog.d/99-weewx.conf > /dev/null
echo ":programname,startswith,\"weewx\"" \~\ | sudo tee -a /etc/rsyslog.d/99-weewx.conf > /dev/null

# Establecemos que Weewx tenga un log dentro de logrotate para evitar ficheros que nos consuman la RAM o la SD
echo -e "/var/log/weewx.log {\n  weekly\n  missingok\n  rotate 52\n  compress\n  delaycompress\n  notifempty\n  sharedscripts\n  postrotate\n  /etc/init.d/rsyslog stop\n  /etc/init.d/rsyslog start\n  endscript\n}" | sudo tee -a /etc/logrotate.d/weewx > /dev/null
echo "reiniciando el sistema de log"
service rsyslog restart

# Cambiamos en Weewx el dia de comienzo de semana. Ponemos lunes
# Buscamos week_start = 6 y lo sustituimos por week_start = 0 en /etc/weewx/weewx.conf
sed -i 's/week_start = 6/week_start = 0/g' "/etc/weewx/weewx.conf"

# Cambiamos Weewx.conf para que las unidades sean en metrica y ademas mm en lugar de cm y km/h en lugar m/s
sed -i 's/group_speed = meter_per_second/group_speed = km_per_hour/g' "/etc/weewx/weewx.conf"
sed -i 's/group_speed2 = meter_per_second2/group_speed2 = km_per_hour2/g' "/etc/weewx/weewx.conf"
sed -i 's/group_pressure = mbar/group_pressure = hPa/g' "/etc/weewx/weewx.conf"
sed -i 's/group_rain = cm/group_rain = mm/g' "/etc/weewx/weewx.conf"
sed -i 's/group_rainrate = cm_per_hour/group_rainrate = mm_per_hour/g' "/etc/weewx/weewx.conf"

# Cambiamos el formato de las horas y las fechas
sed -i 's/day        = %X/day        = %H:%M/g' "/etc/weewx/skins/Standard/skin.conf"
sed -i 's/week       = %X (%A)/week       = %H:%M on %A/g' "/etc/weewx/skins/Standard/skin.conf"
sed -i 's/month      = %x %X/month      = %d-%b-%Y %H:%M/g' "/etc/weewx/skins/Standard/skin.conf"
sed -i 's/year       = %x %X/year       = %d-%b-%Y %H:%M/g' "/etc/weewx/skins/Standard/skin.conf"
sed -i 's/rainyear   = %x %X/rainyear   = %d-%b-%Y %H:%M/g' "/etc/weewx/skins/Standard/skin.conf"
sed -i 's/current    = %x %X/current    = %d-%b-%Y %H:%M/g' "/etc/weewx/skins/Standard/skin.conf"
sed -i 's/ephem_day  = %X/ephem_day  = %H:%M/g' "/etc/weewx/skins/Standard/skin.conf"
sed -i 's/ephem_year = %x %X/ephem_year = %d-%b-%Y %H:%M/g' "/etc/weewx/skins/Standard/skin.conf"

# Cambiamos el formato de viento para que cuando la velocidad sea Cero no aparezca N/A sino N
sed -i 's/NNW, N\/A/NNW, N/g' "/etc/weewx/skins/Standard/skin.conf"

# Mas dificil todavia. Generamos el locale spanish si no existe
sed -i 's/# es_ES.UTF-8/es_ES.UTF-8/g' /etc/locale.gen
/usr/sbin/locale-gen
echo -e "LANG=\"es_ES.UTF-8\"\nLANGUAGE=\"es_ES.UTF-8\"\nLC_ALL=\"es_ES.UTF-8\"" | sudo tee -a /etc/environment > /dev/null
#Falta insertar las variables de lenguaje en el script de arranque de weewx

# Esto es todo. Reiniciamos
reboot


--- Fin del código ---

jmviper:
Hola jantoni

El problema puede ser la compatibilidad entre sistemas pero creo que sabiendo de qué sistema se trata  (preguntándolo internamente el script al mismo) se podría cargar una configuración u otra si difiere entre ellos.

Yo tengo solo la Orange Pi y con debian Buster (armbian) y no tengo ni una queja con él, ningún fallo en la SD ni nada corrompido y logs almacena los mínimos eliminando todos los rotados antiguos.

La primera sección del script (para desarrollo posterior) sería una especie de intro de datos por lo que creo que se debería de hacer para todas las cosas que cambiara el script. Como base está muy bien ya que tiene pasos establecidos y sería cuestión de ir rellenándolos.

Yo de momento iré probando lo que hay escrito en mi opi y creando las preguntas con opciones. El código se puede ir poniendo en adjuntos en este hilo para ir probándolo cada uno en su SO e ir depurándolo con los errores que puedan ir surgiendo.

Se intentará ir haciendo en los ratos libres  :)

Saludos

jantoni:
Aquí hay usuarios que dominan a la perfección el bash de Linux.

Yo solo soy un torpe que tiene que tirar continuamente del manual de bash que tengo para consulta y de Google. No soy ningún artista😀😀😀😀😀😀😀😀😀

Y efectivamente, la idea es ir poniendo datos para tener, al final, una estación configurada....o casi, je je je

jmviper:

--- Cita de: jantoni en 26 de Enero del 2020, 09:39:02 am ---
Yo solo soy un torpe que tiene que tirar continuamente del manual de bash que tengo para consulta y de Google. No soy ningún artista😀😀😀😀😀😀😀😀😀


--- Fin de la cita ---

Y yo otro  *-* *-*

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa