Meteoclimatic
Software => WeeWX => Mensaje iniciado 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
-
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
-
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?
-
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
-
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.
-
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.
-
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
-
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í:
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.
-
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.
-
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.
-
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
-
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 ?
-
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
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*
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:
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:
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:
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:
[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:
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.
-
:aplaude1: :aplaude1:
-
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.
-
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)
-
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?
-
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.
-
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?
-
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).
-
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.
-
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.
-
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
-
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.
-
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.
-
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.
-
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
-
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
-
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.