Meteoclimatic

Software => WeeWX => Mensaje iniciado por: jantoni en 03 de Abril del 2021, 10:39:59 am

Título: Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 03 de Abril del 2021, 10:39:59 am
Buenos días....

Ayer vencí a la pereza y me pongo con un proyecto que tengo en mente desde hace tiempo.

Se trata de configurar una Raspi, desde cero, con un pincho WIFI USB para que sea totalmente autónoma, Weewx y dos estaciones:


Me diréis que esto ya lo hemos tratado anteriormente. Sí, pero hay ciertas connotaciones interesantes:

Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 03 de Abril del 2021, 10:42:16 am
Este procedimiento debería poder utilizarse en cualquier Raspi.

Por ejemplo en una Raspi que disponga de wifi integrado, nos saltaremos los pasos para instalar los driver, y solo tendremos que hacer la configuración del wifi.

Si utilizas otro pincho Wifi USB es posible que funcione sin necesidad de drivers. Este pincho WN725N es magnífico, pero es puñetero de narices con los drivers. Otros pinchos solo tendrás que escribir la configuración del router.

Una cuestión......esto lo voy a escribir ONLINE.....es decir, según vaya haciendo en mi raspi, iré escribiendo, por lo que iréis viendo el proceso según lo voy haciendo, y hasta que no diga FIN, no estará terminado.

Ah, el procedimiento funcionará igualmente si solo tenéis una estación. Y si tenéis 3 estaciones, pues lo tendréis fácil para modificarlo......o más estaciones.

Cuando terminemos toda la explicación, pruebas y configuración, crearé un script automático, similar a meteowee para que todo sea más sencillo. Pero estaría bien que te leyeras todo el hilo, porque aprenderás mucho más de lo que crees
Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 03 de Abril del 2021, 11:06:27 am
Empezamos.

Bajamos y grabamos la imagen de Raspberry Pi OS Lite

Aunque podemos usar cualquier imagen, siempre he preferido usar las imágenes sin escritorio ya que todas mis Raspberrys son de gama baja. Si dispones de una Raspberry Pi 3 o 4, puedes usar la imagen con escritorio. No creo que cambie mucho.

Accedemos al repositorio de Raspberry Pi

https://www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit y descargamos la imagen de Raspberry Pi OS Lite.

A continuación, descomprimimos el fichero y extraemos la imagen (extensión .img).

Grabamos la imagen en una tarjeta SD con nuestro programa favorito para ello. Yo lo hago con Win32diskimager o BalenaEtcher.

Una vez grabada la imagen, la retiramos del PC e insertamos la tarjeta SD en la Raspberry PI (que estará conectado a un monitor o TV y un teclado)

Arrancamos el sistema y esperamos a que nos salga la petición de identificación.

Nos identificamos con el usuario y contraseña por defecto (user=pi password=raspberry)

Bien, ya estamos dentro.

Primera configuración de Raspi y Wifi

Ahora, vamos a preparar a la raspberry para que la próxima vez que arranquemos, nos permita conectarnos por SSH, puesto que la idea es que sea totalmente autónoma (sin monitor, sin teclado ni ratón ni cable de red)

Simplemente tecleamos esto:

Código: [Seleccionar]
sudo touch /boot/ssh
Ahora empezamos con la configuración del Wifi de la Raspi para que, la próxima vez que arranquemos, se conecte al Wifi de nuestro router.

Escribimos

Código: [Seleccionar]
sudo nano /boot/wpa_supplicant.conf
en el editor escribimos lo necesario para editar la configuración del wifi

Citar
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=ES

network={
        ssid="ssiddelwifi"
        psk="password de nuestro wifi"
        key_mgmt=WPA-PSK
}

Pulsamos CTRL-X para grabar los cambios (respondemos S o Y en función del idioma establecido en la raspi)

Comprobamos los cambios con

Código: [Seleccionar]
sudo cat /boot/wpa_supplicant.conf
Si no es correcto, volvemos a editar el fichero......si todo está bien, continuamos con la configuración del driver.

El driver para este dispositivo Wifi, aparentemente funciona. Puedes ver las redes disponibles, puedes ver que el sistema operativo ha detectado el pincho USB, pero no se va a conectar correctamente (hablamos siempre del WN725N)

Para instalar el driver correcto tecleamos en la Raspi:

Código: [Seleccionar]
uname -a
Nos responderá algo como esto:

Citar
pi@raspberrypi:/etc/wpa_supplicant $ uname -a
Linux raspberrypi 5.10.17+ #1403 Mon Feb 22 11:26:13 GMT 2021 armv6l GNU/Linux
pi@raspberrypi:/etc/wpa_supplicant $

Nos fijamos en la versión.....en nuestro caso 5.10.17+ #1403. Asi que debemos buscar el driver para el kernel 5.10.17 compilación 1403.

En el navegador web del PC, nos vamos a http://downloads.fars-robotics.net/wifi-drivers/8188eu-drivers/ y buscamos el driver para nuestro dispositivo. Recordad que si actualizáis el kernel tendréis que volver a instalar los driver.

Bajamos el driver y extraemos los 3 archivos (8188eu.ko, 8188eu.conf y install.sh) del driver en cualquier carpeta

A continuación vamos a la Raspi y la apagamos:

Código: [Seleccionar]
sudo poweroff
Extraemos la tarjeta SD de la Raspi y la insertamos en nuestro PC

Abrimos la carpeta ROOT

Copiamos los 3 ficheros del driver, que habíamos extraído anteriormente, en la carpeta ROOT.

Extraemos la tarjeta SD (con la opción de expulsión del Windows) del PC y la insertamos en la Raspi.

Arrancamos la raspi.

En el momento de arrancar, los ficheros /boot/ssh y /boot/wpa_supplicant.conf serán procesados y desaparecerán de /boot. El fichero wpa_supplicant.conf además de ser procesado, será copiado a /etc/wpa_supplicant/wpa_supplicant.conf

Una vez arrancado el sistema, nos identificamos con usuario y contraseña.

Instalamos el driver:

Código: [Seleccionar]
cd /boot
sudo ./install.sh

Esperamos que termine.

Reiniciamos

Código: [Seleccionar]
sudo reboot
Si todo ha ido bien, tenemos la raspi conectada a nuestro router wifi.

Nos volvemos a identificar y miramos la dirección IP asignada

Código: [Seleccionar]
ifconfig
Citar
pi@raspberrypi:/etc/wpa_supplicant $ ifconfig
eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether b8:27:eb:5e:29:6e  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 6  bytes 570 (570.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6  bytes 570 (570.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.120  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::6abd:ea0f:f3e4:20f0  prefixlen 64  scopeid 0x20<link>
        ether e8:de:27:20:f1:63  txqueuelen 1000  (Ethernet)
        RX packets 33574  bytes 18287494 (17.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1927  bytes 231114 (225.6 KiB)
        TX errors 0  dropped 3 overruns 0  carrier 0  collisions 0

Veremos la dirección ip asignada, generalmente en el interface wlan0. El disponer de dirección IP significa que todo ha ido correctamente.

Es posible que veas una dirección IP extraña, que empieza por 169. Deja un poco de tiempo hasta que nuestra raspi deje de "negociar" con nuestro router. Si pasados un par de minutos no aparece una dirección IP que reconozcamos, tendremos que revisar el procedimiento.

Ya tenemos nuestra Raspi lista para trabajar con Wifi. Ya podemos desconectar el teclado y el monitor y conectarnos por SSH.
Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 03 de Abril del 2021, 11:20:35 am
Como es habitual en las instalaciones de Raspberry Pi, ahora nos toca hacer un par de cosas.

Iniciamos raspi-config

Código: [Seleccionar]
sudo raspi-config
Nos vamos a Performance Options - GPU Memory y le indicamos una cantidad de memoria para el video de 16. Recordad que vamos a trabajar sin monitor. Pero aunque tengas monitor, con 16 irá bien, siempre que no uses la versión Desktop del S.O.

Después nos vamos a Localisation Options y elegimos Timezone. Elegimos después "None of the above" y luego UTC, pinchamos en OK. Todos mis sistemas funcionan en UTC. Eso no es problema, posteriormente para ver la fecha y hora en el formato que queramos. Pero manejar los servidores (y la raspi no deja de ser un servidor) en formato de hora local no es una buena idea y nos traerá algún problema.

Como vamos a conectarnos a la raspi por SSH no nos hace falta modificar el teclado. Si lo queréis cambiar, a vuestro criterio. El idioma no os recomiendo cambiarlo, al menos de momento.

Siguiente paso es ir a Advanced Options y usar la opción de "Expand filesystem". Con esto el sistema operativo utilizará todo el espacio disponible en nuestra tarjeta SD.

Nos contestará con un mensaje que dice "Root partition has been resized. The filesystem will be enlarged upon the next reboot", pinchamos en OK, volviendo al menú principal.

Y finalizamos pulsando en "Finish", nos preguntará "Would you like to reboot now?", pulsamos en Yes y el sistema se reinicia.
Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 03 de Abril del 2021, 11:21:01 am
¿Que información voy a necesitar?

Bueno, estamos en Meteoclimatic. Aunque me consta que por ahí, en toda la geografía nacional, se redirige a los usuarios a Meteoclimatic para configurar sus estaciones (¿por qué será?), vamos a dar las instrucciones para configurar todo este invento para que envíe datos a Meteoclimatic.

Por tanto, voy a necesitar esta información para dejarlo todo niquelado:

Ubicación
Latitud de la estación en grados decimales. En mi caso 40.356510
Longitud de la estación en grados decimales (Oeste negativo, Este positivo). En mi caso -3.520050

Códigos de Meteoclimatic
Código de estación en Meteoclimatic: En mi caso ESMAD2800000028522A
El password de nuestra estación en Meteoclimatic. Un churro muy largo que no se puede compartir con nadie, aunque últimamente hay usuarios que lo van dando alegremente, tanto por el foro, como a otras páginas web para que generen la plantilla de Meteoclimatic.

Igualmente nos hará falta tener a mano, los usuarios y contraseñas de aquellos servicios meteorológicos a los que vayáis a subir datos desde Weewx, además de Meteoclimatic. Aquí veremos como hacerlo con Awekas, CWOP, WU, PWSweather, WOW MetOffice y alguna más que ahora no me acuerdo.

Además, configuraremos a Weewx para que envíe nuestros bonitas páginas resultantes a un servidor web.
Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 03 de Abril del 2021, 19:07:52 pm
Vamos a instalar lo que necesitamos para después.

Según la página web de Weewx, previo a la instalación de Weewx, necesitamos todo esto:

Citar
sudo apt update

# Required
sudo apt install python3-configobj
sudo apt install python3-pil
sudo apt install python3-serial
sudo apt install python3-usb
sudo apt install python3-pip

# This works for most installations...
sudo apt install python3-cheetah
# ... if not, try this:
sudo pip3 install Cheetah3

# Optional: for extended almanac information
sudo apt install python3-ephem

# Required if you are using MySQL (MariaDB):
sudo apt install mariadb-client
sudo apt install python3-mysqldb

Así que nos ponemos a ello. Recordad que estamos instalando una Raspberry Pi con el sistema operativo recién salido del horno. En concreto la versión del 4-3-2021 por lo que estará totalmente o casi totalmente actualizada.

Comenzamos el proceso.

Primero actualizamos la lista de paquetes de nuestra querida Raspberry.

Código: [Seleccionar]
sudo apt update

Una vez actualizada la lista de paquetes, vemos que tenemos 24 paquetes para actualizar. Pues lo hacemos. Esto tardará un poco, las viejas Raspberrys son lentas y con poca memoria.

Código: [Seleccionar]
sudo apt --yes upgrade
Y continuamos con el procedimiento publicado en las instrucciones de Weewx.

Código: [Seleccionar]
sudo apt install --yes python3-configobj python3-pil python3-serial python3-usb python3-pip python3-cheetah python3-ephem
Tras un ratito, tendremos todo lo necesario instalado en nuestro dispositivo.
Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 03 de Abril del 2021, 19:48:05 pm
Si no vas a instalar Apache2, sáltate este post y pasa al siguiente.

A continuación vamos a instalar Apache2. Si quieres instalar otro software como lighthttpd o nginx, tendrás que buscar por ahí las instrucciones.

Instalamos Apache2 y PHP 7.3. Ya hay versiones más recientes de PHP, pero la 7.3 es la versión distribuida con Debian Buster. La versión de Raspberry Pi está basada casi al completo en Debian Buster (Debian 10)

Código: [Seleccionar]
sudo apt install --yes apache2 php7.3
La instalación de Apache2 y PHP tarda bastante tiempo.....sé paciente si no tienes una Raspi3 o 4

Más adelante, veremos como crear un disco RAM para el log de Apache....totalmente necesario si usas Apache2. Pero ya llegaremos.
Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 03 de Abril del 2021, 20:03:51 pm
A continuación vamos a instalar más software que nos va a hacer falta.

Citar
sudo apt --yes install xrdp ntp libimagequant0 libjbig0 liblcms2-2 libtiff5 libwebp6 libwebpdemux2 libwebpmux3 python3-dev python3-olefile python3-six sqlite ftp rsync
Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 04 de Abril del 2021, 11:13:34 am
Empezamos a hacer cambios en nuestro sistema

Cambiamos la zona horaria

Sí, sí. Ya sé que antes, mediante raspi-config cambiamos la zona horaria......pero soy obsesivo. Así que volvemos a la carga.

Si quieres poner hora UTC en tu Raspi, ejecuta esto:

Citar
sudo ln -fs /usr/share/zoneinfo/UTC /etc/localtime && sudo dpkg-reconfigure -f noninteractive tzdata

Si quieres poner hora de España peninsular, ejecuta esto:

Citar
sudo ln -fs /usr/share/zoneinfo/Europe/Madrid /etc/localtime && sudo dpkg-reconfigure -f noninteractive tzdata

Si quieres poner hora de Canarias, ejecuta lo siguiente:

Citar
sudo ln -fs /usr/share/zoneinfo/Europe/Lisbon /etc/localtime && sudo dpkg-reconfigure -f noninteractive tzdata

Insisto.

No es buena idea tener un servidor en hora local. Es preferible ponerlo en UTC. Ya nos apañaremos luego para mostrar la hora local.

Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 04 de Abril del 2021, 11:18:32 am
Vamos a hacer unos cambios para mejorar la vida de nuestra tarjeta SD.

Creamos un disco virtual en RAM, de 20 Megas, para hacer el log de la Raspi

Citar
echo "tmpfs   /var/log    tmpfs    defaults,noatime,nosuid,mode=0755,size=20m    0 0" | sudo tee -a /etc/fstab

Si elegimos, anteriormente, instalar Apache2, entonces creamos un directorio para su log en RAM.

Citar
echo "tmpfs   /var/log/apache2    tmpfs    defaults,noatime,nosuid,mode=0755,size=20m    0 0" | sudo tee -a /etc/fstab

Opcionalmente modificamos el sistema de ficheros, para que no se guarde la fecha y hora en la que accedemos a un directorio. Esto lo hacemos para minimizar el número de escrituras en SD.

Citar
sudo sed -i 's/noatime/noatime,nodiratime/g' "/etc/fstab"

Deshabilitamos el Swaping (disco de intercambio) para, igualmente, minimizar el número de escrituras en disco. Si vas a usar la Raspberry para otras cosas que no sean manejar la estación meteorológica, no lo elimines, pues te podrías quedar sin RAM en un momento dado.

Citar
sudo swapoff --all

Y eliminamos el sistema de swaping. Aprovechamos para eliminar el falso reloj de la Raspberry.

Citar
sudo apt-get purge --yes fake-hwclock dphys-swapfile >> /dev/null
Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 04 de Abril del 2021, 19:42:16 pm
Generamos el locale en español (Castellano) en nuestra Raspberry Pi

Citar
sudo sed -i 's/# es_ES.UTF-8/es_ES.UTF-8/g' /etc/locale.gen

Ahora ejecutamos:

Citar
sudo /usr/sbin/locale-gen

Y, por último:

Citar
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

Si quieres generar en otros idiomas:

Catalán: Sustituye es_ES en todos los comandos de más arriba por ca_ES
Gallego: Sustituye es_ES en todos los comandos de más arriba por gl_ES

Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 04 de Abril del 2021, 19:52:04 pm
Descargamos Weewx

Como ya os he dicho, en esta ocasión vamos a usar el método de instalación setup.py que es el estándar de Weewx, aunque la inmensa mayoría hemos usado, hasta ahora, el método de instalación con paquetes Debian.

Accedemos a https://weewx.com/donwloads y vemos cual es la versión actual para descargar.

En el momento de escribir estas instrucciones es la 4.5.1 (lanzada hace un par de días), así que nos disponemos a bajarnos el archivo mediante wget

Primero nos situamos en nuestro directorio "personal"

Citar
cd

Y nos bajamos el fichero, modifica la versión según sea la última publicada. Si quieres instalar una versión antigua, tendrás que buscarla en https://weewx.com/downloads/released_versions/

Citar
wget https://weewx.com/downloads/weewx-4.5.1.tar.gz

Aprovechamos y descargamos la rutina de envío a Meteoclimatic con Python de Jmviper

Citar
wget https://raw.githubusercontent.com/jantoni/meteowee/master/star_meteoclimatic/meteoclimatic.py

Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 04 de Abril del 2021, 20:04:26 pm
Instalación de Weewx

Y llega la hora de ejecutar la instalación de Weewx

Nos aseguramos de estar en nuestro directorio, que es donde bajamos los ficheros anteriormente

Citar
cd

Ejecutamos la extracción de los ficheros contenidos en la carpeta comprimida

Citar
tar xvfz weewx-4.5.1.tar.gz

Una vez descomprimidos los ficheros, nos movemos al directorio donde se han extraido los ficheros:

Citar
cd weewx-4.5.1

Y ejecutamos la instalación.....cruzamos los dedos:

Citar
python3 ./setup.py build

Citar
sudo python3 ./setup.py install

Al cabo de unos segundos, la rutina de instalación nos pregunta por datos de la estación:

Citar
Enter a brief description of the station, such as its location.  For example:
Santa's Workshop, North Pole
description [My Little Town, Oregon]:

Respondemos con nuestra descripción de la estación. En mi caso, le responderé "Rivas-Vaciamadrid Centro"

A continuación nos pregunta por la altitud a la que se encuentra la estación. Hay que indicar el número y la unidad. En mi caso, le responderé "625, meter"

A continuación nos pide la latitud en grados decimales (norte positivo). Yo le indicaré "40.356510"
Y la longitud (Oeste negativo). Yo le indico " -3.520050"

A continuación nos pregunta si queremos registrar nuestra estación en weewx.com. Esto tiene como utilidad el aparecer en el mapa de estaciones con Weeewx de todo el mundo que está en http://weewx.com/stations.html Yo le indico que "y" para decir que sí.

Y una URL donde buscará los datos para sacar en el mapa.....esto luego lo podreís cambiar en la sección [Station] del fichero de configuración, tranquilos.

A continuación os pregunta por las unidades en las que queréis mostrar los datos. Opción us o metric. Indicamos "metric"

Y, por último nos pregunta por el tipo de estación. Bien. Aquí podéis indicar vuestra estación directamente o, como yo, indicar "Simulator" para posteriormente cambiar todo a nuestro gusto. Yo indico Simulator, que es la opción por defecto, es decir, pulsando el "3"

Y hemos terminado, por ahora.


Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 05 de Abril del 2021, 10:42:54 am
Puesta en marcha de Weewx

Bien, ya tenemos instalado Weewx, aunque no configurado.

Ahora volvemos al manual de instalación oficial y procedemos a ejecutarlo por primera vez y a configurar el arranque automático.

Primero comprobamos que la instalación ha sido correcta y que Weewx funciona. Lo vamos a iniciar de forma manual. Como hemos configurado el driver interceptor, los datos serán ficticios (si configuraste un driver real y ves datos, entonces funciona correctamente)

Código: [Seleccionar]
sudo /home/weewx/bin/weewxd
Veremos algo así:

Citar
pi@raspberrypi:~ $ sudo /home/weewx/bin/weewxd
LOOP:   2021-04-05 08:35:31 UTC (1617611731) altimeter: 33.45987854396733, appTemp: 28.46010918752483, barometer: 31.099999998967093, cloudbase: 3294.8532073708884, consBatteryVoltage: 13.10144387794729, dateTime: 1617611731, dewpoint: 27.203560993945757, heatindex: 32.67858297022247, heatingVoltage: 12.0, humidex: 32.67858297022247, inDewpoint: 31.079533828013187, inHumidity: 29.999999958683617, inTemp: 63.00000002065819, inTempBatteryStatus: 0, maxSolarRad: 454.0272154296771, outHumidity: 79.99999996901272, outTemp: 32.67858297022247, outTempBatteryStatus: 0, pressure: 31.099999998967093, radiation: 393.9111639217769, rain: 0, rainBatteryStatus: 0, rainRate: 0.0, referenceVoltage: 12.0, rxCheckPercent: 43.72395975692641, supplyVoltage: 12.0, txBatteryStatus: 0, usUnits: 1, UV: 5.514756294904877, windBatteryStatus: 0, windchill: 32.67858297022247, windDir: 359.9999998140763, windGust: 6.197456769996279e-09, windGustDir: 359.9999998140763, windSpeed: 5.164547900449179e-09
LOOP:   2021-04-05 08:35:34 UTC (1617611734) altimeter: 33.459878535199515, appTemp: 28.45807365032865, barometer: 31.099999990703814, cloudbase: 3294.842737254356, consBatteryVoltage: 10.803391738510452, dateTime: 1617611734, dewpoint: 27.20178958368346, heatindex: 32.67676549144743, heatingVoltage: 11.947692905885257, humidex: 32.67676549144743, inDewpoint: 31.07953369929752, inHumidity: 29.999999628152565, inTemp: 63.00000018592372, inTempBatteryStatus: 0, maxSolarRad: 454.2003857745868, outHumidity: 79.99999972111442, outTemp: 32.67676549144743, outTempBatteryStatus: 0, pressure: 31.099999990703814, radiation: 394.05330091118185, rain: 0, rainBatteryStatus: 0, rainRate: 0.0, referenceVoltage: 12.575158678066588, rxCheckPercent: 48.22530832250196, supplyVoltage: 11.251614145652537, txBatteryStatus: 0, usUnits: 1, UV: 5.516746212756546, windBatteryStatus: 0, windchill: 32.67676549144743, windDir: 359.9999983266865, windGust: 5.577711537085861e-08, windGustDir: 359.9999983266865, windSpeed: 4.648092932768577e-08
LOOP:   2021-04-05 08:35:36 UTC (1617611736) altimeter: 33.45987851766391, appTemp: 28.45603873598603, barometer: 31.099999974177262, cloudbase: 3294.8322875435697, consBatteryVoltage: 13.039198294052465, dateTime: 1617611736, dewpoint: 27.20001865622259, heatindex: 32.6749485852591, heatingVoltage: 12.932092027833903, humidex: 32.6749485852591, inDewpoint: 31.079533441866158, inHumidity: 29.99999896709047, inTemp: 63.00000051645476, inTempBatteryStatus: 0, maxSolarRad: 454.3158490755287, outHumidity: 79.99999922531785, outTemp: 32.6749485852591, outTempBatteryStatus: 0, pressure: 31.099999974177262, radiation: 394.2665232004942, rain: 0, rainBatteryStatus: 0, rainRate: 0.0, referenceVoltage: 11.665753934582595, rxCheckPercent: 48.22530832250196, supplyVoltage: 12.0, txBatteryStatus: 0, usUnits: 1, UV: 5.519731324806919, windBatteryStatus: 0, windchill: 32.6749485852591, windDir: 359.99999535190705, windGust: 1.5493643079622643e-07, windGustDir: 359.99999535190705, windSpeed: 1.2911369218215896e-07

Bien, de momento todo funciona. Pulsamos CTRL-C para terminar Weewx.

Configuramos el inicio automático de Weewx cuando la Raspi arranque:

Vamos al directorio /home/weewx
Código: [Seleccionar]
cd /home/weewx
Copiamos el fichero de inicio que incluye la distribución al directorio correspondiente de Debian bajo el nombre de weewx
Código: [Seleccionar]
sudo cp util/init.d/weewx.debian /etc/init.d/weewx
Le damos permiso de ejecución
Código: [Seleccionar]
sudo chmod +x /etc/init.d/weewx
Actualizamos el sistema rc.d y establecemos la prioridad para Weewx.
Código: [Seleccionar]
sudo update-rc.d weewx defaults 98
Arrancamos manualmente Weewx como servidor
Código: [Seleccionar]
sudo /etc/init.d/weewx start
Y, vamos a comprobar que todo está bien y Weewx está funcionando:

Citar
pi@raspberrypi:/home/weewx $ ps aux | grep weewx
root     18393  3.3  3.2  34432 15860 ?        Sl   08:43   0:01 /usr/bin/python3 /home/weewx/bin/weewxd --daemon --pidfile=/var/run/weewx.pid /home/weewx/weewx.conf
pi       18415  0.0  0.4   7340  2044 pts/0    S+   08:44   0:00 grep --color=auto weewx

Enhorabuena.....tienes un bonito Weewx que funciona.

Para continuar con nuestro viaje, paramos Weewx para seguir configurando:

Código: [Seleccionar]
sudo /etc/init.d/weewx stop
Si no recibes mensaje de error, el sistema habrá parado a Weewx. Puedes comprobarlo así:

Código: [Seleccionar]
ps aux | grep weewx
Y verás que no hay ningún proceso llamado Weewx en funcionamiento

Citar
pi@raspberrypi:/home/weewx $ ps aux | grep weewx
pi       18468  0.0  0.4   7340  1968 pts/0    S+   08:49   0:00 grep --color=auto weewx
pi@raspberrypi:/home/weewx $

Hay otros métodos de comprobar si está funcionando o no un proceso, pero ahora no vienen a cuento.

Pasamos a modificar más cosas.
Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 05 de Abril del 2021, 11:00:33 am
Queremos que Weewx tenga un log solo para él

Si tuviéramos Weewx funcionando en este momento, veríamos que el log se genera en el fichero /var/log/syslog.

Esto tiene un problema, se mezclan los mensajes de log de Weewx con otros mensajes del sistema operativo.

Aquí vamos a ver como establecer un log exclusivo para Weewx

Código: [Seleccionar]
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

Ahora modificamos la rotación de los log para que no se haga un log inmenso, aunque estaría limitado a 20 Megas por lo que hicimos anteriormente.

Código: [Seleccionar]
echo -e "/var/log/weewx.log {\n  $WEELOGPER\n  missingok\n  rotate $WEELOGMAX\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

Y reiniciamos el sistema de log

Código: [Seleccionar]
sudo service rsyslog restart
Ya tenemos el log de Weewx separado del sistema operativo.
Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 05 de Abril del 2021, 11:17:43 am
Recapitulemos

Bien, ¿qué tenemos ahora mismo?

Pues si has seguido estas instrucciones, tienes una Raspberry (u otro dispositivo similar), con Debian Buster y Weewx funcionando con el driver interceptor (un simulador) y con la configuración que viene por defecto.

Así que, como paso previo a configurar la estación....o estaciones, en modo real, vamos a hacer una serie de pasos para ajustarlo a lo que usamos por estas tierras.
Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 05 de Abril del 2021, 11:20:17 am
Cambiamos el día de comienzo de la semana

Ya sabéis que la semana empieza con los lunes. Pero los americanos se empeñan en decir que empieza el domingo  *+* *+* *+*

Esto no afecta a la operativa de Weewx, solo afecta a la presentación de datos.

Así que vamos a cambiar el día en el que empieza la semana y vamos a configurar que sea el Lunes.

Código: [Seleccionar]
sudo sed -i 's/week_start = 6/week_start = 0/g' "/home/weewx/weewx.conf"
Aprovecho para decir dos cosas:

1.- Fijaos que el fichero de configuración ya no está, a diferencia de la instalación por paquete Debian, en /etc/weewx/weewx.conf. Esto es debido a que, bajo el sistema de instalación de setup.py TODOS LOS ARCHIVOS DE WEEWX se encuentran ubicados, por defecto, en /home/weewx. De este modo ya no tendrás que ir buscando el directorio donde se encuentran los diferentes archivos de weewx. Ahora todo va a estar en /home/weewx

2.- Estamos configurando una estación. Y habíamos dicho que ibamos a explicar para dos o más estaciones. Tranquilos. Primero modificaremos weewx.conf, que lo utilizaremos como modelo, y luego ya haremos lo necesario para poner más de una estación.
Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 05 de Abril del 2021, 17:46:20 pm
Modificamos algunas unidades de las páginas generadas, así como el formato de fechas y horas.

Nos acercamos más a un estándar europeo. Por supuesto, cada uno lo puede poner a gusto, faltaría más *+* *+* *+* *+*

Código: [Seleccionar]
sudo sed -i 's/group_speed = meter_per_second/group_speed = km_per_hour/g' "/home/weewx/weewx.conf"
sudo sed -i 's/group_speed2 = meter_per_second2/group_speed2 = km_per_hour2/g' "/home/weewx/weewx.conf"
sudo sed -i 's/group_pressure = mbar/group_pressure = hPa/g' "/home/weewx/weewx.conf"
sudo sed -i 's/group_rain = cm/group_rain = mm/g' "/home/weewx/weewx.conf"
sudo sed -i 's/group_rainrate = cm_per_hour/group_rainrate = mm_per_hour/g' "/home/weewx/weewx.conf"
sudo sed -i 's/day        = %X/day        = %H:%M/g' "/home/weewx/weewx.conf"
sudo sed -i 's/week       = %X (%A)/week       = %H:%M on %A/g' "/home/weewx/weewx.conf"
sudo sed -i 's/month      = %x %X/month      = %d-%b-%Y %H:%M/g' "/home/weewx/weewx.conf"
sudo sed -i 's/year       = %x %X/year       = %d-%b-%Y %H:%M/g' "/home/weewx/weewx.conf"
sudo sed -i 's/rainyear   = %x %X/rainyear   = %d-%b-%Y %H:%M/g' "/home/weewx/weewx.conf"
sudo sed -i 's/current    = %x %X/current    = %d-%b-%Y %H:%M/g' "/home/weewx/weewx.conf"
sudo sed -i 's/ephem_day  = %X/ephem_day  = %H:%M/g' "/home/weewx/weewx.conf"
sudo sed -i 's/ephem_year = %x %X/ephem_year = %d-%b-%Y %H:%M/g' "/home/weewx/weewx.conf"
Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 05 de Abril del 2021, 18:03:04 pm
Cambiamos ubicación de las páginas y gráficos generados

Como hemos dicho, estamos usando el método de instalación por defecto de Weewx. Es decir, setup.py

Por alguna extraña razón, los desarrolladores han creído conveniente el poner los gráficos y páginas generados en /home/weewx/public_html. Bueno, no es extraña la razón. Siguiendo el razonamiento de tener TODO Weewx colgando de /home/weewx es más que razonable.

Como queremos ver el resultado de nuestro trabajo en un navegador, tenemos dos opciones.

- Configurar Apache2 para que lea las páginas y gráficos de /home/weewx/public_html
- Configurar Weewx para que las páginas y gráficos sean enviados a /var/www/html/weewx que es el directorio habitual en la instalación por paquete Debian.

Como estamos en un sistema de andar por casa, pues no vamos a hacer ni uno ni otro. Vamos a utilizar el truco del almendruco de los enlaces simbólicos.

Sí, sí, ya sé. Los puristas dicen que eso puede ser un agujero de seguridad. Pero, esto es de andar por casa. El que quiera utilizar la raspi como servidor web, tendrá que reforzar la seguridad.

Lo primero es tener Weewx funcionando, por lo que lo arrancamos si no estuviera funcionando:

Código: [Seleccionar]
sudo /etc/init.d/weewx start
o más moderno

Código: [Seleccionar]
sudo service weewx start
o también

Será por modos de controlar un proceso *+* *+* *+* *+* *+*

Y a continuación

Código: [Seleccionar]
sudo ln -s /home/weewx/public_html /var/www/html/weewx
Con esto habremos generado un enlace simbólico para que, cuando accedamos a /var/www/html/weewx lo estaremos haciendo, en realida a /home/weewx/public_html que es donde estarán los ficheros.

Ahora, desde un navegador podremos acceder a nuestras primeras páginas generadas

Código: [Seleccionar]
sudo systemctl start weewx
(https://forum.meteoclimatic.net/index.php?action=dlattach;topic=3486.0;attach=5493;image)

Recordad que seguimos con el simulador de Weewx, y que el resultado de todo esto, es idéntico a mi sistema, porque voy haciéndolo sobre la marcha.

Os pido disculpas por la entrega "por fascículos", pero creo que es muy ilustrativa
Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 05 de Abril del 2021, 18:21:24 pm
Borramos base de datos antes de configurar la o las estaciones meteorológicas

Bien, ya hemos terminado la primera parte. Weewx funciona y genera las páginas y gráficos correctamente.

Nos falta todavía un poco.

- Borrar la base de datos generada por el simulador
- Configurar la estación meteorológica o las estaciones.
- Configurar el skin. Por defecto es Seasons, pero me gusta especialmente Belchertown y nos vamos a atrever con ello.
- Subir datos a Meteoclimatic directamente con nuestra estación.

El primer paso es parar Weewx

Código: [Seleccionar]
sudo service weewx stop
Una vez parado Weewx, borramos la base de datos ficticia que había creado el simulador.

Código: [Seleccionar]
sudo rm -f /home/weewx/archive/weewx.sdb
Y a continuación nos ponemos a configurar nuestra estación FineOffset.

Yo dispongo de dos pasarelas, una GW1000 y una WH2650, ambas funcionan de forma idéntica, así  que utilizaré una de ellas para explicarlo. Usaré en concreto la GW1000.

Estas pasarelas leen varios sensores. Por un lado el bloque de sensores de la WH65, así como varios termohigrómetros y un sensor de partículas PM2.5

Recordad, si tienes una estación Fine Offset, con consola, y quiere manejar tus datos con otro software, puedes comprar un GW1000

Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 05 de Abril del 2021, 18:54:33 pm
Configuramos una estación Fine Offset con la pasarela GW1000

Recordad que el procedimiento es el mismo para una pasarela WH2650

Accedemos a https://github.com/gjr80/weewx-gw1000 para ver cual es la última versión del driver.

En el momento de escribir esto, es la 0.3.1

Descargamos el driver:

Código: [Seleccionar]
sudo wget -P /var/tmp https://github.com/gjr80/weewx-gw1000/releases/download/v0.3.1/gw1000-0.3.1.tar.gz
Presta especial atención a la versión del driver para su descarga.

Ejecutamos wee_extension para instalar el driver

Código: [Seleccionar]
sudo /home/weewx/bin/wee_extension --install=/var/tmp/gw1000-0.3.1.tar.gz
Modificamos el fichero de configuración para que la generación de archivos se haga por software y no por hardware

Código: [Seleccionar]
sudo sed -i 's/record_generation = hardware/record_generation = software/g' "/home/weewx/weewx.conf"
Y, a continuación, probamos que el driver se comunica con la GW1000:

Código: [Seleccionar]
PYTHONPATH=/home/weewx/bin python3 -m user.gw1000 --test-driver
Si todo funciona bien (a mi, a la primera), tendremos un resultado como este:

Citar
pi@raspberrypi:/home/weewx $ PYTHONPATH=/home/weewx/bin python3 -m user.gw1000 --test-driver
Using configuration file /home/weewx/weewx.conf

Interrogating GW1000 at 192.168.0.104:45000

2021-04-05 17:05:27 UTC (1617642327): UV: 1, dateTime: 1617642327, dayRain: 0.0, daymaxwind: 5.1, extraHumid1: 49, extraTemp1: 18.6, inHumidity: 51, inTemp: 21.8, luminosity: 18026.0, monthRain: 28.2, outHumidity: 29, outTemp: 22.0, pm2_5: 12.0, pm2_51_24h_avg: 34.9, pressure: 940.5, rain: None, rainRate: 0.0, relbarometer: 1014.5, stormRain: 0.0, usUnits: 17, uvradiation: 28.0, weekRain: 0.0, wh25_batt: 0, wh25_sig: 4, wh31_ch1_batt: 0, wh31_ch1_sig: 4, wh41_ch1_batt: 5, wh41_ch1_sig: 4, wh65_batt: 0, wh65_sig: 4, windDir: 162, windGust: 2.6, windSpeed: 2.0, yearRain: 87.9
2021-04-05 17:05:47 UTC (1617642347): UV: 1, dateTime: 1617642347, dayRain: 0.0, daymaxwind: 5.1, extraHumid1: 49, extraTemp1: 18.6, inHumidity: 51, inTemp: 21.8, luminosity: 18243.0, monthRain: 28.2, outHumidity: 28, outTemp: 21.8, pm2_5: 12.0, pm2_51_24h_avg: 34.9, pressure: 940.8, rain: 0.0, rainRate: 0.0, relbarometer: 1014.8, stormRain: 0.0, usUnits: 17, uvradiation: 28.9, weekRain: 0.0, wh25_batt: 0, wh25_sig: 4, wh31_ch1_batt: 0, wh31_ch1_sig: 4, wh41_ch1_batt: 5, wh41_ch1_sig: 4, wh65_batt: 0, wh65_sig: 4, windDir: 192, windGust: 1.5, windSpeed: 1.2, yearRain: 87.9

Y ejecutamos wee_config para configurar el driver:

Código: [Seleccionar]
sudo /home/weewx/bin/wee_config --reconfigure --driver=user.gw1000
Nos volverá a preguntar por la ubicación, el nombre de la estación, etc, etc......Tan solo tenéis que dar a la opción  que os sale por defecto y nos respetará todos los cambios que habíamos hecho hasta ahora.

Tan solo tendremos que contestar a las preguntas sobre la dirección IP de la GW1000.

Si solo tenéis un GW1000 o un WH2650, podéis decir "auto" en lugar de la IP. Si tenéis dos dispositivos, conviene que le indiquéis la dirección IP de la pasarela que queráis usar.

Cuando os pregunte por el puerto de red, dejad el que viene por defecto, que es el 45000

A continuación os pregunta por la frecuencia con la que debe interrogar al GW1000 para que le mande los datos. Salvo que tengáis un anemómetro ultrasónico WS80, podéis dejar 20 segundos, ya que el bloque de sensores envía datos de viento cada 16 segundos, con lo que la posibilidad de perder rachas de viento se minimiza. Con el WS80 podéis poner menos tiempo, 5 segundos por ejemplo.

Y a la siguiente pregunta, responded también con la opción por defecto (es sobre los intentos que hará Weewx para acceder a la GW1000 en el arranque.). Por defecto es "1"

Ya tenemos Weewx funcionando con nuestra GW1000 o GW2650

En este momento, ya tenemos Weewx completamente operativo

Pero nos sigue quedando trabajo. Lo siguiente será enviar datos a Meteoclimatic.
Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 08 de Abril del 2021, 19:03:07 pm
Aunque no he podido continuar, todo está funcionando tal como se quedó el otro día.

(https://forum.meteoclimatic.net/index.php?action=dlattach;topic=3486.0;attach=5510;image)

A ver si mañana puedo seguir y empiezo a configurar Belchertown.....aunque voy pillado de tiempo.

Después configuraré la Davis para que estén en el mismo ordenador y configuraremos Belchertown para que nos saque gráficos de Davis Vue + Fine Offset en Y

Alguno se sorprenderá con el resultado que da esta mierdecilla de estación que me ha costado 90 euros.

Davis ya puede ponerse las pilas, el chino rompe en relación calidad/precio
Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 09 de Abril del 2021, 17:54:31 pm
Instalamos el skin Belchertown

Vamos a instalar Belchertown.

Lo primero que tenemos que hacer es visitar su sitio web y comprobar la última versión para proceder a instalarla.

https://github.com/poblabs/weewx-belchertown

Y comprobamos que la última versión, en el momento de escribir esto, es la 1.2

Así que escribimos el comando para bajarla

Código: [Seleccionar]
cd && sudo wget https://github.com/poblabs/weewx-belchertown/releases/download/weewx-belchertown-1.2/weewx-belchertown-release-1.2.tar.gz
Y ejecutamos el instalador:

Código: [Seleccionar]
sudo /home/weewx/bin/wee_extension --install weewx-belchertown-release-1.2.tar.gz
Ya está.....ya tenemos Belchertown funcionando.

Si has seguido estas instrucciones, tendrás

en http://xx.xx.xx.xx/weewx el skin Seasons que es el skin por defecto de Weewx
en http://xx.xx.xx.xx/weewx/belchertown el skin Belchertown.

Podemos tener los dos funcionando de modo simultáneo. Pero es una derroche de recursos.

Vamos a usar el editor.

Código: [Seleccionar]
sudo nano /home/weewx/weewx.conf

Nos vamos a la sección [StdReport]

Buscamos la sección del skin Seasons

Citar
   [[SeasonsReport]]
        # The SeasonsReport uses the 'Seasons' skin, which contains the
        # images, templates and plots for the report.
        skin = Seasons
        enable = true

Y cambiamos enable = true por enable = false para deshabilitar el skin season.

Citar
    [[SeasonsReport]]
        # The SeasonsReport uses the 'Seasons' skin, which contains the
        # images, templates and plots for the report.
        skin = Seasons
        enable = false

Bien, ahora nos vamos a modificar la sección de Belchertown

Citar
    [[Belchertown]]
        skin = Belchertown
        HTML_ROOT = public_html/belchertown

Aunque no es necesario, para mayor claridad le pondremos enable = true aunque es la opción por defecto salvo que se ponga false.

Además, modificamos el directorio, para que Belchertown esté en /home/weewx/public_html/weewx en lugar de /home/weewx/public_html/weewx/belchertown. De ese modo podremos acceder a el con http://xx.xx.xx.xx/weewx de una forma más rápida.

Para modificar el directorio solo ponemos una "#" delante de HTML_ROOT

Citar
    [[Belchertown]]
        skin = Belchertown
        # HTML_ROOT = public_html/belchertown
        enable = true

Paramos Weewx

Código: [Seleccionar]
sudo service weewx stop
Borramos todos los ficheros que había en /home/weewx/public_html

Código: [Seleccionar]
sudo rm -r /home/weewx/public_html/*
Y reiniciamos Weewx

Código: [Seleccionar]
sudo service weewx start
Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 09 de Abril del 2021, 17:58:57 pm
Bien, ya tenemos Belchertown funcionando.

En la siguiente generación ya tendremos nuestra primera visualización, aunque ahora falta personalizar a Belchertown. Pero eso es lo más fácil.

Si accedemos ahora a http://xx.xx.xx.xx/weewx veremos algo como esto

(https://forum.meteoclimatic.net/index.php?action=dlattach;topic=3486.0;attach=5518;image)

El siguiente paso será personalizarlo
Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 12 de Abril del 2021, 10:50:02 am
Vamos a mandar datos a Meteoclimatic.

Entramos en la ficha de nuestra estación en Meteoclimatic.

Veremos un botón para descargarnos la plantilla.

(https://forum.meteoclimatic.net/index.php?action=dlattach;topic=3486.0;attach=5593;image)

Pinchamos en "Descargar Plantilla"

Nos bajará un fichero llamado meteoclimatic.html.tmpl donde podremos ver la plantilla para Weewx, junto con el código de estación y la password o SIG.

Vamos a editar, ya que usamos el skin Belchertown, una plantilla en su directorio.

Código: [Seleccionar]
sudo nano /home/weewx/skins/Belchertown/meteoclimatic.html.tmpl
Y copiamos esto.

Citar
*VER=DATA2
*COD=
*SIG=
*UPD=$current.dateTime.format("%d-%m-%Y %H:%M")
*TMP=$current.outTemp.formatted
*WND=$current.windSpeed.formatted
*AZI=$current.windDir.formatted
*BAR=$current.barometer.formatted
*HUM=$current.outHumidity.formatted
*SUN=$current.radiation.formatted
*UVI=$current.UV.formatted
*DHTM=$day.outTemp.max.formatted
*DLTM=$day.outTemp.min.formatted
*DHHM=$day.outHumidity.max.formatted
*DLHM=$day.outHumidity.min.formatted
*DHBR=$day.barometer.max.formatted
*DLBR=$day.barometer.min.formatted
*DGST=$day.windGust.max.formatted
*DSUN=$day.radiation.max.formatted
*DHUV=$day.UV.max.formatted
*DPCP=$day.rain.sum.formatted
*WRUN=
*MHTM=$month.outTemp.max.formatted
*MLTM=$month.outTemp.min.formatted
*MHHM=$month.outHumidity.max.formatted
*MLHM=$month.outHumidity.min.formatted
*MHBR=$month.barometer.max.formatted
*MLBR=$month.barometer.min.formatted
*MGST=$month.windGust.max.formatted
*MSUN=$month.radiation.max.formatted
*MHUV=$month.UV.max.formatted
*MPCP=$month.rain.sum.formatted
*YHTM=$year.outTemp.max.formatted
*YLTM=$year.outTemp.min.formatted
*YHHM=$year.outHumidity.max.formatted
*YLHM=$year.outHumidity.min.formatted
*YHBR=$year.barometer.max.formatted
*YLBR=$year.barometer.min.formatted
*YGST=$year.windGust.max.formatted
*YSUN=$year.radiation.max.formatted
*YHUV=$year.UV.max.formatted
*YPCP=$year.rain.sum.formatted
*EOT*

Donde dice "*COD=" tendremos que continuar con nuestro código de estación en Meteoclimatic.
Donde dice "*SIG=" tendremos que continuar con la firma o password que tiene nuestra estación en Meteoclimatic.

Una vez escritos estos dos datos, pulsamos CTRL-X y respondemos que S o Y para grabar el fichero

O podemos copiar el fichero descargado como meteoclimatic.html.tmpl a /home/weewx/skins/Belchertown/meteoclimatic.html.tmpl

Ya tenemos la plantilla modelo grabada. Ahora tenemos que decirle a Belchertown que, cada vez que genere gráficos (por lo general cada 5 minutos), nos genere una plantilla con este modelo.

Para ello insertamos unas líneas en el fichero de configuración del skin, en la subsección ToDate de la sección CheetahGenerator.

Lo editamos con nano

Código: [Seleccionar]
sudo nano /home/weewx/skins/Belchertown/skin.conf
E insertamos nuestras líneas:

Citar
    [[ToDate]]
        # Reports that show statistics "to date", such as day-to-date,
        # week-to-date, month-to-date, etc.
        [[[weewx_data]]]
            template = json/weewx_data.json.tmpl

debería quedar algo así:

Citar
    [[ToDate]]
        # Reports that show statistics "to date", such as day-to-date,
        # week-to-date, month-to-date, etc.

        [[[Meteoclimatic]]]
            template = meteoclimatic.html.tmpl

        [[[weewx_data]]]
            template = json/weewx_data.json.tmpl

Grabamos con CTRL-X

En la próxima generación se debe grabar un fichero con los datos de nuestra estación.

Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 15 de Abril del 2021, 14:09:16 pm
Enviando nuestros datos a Meteoclimatic

Nos bajamos e instalamos los programas de envío en Python

Código: [Seleccionar]
cd
wget https://raw.githubusercontent.com/jantoni/meteowee/master/star_meteoclimatic/meteoclimatic.ini
wget https://raw.githubusercontent.com/jantoni/meteowee/master/star_meteoclimatic/meteoclimatic.py
sudo cp meteoclimatic.ini /home/weewx
sudo cp meteoclimatic.py /home/weewx
cd /home/weewx

Editamos meteoclimatic.ini

Código: [Seleccionar]
sudo nano meteoclimatic.ini
Cambiamos el directorio....si has seguido estas instrucciones es /home/weewx/public_html/meteclimatic.html

En Password pondremos la password o SIG que nos ha asignado Meteoclimatic.

Citar
Log=0
Path=/home/weewx/public_html/meteoclimatic.html
Password=

Grabamos con CTRL-X

Si quieres saber sobre la configuración del Log de esta utilidad, visita el foro en este hilo: https://forum.meteoclimatic.net/index.php/topic,2622.0.html

A continuación, le damos permiso de ejecución a meteoclimatic.py

Código: [Seleccionar]
sudo chmod +x /home/weewx/meteoclimatic.py
Y editamos crontab para que, cada 5 minutos, envíe la plantilla a Meteoclimatic.

Código: [Seleccionar]
sudo nano /etc/crontab
Citar
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly$
#
# Envía datos a Meteoclimatic cada 5 minutos, empezando en el minuto 1 de cada hora
1-59/5 *   * * *   root    /home/weewx/meteoclimatic.py

Grabamos con CTRL-X y esperamos unos minutos.

¡Voilà! Ya tenemos datos en Meteoclimatic.
Título: Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
Publicado por: jantoni en 15 de Abril del 2021, 17:44:01 pm
Listo.....

Ya tenemos una Raspberry Pi funcionando con Weewx, con el proceso de instalación setup.py en lugar del hasta ahora habitual paquete Debian.

Además tenemos funcionando el Skin Belchertown 1.2

Y enviamos datos a Meteoclimatic sin problema (siempre que hayas seguido las instrucciones al pie de la letra)

Ahora tenemos más tareas:

1.- Crear un script que lo haga todo de forma automática. Un meteowee especial para setup.py.
2.- Traducir Belchertown. Tengo traducido al completo la versión 1.0 pero tengo que revisar si hay diferencias.
3.- Modificar todo el sistema para soportar varias estaciones meteorológicas, fusionando informes.