Meteoclimatic

Software => WeeWX => Mensaje iniciado por: mariatr en 08 de Abril de 2020, 21:20:10

Título: actualizar plantilla weewx de una raspberry con sensores
Publicado por: mariatr en 08 de Abril de 2020, 21:20:10
Hola a todos:
 Estoy intentando montar una estacion metereológica con una raspberrypi y varios sensores.
De momento he conseguido crear el programa y cargar los datos en Mariadb.
mi pregunta es: ¿como puedo actualizar la plantilla de weewx con esos datos?
gracias
Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: jmviper en 08 de Abril de 2020, 22:20:44
Hola

Weewx tiene el modo simulador que lee de una base de datos o de un fichero de texto creando un servicio que ejecutaría. Podrías prescindir de esa mariadb ya que weewx almacenaría los datos en su propia BBDD.
Teniendo ya weewx los datos puede confeccionar una plantilla para ser enviada a meteoclimatic.

Aquí tienes más información (en inglés) de cómo crear el servicio en weewx:

https://github.com/weewx/weewx/wiki/add-sensor

saludos
Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: mariatr en 10 de Abril de 2020, 03:55:57
Buenas noches,

 he conseguido que el programa funcione correctamente (byows.py), dándome bién las lecturas

 Según entiendo  este será el driver para weewx. ¿en que carpeta he de colocarlo?

¿En weewx.conf que tipo de estacion he de poner? ¿seria station_type: BYOWS?
Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: jmviper en 10 de Abril de 2020, 07:31:33
Hola

Tendrás que seguir la documentación de ese driver:

https://github.com/jardiamj/BYOWS_RPi

Según ella tendrás que ejecutar el wget que viene para que instale el driver en su directorio y modificar/añadir las secciones que pone en weewx.conf
Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: jantoni en 10 de Abril de 2020, 09:49:57
Particularmente, voy a estar muy atento a tus progresos, porque es algo que en su día me planteé, pero nunca me atreví a hacerlo.

Por favor, cuéntanos tus progresos paso a paso.

Aquí te podremos dar ayuda con weewx, pero no me consta que nadie haya trabajado con ese driver en Meteoclimatic, así que te podremos orientar de una manera muy básica, pero sobre el programa, no sobre el driver.

Y a partir de aquí, un poco de crítica,  pero light..... *+* *+*

Deberías haberte presentado y haber manifestado no tu intención de montar una estación meteorológica sino, además, que la vas a conectar a Meteoclimatic.

Personalmente, ya he sufrido demasiadas veces el hecho de dedicar horas y horas a nuevos usuarios que, cuando consiguen lo deseado, desaparecen por completo.

Igualmente te pido que describas el proyecto. Que raspberry, que sistema operativo, que sensores vas a utilizar. Tu experiencia puede ser muy valiosa, no solo para los usuarios de meteoclimatic, sino para multitud de personas que leen este foro, aunque no sean usuarios.

Tu proyecto podría ser  muy interesante para centros educativos y, aquí en Meteoclimatic, hay muchos institutos y otros centros docentes.

Espero ansioso tus próximos mensajes y ver pronto tu estación dada de alta.

Saludos.
Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: mariatr en 11 de Abril de 2020, 02:32:13
buenas noches Jantoni, intentare describirte el proyecto:

Raspberry pi 3 mod B (con raspbian buster)

Sensores: veleta, anemometro y pluviometro, bme280,ds18b20 y reloj.

Hasta ahora tengo los programas para correr python y leer los datos.( bm280_sensor_2.py | ds18b20_therm.py | rainfall.py | wind_direction_byo_5.py | y por último    byows.py   ques es el que hay q modificar para utilizar como driver )

weewx instalado y funcionando en modo simulador pero sin actualizar plantilla. puedo acceder desde fuera de la red mediante ddns.net.


He colocado los archivos anteriores en  /usr/share/weewx/user     y despues he configurado weewx.conf con station_type = BYOWS y he añadido despues de el  apartado [engine] este otro:

[BYOS]
driver = user.byows

te adjunto tambien el log al hacer weewxd /etc/weewx/weewx.conf

pi@raspberrypi:~ $ sudo weewxd /etc/weewx/weewx.conf
Traceback (most recent call last):
  File "/usr/bin/weewxd", line 64, in <module>
    weewx.engine.main(options, args)
  File "/usr/share/weewx/weewx/engine.py", line 888, in main
    engine = engine_class(config_dict)
  File "/usr/share/weewx/weewx/engine.py", line 72, in __init__
    self.setupStation(config_dict)
  File "/usr/share/weewx/weewx/engine.py", line 96, in setupStation
    __import__(driver)
  File "/usr/share/weewx/user/byows.py", line 31, in <module>
    import bme280_sensor_2
  File "/usr/share/weewx/user/bme280_sensor_2.py", line 1, in <module>
    import bme280
ImportError: No module named bme280


De momento he llegado hasta aqui.




Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: jmviper en 11 de Abril de 2020, 08:18:35
Python está diciendo que no tiene el módulo bme280 y por tanto no puede importarlo...

sudo pip install RPi.bme280

Seguramente sea lo que hace falta. Puede que algún módulo más de esos que enumeras no esté tampoco y haya que instalarlo con pip
Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: jantoni en 11 de Abril de 2020, 10:09:16
Seguramente es lo que dice jmviper.

Si estás siguiendo este proyecto: https://projects.raspberrypi.org/en/projects/build-your-own-weather-station/

Posiblemente el problema venga de aquí:

Citar
The BME280 Python library:

sudo pip3 install RPi.bme280

Por lo que has instalado el módulo para Python3, pero Weewx funciona con Python 2.7, salvo que quiera usar Weewx 4.0b que está en fase beta.

Siguiendo las indicaciones de jmviper instalarás el módulo para leer el sensor barométrico para python 2.7 y ese error debería desaparecer.

Por cierto, el driver que hay publicado en la wiki de Weewx para OBYWS es este:

https://github.com/jardiamj/BYOWS_RPi

Saludos.
Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: jmviper en 11 de Abril de 2020, 10:48:02
Sí, es como dice jantoni…. si tienes las dos instalaciones de Python (la 2 para weewx y la 3 instalada del repositorio de la raspberry) tendrás que usar pip para instalar módulos Python en python2 que es el que usa weewx y pip3 para instalar en python3.

Seguramente haciendo pruebas te iba bien porque probabas python3 en el cual tienes ese módulo.
Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: mariatr en 14 de Abril de 2020, 12:23:07
buenos dias. lo de pip y pip3 para importar el modulo ya lo había intentado y no funciona, intentare desinstalar e instalar de nuevo weewx.
¿en que directorio instao weewx? ahora lo tenía en /home/pi.
Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: jantoni en 14 de Abril de 2020, 15:10:28
Por mas que instales weewx, si no tienes ese módulo, no vas a conseguir nada.

Y el mensaje es claro, te falta el módulo del sensor barométrico

Saludos
Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: mariatr en 15 de Abril de 2020, 01:38:59
Lo que estoy haciendo es cambiar la manera de instalarlo. me da la impresion que no es que no estuviera el modulo sino que no esta en la carpeta que  el driver  indica donde buscarlo.
La instalacion la hago mediante setup.py .
He de poner meteoclimatic.html.tmpl en /home/weewx/skins/Seasons?
EL archivo meteoclimatic me tiene que aparecer en /home/weewx/public_html ?
Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: jmviper en 15 de Abril de 2020, 08:32:12
Veamos.... una guía básica a las diferentes versiones de Python... básicamente la 2 y la 3 que desde estos pasados años hasta la actualidad han convivido juntos y se le han dado soluciones para elegir una u otra versión.

Para ver la versión por defecto que tenemos instalada ejecutamos python -V

Código: [Seleccionar]
jmviper@orangepipc:/$ python -V
Python 2.7.16

En mi caso es la 2.7.16 la que hay por defecto y que es la que usa weewx.

Si queremos ver las que tenemos instaladas ls -l /usr/bin/python*

Código: [Seleccionar]
jmviper@orangepipc:/$ ls -l /usr/bin/python*
lrwxrwxrwx 1 root root       7 Mar  4  2019 /usr/bin/python -> python2
lrwxrwxrwx 1 root root      14 Mar  4  2019 /usr/bin/python-config -> python2-config
lrwxrwxrwx 1 root root       9 Mar  4  2019 /usr/bin/python2 -> python2.7
lrwxrwxrwx 1 root root      16 Mar  4  2019 /usr/bin/python2-config -> python2.7-config
-rwxr-xr-x 1 root root 2576604 Oct 11  2019 /usr/bin/python2.7
lrwxrwxrwx 1 root root      36 Oct 11  2019 /usr/bin/python2.7-config -> arm-linux-gnueabihf-python2.7-config
lrwxrwxrwx 1 root root       9 Mar 26  2019 /usr/bin/python3 -> python3.7
-rwxr-xr-x 2 root root 3538304 Dec 20 19:57 /usr/bin/python3.7
-rwxr-xr-x 2 root root 3538304 Dec 20 19:57 /usr/bin/python3.7m
lrwxrwxrwx 1 root root      10 Mar 26  2019 /usr/bin/python3m -> python3.7m

Ahí como vemos tenemos los enlaces simbólicos (Symlinks) que empiezan por l (ele) en los permisos o podría decirse en la terminología Windows como accesos directos aunque no es exactamente lo mismo. Vemos que llamar a python será llamar a su versión 2.7 como antes nos ha salido. También lo llamará explícitamente python2 y python2.7.
Si quiero llamar a la versión 3.7 tendré que poner python3 o python3.7. Todo esto es útil sobre todo en la línea de comandos para llamar a Python o en el shebang de un archivo.

Weewx trabajará con python2 excepto las versiones 4 que ya usan python3.

Aclarado (creo) todo lo referente a las versiones python que tenemos instaladas en nuestro sistema viene la hora de pip (el gestor de paquetes de módulos de python).

Si ejecuto pip -V me dirá que usa la versión de python que hay por defecto en el sistema:

Código: [Seleccionar]
jmviper@orangepipc:/$ pip -V
pip 18.1 from /usr/lib/python2.7/dist-packages/pip (python 2.7)

python2.7

si ejecutamos pip2 -V tendrá que salir lo mismo:

Código: [Seleccionar]
jmviper@orangepipc:/$ pip2 -V
pip 18.1 from /usr/lib/python2.7/dist-packages/pip (python 2.7)

y si ejecutamos pip3 entonces (si está instalada) saldrá la versión de python que utiliza:

Código: [Seleccionar]
jmviper@orangepipc:/$ pip3 -V
pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)

Resumiendo pip (a secas) ejecutará la versión de python que hay por defecto en el sistema (la 2.7), pip2 usará explícitamente la versión 2 de python y pip3 la 3

Así que si usamos pip list o pip2 list nos saldrán los módulos de python2 instalados:

Código: [Seleccionar]
[b]jmviper@orangepipc:/$ pip list
Package      Version
------------ -------
asn1crypto   0.24.0
bcrypt       3.1.7
cffi         1.12.3
Cheetah3     3.1.0
configobj    5.0.6
…[/b]


y con pip3 list la de los instalados en python3:

Código: [Seleccionar]
jmviper@orangepipc:/$ pip3 list
Package             Version
------------------- --------
distro-info         0.21
iotop               0.6
pip                 18.1
pycurl              7.43.0.2
PyGObject           3.30.4


Como se ve no son la misma lista de paquetes instalados, cada versión tiene la suya.

Ahora que más o menos sabemos cómo funciona podemos saber qué módulos va a haber en python2 y va a poder usar weewx o sus servicios como el que estás intentando de utilizar.


Lo que estoy haciendo es cambiar la manera de instalarlo. me da la impresion que no es que no estuviera el modulo sino que no esta en la carpeta que  el driver  indica donde buscarlo.
La instalacion la hago mediante setup.py .


En la documentación de weewx encontramos las rutas de los archivos:

http://www.weewx.com/docs/usersguide.htm#Installing_using_the_Python_tool_setup.py

En cada pestaña según sistema o instalación te dirá dónde localizar los archivos.


He de poner meteoclimatic.html.tmpl en /home/weewx/skins/Seasons?
EL archivo meteoclimatic me tiene que aparecer en /home/weewx/public_html ?


Atendiendo al enlace que he puesto antes con la instalación por setup.py esas serán las rutas correctas.

Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: jantoni en 15 de Abril de 2020, 09:03:46
 :aplaude1: :aplaude1:
Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: mariatr en 16 de Abril de 2020, 13:51:59
Eres un crack. después de tu explicación ha bastado con:
sudo pip install RPi.bme280
sudo pip insall statistics

Ahora driver ok, funcionando. ahora a comprobar q las lecturas sean correctas y a seguir con weewx.
Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: jmviper en 16 de Abril de 2020, 20:19:58
Perfecto  :)

Una vez que lo tengas funcionando bien y sin valores erróneos de haber estado haciendo pruebas podrás configurar el envío de la plantilla a meteoclimatic.

Si no tienes hosting donde enviarla puedes enviarla a meteoclimatic con la utilidad de envío en Python (https://forum.meteoclimatic.net/index.php/topic,2622.0.html)
Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: mariatr en 17 de Abril de 2020, 00:19:32
Perfecto, mi intención es colocar mi estación en meteoclimatic e ir añadiendo nuevos sensores. (uv....)

Siguiente problema: coloco la plantilla de meteoclimatic en Seasons (meteoclimatic.thml.tmpl) ero no me genera el  archivo meteoclimatic en public_html.

AL utilizar el método de instalación setup.py las carpetas varían, por ejemplo para apache he utilizado un symlink para enlazar public_html.

como lo hago para tener meteoclimatic.html?
Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: jmviper en 17 de Abril de 2020, 01:24:01
También tienes que editar el skin.conf de Seasons para que genere la plantilla:

http://wiki.meteoclimatic.net/wiki/WeeWX_y_Meteoclimatic#Paso_2._Editar_el_fichero_skin.conf

Se explica en ese paso 2 y OJO cuidado con el nombre de la plantilla, en esa entrada de la wiki se llama meteoclimatic.htm.tmpl sin la ele final en htm .... Si tú la tienes como meteoclimatic.html.tmpl como dices ponlo igual en skin.conf

En cuanto a lo de apache tiene una directiva llamada DocumentRoot para ponerle la carpeta del sistema que quieres que sea la carpeta raíz del servidor. Por ejemplo en mi caso está en el archivo /etc/apache2/sites-enabled/000-default.conf
Si se cambia toca reiniciar el servicio de apache2 con sudo service apache2 restart
Seguramente te apuntará a /var/www/html

Y por otra parte, si no quieres tocar cosas del servidor le puedes decir a weewx dónde quieres que te genere los archivos en el sistema (supuestamente adonde apunta apache) en weewx.conf  en la sección [StdReport]  en HTML_ROOT y después se reinicia weewx.

Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: mariatr en 17 de Abril de 2020, 02:03:48
Muchas gracias jmviper, y a ti jantoni también.

meteclimatic.html creado, no había modificado skin.conf

Pregunta: es mejor programa para subir datos o decirle a meteoclimatic donde buscarlos?

Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: jmviper en 17 de Abril de 2020, 08:06:38
Pues atendiendo a ese siguiente punto 3 de ese enlace de la wiki yo lo haría leyendo meteoclimatic la plantilla de nuestro servidor, tanto si se va a abrir puerto en la raspi como si se sube la plantilla a un hosting (los hay por ahí gratuitos).

Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: jantoni en 17 de Abril de 2020, 09:28:18
Estoy de acuerdo.

Mejor con URL, de momento.

Cualquier vendedor de dominios te dará un pequeño espacio web donde podrás alojar una página meteorológica de forma gratuita. Pagando el dominio, claro.

Por ejemplo, OVH es posiblemente una de las más baratas para registrar el dominio y te da 10 megas de espacio. Es poco, pero suficiente para una cosa básica.

No obstante, sería lógico que, Meteoclimatic, en un futuro, pasase a funcionar solo con API de envío, por lo que el sistema de lectura de una URL dejaría de funcionar.
Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: mariatr en 18 de Abril de 2020, 03:39:50
Buenas noches a todos.

Ya he conseguido enviar los datos a meteoclimatic, pero como estoy trasteando para ver si funciona, los datos no son los que tendría con la estación montada e instalada.

Como puedo borrar los datos guardados tanto en la raspberry como en meteoclimatic?

Gracias.
Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: jmviper en 18 de Abril de 2020, 08:12:58
Perfecto  :)

Una vez que lo tengas funcionando bien y sin valores erróneos de haber estado haciendo pruebas podrás configurar el envío de la plantilla a meteoclimatic.

Si no tienes hosting donde enviarla puedes enviarla a meteoclimatic con la utilidad de envío en Python (https://forum.meteoclimatic.net/index.php/topic,2622.0.html)

Ya dije en este mensaje anterior que Una vez que lo tengas funcionando bien y sin valores erróneos de haber estado haciendo pruebas para ponerlo todo en marcha en meteoclimatic.

Borra la base de datos de weewx que seguramente esté con bastantes valores erróneos de las pruebas. Según la documentación de una instalación por setup.py estará en /home/weewx/archive/weewx.sdb deteniendo weewx primero.

Con la base de datos de meteoclimatic la cosa está más difícil...una vez que se han grabado datos de un día éstos no pueden ser borrados aunque sí modificados pero si no se ponen los valores correctos es inútil.

Yo de ti borraba estación en meteoclimatic y solo cuando vieses la plantilla en tu Raspberry que va ya bien enviaría a meteoclimatic. Ten e cuenta que estación nueva sería nueva plantilla que descargarse de la nueva estación para sustituir a la vieja plantilla.

Y por favor, ya que tienes estación en meteoclimatic pon su código en tu perfil Estación del foro y así podremos ayudarte mejor:

https://forum.meteoclimatic.net/index.php/topic,250.0.html



Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: mariatr en 24 de Abril de 2020, 04:46:44
Buenas noches, seguimos avanzando.

Ya funcionando con el drivers byows_rpi e intalada camara Reolink para tomar fotos cada 5 min.

Ahora el problema es con el sensor uv(veml6075). la libreria Adafruit CircuitPython VEML6075 no funciona con python2.7.

He instalado weewx-4.0 en la raspberry sin borrar weewx-3.9  ¿pero como lo hago para arrancar con weewx-4?
Laruta de weewx-4 es /home/beta4/weewx

Un saludo. 
Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: jantoni en 24 de Abril de 2020, 08:20:03
Puedes ejecutar varios weewx en un mismo ordenador.

Es fácil, pero lo que no sé es si se podrán ejecutar dos diferentes.

Aquí tienes las instrucciones

https://github.com/weewx/weewx/wiki/weewx-multi

Pero con dos diferentes te van a crecer los problemas, porque no son múltiples instancias, sino una instancia de cada versión.

Habría que modificar los lanzadores, la ubicación de archivos y alguna cosa más.

¿Por que quieres hacer esto?

Si es por tener una copia, sería más fácil hacer un clonado del sistema operativo a un fichero, por si tuvieras que volver atrás.

Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: mariatr en 24 de Abril de 2020, 15:00:43
buenos dias, según me parece entender el enlace es como para corer 2 drivers con el mismo weewx.
yo lo tengo son 2 weewx y el mismo driver en cada weewx (3.9 y 4.0).
Lo que quiero es que al arrrancar la raspberry cargue uno  o el otro.
tengo entendido que weewx 4.0 funciona con python3. 
Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: jantoni en 24 de Abril de 2020, 15:17:55
El enlace es para ejecutar varios weewx a la vez.

Pero no creo que sea posible lo que tú quieres.

Pero es que no acabo de entender.

Y no lo entiendo porque Weewx 4.0  funciona con Python 2.7 y 3.x

Si el driver que quiere usar solo funciona en Python 3.x tendrás que usar Weewx 4.0, pero para ambos driver
Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: mariatr en 24 de Abril de 2020, 15:53:00
era para  no desinstalar weewx3 y tener q voler a empezar(sensores, reloj......)
mi idea era modificar el script de inicio de la rasberry para inicie weewx4 y no weewx3.  ya que la version weewx4 esta en el directorio/home/beta4/weewx  y weewx3 en /home weewx
 
Título: Re:actualizar plantilla weewx de una raspberry con sensores
Publicado por: jantoni en 24 de Abril de 2020, 17:36:00
Si, pero lo importante es donde está el código.

En esos directorios tienes los ficheros de configuración, seguramente.

Pero el ejecutable estará en /usr/share/weewx

Para evitar estos inconvenientes, deberías utilizar las distribuciones con *.deb

De ese modo, te garantizas que los directorios sean los mismos (salvo que los desarrolladores decidan cambiarlos)

Aquí puedes ver los diferentes sistemas de instalación y en que directorios están los archivos:

http://weewx.com/docs/usersguide.htm#installation_methods

No obstante, en las pruebas que hice con la Beta 4.0 no vi diferencias en los ficheros de configuración, por lo que haciendo copia de seguridad, seguramente que puedas trasladar los ficheros de un sitio a otro sin problema.

No obstante, recuerda, puedes hacer una imagen de la tarjeta SD.....y si algo falla pues vuelves atrás.

En Windows, win32diskimager hará el trabajo sin problema

Saludos.