Autor Tema: Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI  (Leído 23333 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 5.793
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
« en: 03 de Abril del 2021, 10:39:59 am »
ATENCION:
Este sistema de instalación ha quedado obsoleto con el lanzamiento de Weewx 5.0

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:

  • Davis Vantage Vue
  • Fine Offset GW1000/WH2650

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

  • Vamos a utilizar el pincho Wifi más vendido del mercado, el TP-LINK TL-WN725N, que funciona de maravilla, pero es puñetero de iniciar por un tema de drivers
  • Vamos a utilizar dos estaciones de forma simultánea con Weewx y vamos a generar informes y gráficos, tanto de cada una de las estaciones, como mezclando datos de una y otra.
  • Vamos a utilizar el procedimiento de instalación setup.py. Este procedimiento no es habitual en estas tierras, y tiene muchas ventajas sobre el procedimiento de instalación con paquete Debian. El inconveniente es que nuestro querido script meteowee no va a funcionar, y habrá que reescribirlo más adelante.
  • Instalaremos el skin Belchertown, pero básico. Es decir, sin informes de terremotos ni el estado actual del cielo ni previsiones, porque fallan más que aciertan. En su lugar instalaremos el meteograma de yr.no
« Última modificación: 09 de Junio del 2024, 10:25:40 am por jantoni »

Davis Vantage Vue (sin datalogger) + Orange Pi PC + Weewx

GW2000 + WS90 con Weewx (https://www.ecowitt.net/home/index?id=199315)
WH2650 con WH65 con Home Assistant y Weewx (https://www.ecowitt.net/home/index?id=40387)
GW1000 con WH32 y Home Assistant (https://www.ecowitt.net/home/index?id=17080)
Sensores adicionales: WH31 (3) + WH41

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 5.793
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
« Respuesta #1 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
« Última modificación: 04 de Abril del 2021, 20:16:31 pm por jantoni »

Davis Vantage Vue (sin datalogger) + Orange Pi PC + Weewx

GW2000 + WS90 con Weewx (https://www.ecowitt.net/home/index?id=199315)
WH2650 con WH65 con Home Assistant y Weewx (https://www.ecowitt.net/home/index?id=40387)
GW1000 con WH32 y Home Assistant (https://www.ecowitt.net/home/index?id=17080)
Sensores adicionales: WH31 (3) + WH41

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 5.793
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
« Respuesta #2 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.
« Última modificación: 03 de Abril del 2021, 15:21:27 pm por jantoni »

Davis Vantage Vue (sin datalogger) + Orange Pi PC + Weewx

GW2000 + WS90 con Weewx (https://www.ecowitt.net/home/index?id=199315)
WH2650 con WH65 con Home Assistant y Weewx (https://www.ecowitt.net/home/index?id=40387)
GW1000 con WH32 y Home Assistant (https://www.ecowitt.net/home/index?id=17080)
Sensores adicionales: WH31 (3) + WH41

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 5.793
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
« Respuesta #3 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.

Davis Vantage Vue (sin datalogger) + Orange Pi PC + Weewx

GW2000 + WS90 con Weewx (https://www.ecowitt.net/home/index?id=199315)
WH2650 con WH65 con Home Assistant y Weewx (https://www.ecowitt.net/home/index?id=40387)
GW1000 con WH32 y Home Assistant (https://www.ecowitt.net/home/index?id=17080)
Sensores adicionales: WH31 (3) + WH41

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 5.793
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
« Respuesta #4 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.
« Última modificación: 03 de Abril del 2021, 18:54:20 pm por jantoni »

Davis Vantage Vue (sin datalogger) + Orange Pi PC + Weewx

GW2000 + WS90 con Weewx (https://www.ecowitt.net/home/index?id=199315)
WH2650 con WH65 con Home Assistant y Weewx (https://www.ecowitt.net/home/index?id=40387)
GW1000 con WH32 y Home Assistant (https://www.ecowitt.net/home/index?id=17080)
Sensores adicionales: WH31 (3) + WH41

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 5.793
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
« Respuesta #5 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.
« Última modificación: 03 de Abril del 2021, 19:53:54 pm por jantoni »

Davis Vantage Vue (sin datalogger) + Orange Pi PC + Weewx

GW2000 + WS90 con Weewx (https://www.ecowitt.net/home/index?id=199315)
WH2650 con WH65 con Home Assistant y Weewx (https://www.ecowitt.net/home/index?id=40387)
GW1000 con WH32 y Home Assistant (https://www.ecowitt.net/home/index?id=17080)
Sensores adicionales: WH31 (3) + WH41

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 5.793
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
« Respuesta #6 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.
« Última modificación: 03 de Abril del 2021, 19:56:20 pm por jantoni »

Davis Vantage Vue (sin datalogger) + Orange Pi PC + Weewx

GW2000 + WS90 con Weewx (https://www.ecowitt.net/home/index?id=199315)
WH2650 con WH65 con Home Assistant y Weewx (https://www.ecowitt.net/home/index?id=40387)
GW1000 con WH32 y Home Assistant (https://www.ecowitt.net/home/index?id=17080)
Sensores adicionales: WH31 (3) + WH41

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 5.793
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
« Respuesta #7 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
« Última modificación: 04 de Abril del 2021, 11:04:36 am por jantoni »

Davis Vantage Vue (sin datalogger) + Orange Pi PC + Weewx

GW2000 + WS90 con Weewx (https://www.ecowitt.net/home/index?id=199315)
WH2650 con WH65 con Home Assistant y Weewx (https://www.ecowitt.net/home/index?id=40387)
GW1000 con WH32 y Home Assistant (https://www.ecowitt.net/home/index?id=17080)
Sensores adicionales: WH31 (3) + WH41

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 5.793
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
« Respuesta #8 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.


Davis Vantage Vue (sin datalogger) + Orange Pi PC + Weewx

GW2000 + WS90 con Weewx (https://www.ecowitt.net/home/index?id=199315)
WH2650 con WH65 con Home Assistant y Weewx (https://www.ecowitt.net/home/index?id=40387)
GW1000 con WH32 y Home Assistant (https://www.ecowitt.net/home/index?id=17080)
Sensores adicionales: WH31 (3) + WH41

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 5.793
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
« Respuesta #9 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
« Última modificación: 04 de Abril del 2021, 12:05:05 pm por jantoni »

Davis Vantage Vue (sin datalogger) + Orange Pi PC + Weewx

GW2000 + WS90 con Weewx (https://www.ecowitt.net/home/index?id=199315)
WH2650 con WH65 con Home Assistant y Weewx (https://www.ecowitt.net/home/index?id=40387)
GW1000 con WH32 y Home Assistant (https://www.ecowitt.net/home/index?id=17080)
Sensores adicionales: WH31 (3) + WH41

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 5.793
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
« Respuesta #10 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


Davis Vantage Vue (sin datalogger) + Orange Pi PC + Weewx

GW2000 + WS90 con Weewx (https://www.ecowitt.net/home/index?id=199315)
WH2650 con WH65 con Home Assistant y Weewx (https://www.ecowitt.net/home/index?id=40387)
GW1000 con WH32 y Home Assistant (https://www.ecowitt.net/home/index?id=17080)
Sensores adicionales: WH31 (3) + WH41

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 5.793
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
« Respuesta #11 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

« Última modificación: 04 de Abril del 2021, 19:54:44 pm por jantoni »

Davis Vantage Vue (sin datalogger) + Orange Pi PC + Weewx

GW2000 + WS90 con Weewx (https://www.ecowitt.net/home/index?id=199315)
WH2650 con WH65 con Home Assistant y Weewx (https://www.ecowitt.net/home/index?id=40387)
GW1000 con WH32 y Home Assistant (https://www.ecowitt.net/home/index?id=17080)
Sensores adicionales: WH31 (3) + WH41

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 5.793
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
« Respuesta #12 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.


« Última modificación: 04 de Abril del 2021, 20:14:54 pm por jantoni »

Davis Vantage Vue (sin datalogger) + Orange Pi PC + Weewx

GW2000 + WS90 con Weewx (https://www.ecowitt.net/home/index?id=199315)
WH2650 con WH65 con Home Assistant y Weewx (https://www.ecowitt.net/home/index?id=40387)
GW1000 con WH32 y Home Assistant (https://www.ecowitt.net/home/index?id=17080)
Sensores adicionales: WH31 (3) + WH41

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 5.793
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
« Respuesta #13 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.
« Última modificación: 05 de Abril del 2021, 10:53:06 am por jantoni »

Davis Vantage Vue (sin datalogger) + Orange Pi PC + Weewx

GW2000 + WS90 con Weewx (https://www.ecowitt.net/home/index?id=199315)
WH2650 con WH65 con Home Assistant y Weewx (https://www.ecowitt.net/home/index?id=40387)
GW1000 con WH32 y Home Assistant (https://www.ecowitt.net/home/index?id=17080)
Sensores adicionales: WH31 (3) + WH41

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 5.793
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI
« Respuesta #14 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.
« Última modificación: 05 de Abril del 2021, 11:06:47 am por jantoni »

Davis Vantage Vue (sin datalogger) + Orange Pi PC + Weewx

GW2000 + WS90 con Weewx (https://www.ecowitt.net/home/index?id=199315)
WH2650 con WH65 con Home Assistant y Weewx (https://www.ecowitt.net/home/index?id=40387)
GW1000 con WH32 y Home Assistant (https://www.ecowitt.net/home/index?id=17080)
Sensores adicionales: WH31 (3) + WH41