Autor Tema: Añadir sensor de rayos  (Leído 1436 veces)

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

Desconectado ELX_CARRUS

  • Newbie
  • *
  • Mensajes: 32
    • Ver Perfil
  • Estación: ESPVA0300000003206A
Añadir sensor de rayos
« en: 16 de Junio del 2022, 18:38:45 pm »
Hola a todos, quisiera añadir el sensor de rayos de Ecowitt al sistema Weewx. El problema es que siguiendo Wiki de Weewx me queda bastante claro que no se pueden tener 2 Drivers funcionando en el mismo sistema y yo ya tengo instalado el WLL con lo cual para instalar el sensor adicional ecowitt mediante interceptor no tengo opción.
No veo tampoco la posibilidad de añadir el sensor de rayos como servicio (como tengo por ejemplo el sensor de partículas de calidad del aire Purpleair.) y que el nuevo servicio añada los datos a la base de datos o genere una nueva, de esta manera ya los puedo utilizar para los gráficos, esto no tengo problema. 
Lo que tengo ahora es el sensor de rayos instalado en el exterior y enlazado con el GW1000 y el programa WS wiew configurado y recibiendo la señal del sensor. También lo veo accediendo desde la IP del sensor en la misma red http://192.168.1.94/liveData.html que dejo como adjunto. 
Por favor, ¿alguien sabe cómo hacerlo?
La unica opción que veo es añadiendo un servicio mas a la lista de [Engine]
 
     [[Services]] de weewx.conf, pero no sé cómo hacerlo.

Muchas gracias
Bruno

 

jantoni

  • Visitante
Re:Añadir sensor de rayos
« Respuesta #1 en: 16 de Junio del 2022, 21:01:26 pm »
En weewx no puedes tener más de un driver funcionando.

Pero si puedes tener funcionando varios weewx de forma simultánea.

Es,decir, tendrías un weewx funcionando con el driver de Davis Vantsge y otro weewx funcionando, mejor que con interceptor, con el driver GW1000

Además, de ese modo tendrías libre el servidor customized en WSView.

Desconectado ELX_CARRUS

  • Newbie
  • *
  • Mensajes: 32
    • Ver Perfil
  • Estación: ESPVA0300000003206A
Re:Añadir sensor de rayos
« Respuesta #2 en: 16 de Junio del 2022, 21:17:53 pm »
Gracias, Jantoni por la respuesta, lo había pensado, pero no sé si es cosa fácil abrir otra instancia de weewx teniendo ya todo configurado y en marcha, ya que la instalación actual está con los directorios por defecto de la instalación desde DEb y la información de la wiki para abrir dos instalaciones no la veo muy clara.
Lo miraré.
Ya os cuento como llevo la solución.
Bruno

jantoni

  • Visitante
Re:Añadir sensor de rayos
« Respuesta #3 en: 16 de Junio del 2022, 22:05:04 pm »
Es bastante fácil

Los directorios siguen siendo los mismos.

Solo hay que cambiar la base de datos, para tener diferenciada la base de un weewx de la del otro y el script de arranque que está alojado en /etc/init.d

Ahora te paso información adicional

jantoni

  • Visitante
Re:Añadir sensor de rayos
« Respuesta #4 en: 16 de Junio del 2022, 22:07:03 pm »

jantoni

  • Visitante
Re:Añadir sensor de rayos
« Respuesta #5 en: 16 de Junio del 2022, 22:10:23 pm »
Luego puedes jugar lo que quieras.

Por ejemplo, para no cargar el sistema, puedes hacer que el weewx que controla la GW1000 meta datos en la base de datos, pero que no genere ningún informe, ni página web ni nada. Solo irá recogiendo datos.

Y al weewx “principal” además de sus informes habituales, le programas que lea la base de datos del GW1000 y use los datos de los rayos.

Así lo estuve haciendo yo un tiempo con el detector de partículas PM2.5

Desconectado ELX_CARRUS

  • Newbie
  • *
  • Mensajes: 32
    • Ver Perfil
  • Estación: ESPVA0300000003206A
Re:Añadir sensor de rayos
« Respuesta #6 en: 17 de Junio del 2022, 09:07:19 am »
Buenos dias Jantoni, lo voy a intentar, la idea sería crear un usuario casa que seria el actual con el mismo nombre para las BD y el [StdReport]
        HTML_ROOT = public_html/casa
        ...
y hacer uno nuevo que se llamaria rayos con una BD que se llamaria:
[Databases]
        [[archive_sqlite]]
            database_name = rayos.sdb
            database_type = SQLite
        [[archive_mysql]]
            database_name = rayos
            database_type = MySQL

Con el copiar:
For package installs:

sudo cp /etc/weewx/weewx.conf /etc/weewx/casa.conf
sudo cp /etc/weewx/weewx.conf /etc/weewx/rayos.conf

crearía dos ficheros literales del weewx.conf uno para cada instancia  (casa.conf) y (rayos.conf)

después instalar el weewx multi con todo esto:

wget -P /var/tmp https://raw.githubusercontent.com/weewx/weewx/master/util/init.d/weewx-multi
sudo cp /var/tmp/weewx-multi /etc/init.d/weewx
sudo update-rc.d weewx defaults
echo 'WEEWX_INSTANCES="casa rayos"' | sudo tee /etc/default/weewx-multi
echo 'WEEWX_CFGDIR=/etc/weewx' | sudo tee -a /etc/default/weewx-multi
echo 'WEEWX_BINDIR=/usr/share/weewx' | sudo tee -a /etc/default/weewx-multi

dejaría el rayos sin ftp, sin generar web, y eliminaría todo lo referente a casa (davis-purpleair, etc)

La única duda por el momento es como reconfiguro el driver yo lo hago con el comando:

sudo wee_extension --reconfigure   para asignar el driver correcto a cada instancia de weewx, pero no sé cómo diferenciarlas si fuese en dos máquinas distintas no está fácil, pero desde un terminal común como cambio el driver a cada instancia por separado?

Muchas gracias.








Desconectado ELX_CARRUS

  • Newbie
  • *
  • Mensajes: 32
    • Ver Perfil
  • Estación: ESPVA0300000003206A
Re:Añadir sensor de rayos
« Respuesta #7 en: 17 de Junio del 2022, 10:28:33 am »
Hola de nuevo, he conseguido que weewx reconozca el GW1000 como servicio adicional, además del WLL.
Lo he hecho de la siguiente forma:
Installation as a WeeWX service
(de la wiki)
    Install WeeWX and configure it to use either the simulator or another driver of your choice.

    Install the Ecowitt Gateway driver extension using the wee_extension utility as per Installation as a WeeWX driver at step 2 above.

    Edit weewx.conf and under the [Engine] [[Services]] stanza add an entry user.gw1000.GatewayService to the data_services option. It should look something like:

     [Engine]
     
         [[Services]]
             ....
             data_services = user.gw1000.GatewayService

y esto es como queda en weewx.conf este apartado:

Engine]
    # The following section specifies which services should be run and in what order.
    [[Services]]
        prep_services = weewx.engine.StdTimeSynch
        data_services = user.gw1000.GatewayService,
        process_services = weewx.engine.StdConvert, weewx.engine.StdCalibrate, weewx.engine.StdQC, weewx.wxservices.StdWXCalculate, user.purpleair.PurpleAirMonitor, user.crt.CumulusRealTime, use>
        xtype_services = weewx.wxxtypes.StdWXXTypes, weewx.wxxtypes.StdPressureCooker, weewx.wxxtypes.StdRainRater, weewx.wxxtypes.StdDelta
        archive_services = weewx.engine.StdArchive
        restful_services = weewx.restx.StdStationRegistry, weewx.restx.StdWunderground, weewx.restx.StdPWSweather, weewx.restx.StdCWOP, weewx.restx.StdWOW, weewx.restx.StdAWEKAS, user.windguru.W>
        report_services = weewx.engine.StdPrint, weewx.engine.StdReport
[PurpleAirMonitor]
    data_binding = purpleair_binding
    hostname = 192.168.1.22
    port = 80

ademas se crea una configuracion para acumulator:

[Accumulator]
    [[rainRate]]
        extractor = max

    # Start Ecowitt Gateway driver extractors

    [[lightning_distance]]
        extractor = last
    [[lightning_strike_count]]
        extractor = sum
    [[lightningcount]]
        extractor = last
    [[lightning_last_det_time]]
        extractor = last
    [[wh57_bat]]
        extractor = last
    [[wh57_sig]]
        extractor = last


Se guarda y se reinicia weewx y no da ningun error y aparentemente todo funciona.

extracto del log:

Jun 17 10:14:18 debian systemd[1]: Starting LSB: weewx weather system...
Jun 17 10:14:18 debian weewx[25440] INFO __main__: Initializing weewx version 4.8.0
Jun 17 10:14:18 debian weewx[25440] INFO __main__: Using Python 3.9.2 (default, Feb 28 2021, 17:03:44) #012[GCC 10.2.1 20210110]
Jun 17 10:14:18 debian weewx[25440] INFO __main__: Platform Linux-5.10.0-14-amd64-x86_64-with-glibc2.31
Jun 17 10:14:18 debian weewx[25440] INFO __main__: Locale is 'ca_ES.UTF-8'
Jun 17 10:14:18 debian weewx[25440] INFO __main__: Using configuration file /etc/weewx/weewx.conf
Jun 17 10:14:18 debian weewx[25440] INFO __main__: Debug is 0
Jun 17 10:14:18 debian weewx[25440] INFO __main__: PID file is /var/run/weewx.pid
Jun 17 10:14:18 debian weewx[25443] INFO weewx.engine: Loading station type WLLDriver (user.WLLDriver)
Jun 17 10:14:18 debian weewx[25429]: Starting weewx weather system: weewx.
Jun 17 10:14:18 debian systemd[1]: Started LSB: weewx weather system.
Jun 17 10:14:18 debian weewx[25443] INFO user.WLLDriver: Driver name is WLLDriver
Jun 17 10:14:18 debian weewx[25443] INFO user.WLLDriver: Driver version is 2020.12-1
Jun 17 10:14:18 debian weewx[25443] INFO user.WLLDriver: Polling interval set to 5
Jun 17 10:14:18 debian weewx[25443] INFO user.gw1000: GatewayService: version is 0.5.0b5
Jun 17 10:14:18 debian weewx[25443] INFO user.gw1000: GatewayService: GW1100 address is 192.168.1.94:45000
Jun 17 10:14:18 debian weewx[25443] INFO user.gw1000: GatewayService: poll interval is 20 seconds
Jun 17 10:14:18 debian weewx[25443] INFO user.gw1000: GatewayService: max age of API data to be used is 60 seconds
Jun 17 10:14:18 debian weewx[25443] INFO user.gw1000: Gw1000Service: lost contact will be logged every 21600 seconds
Jun 17 10:14:18 debian weewx[25443] INFO weewx.engine: StdConvert target unit is 0x1
Jun 17 10:14:18 debian weewx[25443] INFO weewx.wxservices: StdWXCalculate will use data binding wx_binding
Jun 17 10:14:18 debian weewx[25443] INFO user.purpleair: service version is 0.4
Jun 17 10:14:18 debian weewx[25443] INFO user.crt: service version is 0.21
Jun 17 10:14:18 debian weewx[25443] INFO user.crt: realtime txt output goes to /var/tmp/realtime.txt
Jun 17 10:14:18 debian weewx[25443] INFO user.crt: 'None' values will be displayed as NULL
Jun 17 10:14:18 debian weewx[25443] INFO user.crt: units will be displayed as METRIC
Jun 17 10:14:18 debian weewx[25443] INFO user.crt: zambretti forecast: False
Jun 17 10:14:18 debian weewx[25443] INFO user.crt: binding is loop
Jun 17 10:14:18 debian weewx[25443] INFO user.cwxn: service version is 0.5
Jun 17 10:14:18 debian weewx[25443] INFO user.cwxn: binding is loop
Jun 17 10:14:18 debian weewx[25443] INFO user.cwxn: output goes to /var/tmp/wxnow.txt
Jun 17 10:14:18 debian weewx[25443] INFO weewx.engine: Archive will use data binding wx_binding
Jun 17 10:14:18 debian weewx[25443] INFO weewx.engine: Record generation will be attempted in 'hardware'
Jun 17 10:14:18 debian weewx[25443] INFO weewx.engine: Using archive interval of 300 seconds (specified in weewx configuration)
Jun 17 10:14:18 debian weewx[25443] INFO weewx.restx: StationRegistry: Registration not requested.
Jun 17 10:14:18 debian weewx[25443] INFO weewx.restx: Wunderground-PWS: Data for station IELCHE29 will be posted
Jun 17 10:14:18 debian weewx[25443] INFO weewx.restx: PWSWeather: Data for station IELXMETEO will be posted
Jun 17 10:14:18 debian weewx[25443] INFO weewx.restx: CWOP: Data for station FW8678 will be posted
Jun 17 10:14:18 debian weewx[25443] INFO weewx.restx: WOW: Posting not enabled.
Jun 17 10:14:18 debian weewx[25443] INFO weewx.restx: AWEKAS: Data will be uploaded for user ElxCarrus
Jun 17 10:14:18 debian weewx[25443] INFO user.windguru: service version is 0.2
Jun 17 10:14:18 debian weewx[25443] INFO user.windguru: Data will be uploaded for meteoelx
Jun 17 10:14:18 debian weewx[25443] INFO user.meteoservices: restx: Meteoservices: service version is 3.2
Jun 17 10:14:18 debian weewx[25443] INFO user.meteoservices: restx: Meteoservices: Data will be uploaded for station id X05CL23AKB
Jun 17 10:14:18 debian weewx[25443] INFO weewx.engine: 'pyephem' detected, extended almanac data is available
Jun 17 10:14:18 debian weewx[25443] INFO __main__: Starting up weewx version 4.8.0
Jun 17 10:14:18 debian weewx[25443] INFO weewx.engine: Using binding 'wx_binding' to database 'weewx.sdb'
Jun 17 10:14:18 debian weewx[25443] INFO weewx.manager: Starting backfill of daily summaries
Jun 17 10:14:18 debian weewx[25443] INFO weewx.manager: Daily summaries up to date
Jun 17 10:14:18 debian weewx[25443] INFO weewx.engine: Starting main packet loop.


Y asi queda ¿Creeis que funcionara?

muchas gracias
Bruno

jantoni

  • Visitante
Re:Añadir sensor de rayos
« Respuesta #8 en: 17 de Junio del 2022, 17:38:17 pm »
Pues.....ni idea *+* *+* *+* *+* *+* *+*

Pero lo vamos a saber en breve, gracias a tu experiencia.

Y recuerda hacer copia de todo......y redundante.....copia de las configuraciones y hasta una copia de la tarjeta SD *-* *-* *-* *-*

Desconectado ELX_CARRUS

  • Newbie
  • *
  • Mensajes: 32
    • Ver Perfil
  • Estación: ESPVA0300000003206A
Re:Añadir sensor de rayos
« Respuesta #9 en: 17 de Junio del 2022, 18:19:30 pm »
De momento la BD weewx.sdb está rellenando los datos con 00 cuando antes era NULL,  lógico porque no hay rayos a la vista, pero todo sigue funcionando. A la plantilla de belchertown le he puesto un gráfico al final para que registre algo. Si funciona ya completare todas las plantillas, lo importante es que se están grabando los datos en la base datos.
Ha creado dos etiquetas: 
[lightning_strike_count] y [lightning_distance]

A ver si funciona.
Lo tengo montado en https://meteoelx.com

Gracias
Bruno

Desconectado ELX_CARRUS

  • Newbie
  • *
  • Mensajes: 32
    • Ver Perfil
  • Estación: ESPVA0300000003206A
Re:Añadir sensor de rayos
« Respuesta #10 en: 22 de Junio del 2022, 17:54:18 pm »
Ayer aqui en Elche cayo una buena tormenta, el equipo tuvo un estreno a lo grande.
He tratado de integrarlo en el skin Belchertown y me da algun problema. La distancia a los rayos la dibuja sin problemas, pero cuando le pongo otras etiquetas que también están en la base de datos me devuelve un error de divide 10 en la generación de los gráficos y corta el proceso. La página de ecowitt lo genera sin problema.
Si alguien que esté representando los datos de rayos en número de rayos y en distancia me puede ayudar y me explica como puedo avanzar, le estoy agradecido.
Saludos.
Bruno



Desconectado dtalens

  • Full Member
  • ***
  • Mensajes: 150
    • Ver Perfil
    • MeteoPego
  • Estación: ESPVA0300000003780H
Re:Añadir sensor de rayos
« Respuesta #11 en: 22 de Junio del 2022, 18:17:03 pm »
Hola ELX_CARRUS,

Te he respondido por privado pero apostaria que el problema tiene que ver con la gestión de la unidades de algunos parámetros. Añadiendo a la sección "StringFormats" del archivo weewx.conf o skin.conf el siguiente código se debería resolver los problemas con la generación de gráficos:
Código: [Seleccionar]
            [[[[StringFormats]]]]
                count = %.0f

De momento la BD weewx.sdb está rellenando los datos con 00 cuando antes era NULL,  lógico porque no hay rayos a la vista, pero todo sigue funcionando. A la plantilla de belchertown le he puesto un gráfico al final para que registre algo. Si funciona ya completare todas las plantillas, lo importante es que se están grabando los datos en la base datos.
Ha creado dos etiquetas: 
[lightning_strike_count] y [lightning_distance]

A ver si funciona.
Lo tengo montado en https://meteoelx.com

Gracias
Bruno


A ver si no me equivoco pero si no hay datos de rayos no debería indicar 0 sinó NULL... a mi al principio cuando reiniciaba el servidor me salia un rayos "fantasma" debido a que el driver sigue enviado los datos de distancia del último rayo registrado. Lo arreglé indicando el siguiente código a weewx.conf:
Código: [Seleccionar]
[StdCalibrate]

    [[Corrections]]
        lightning_distance = None if lightning_strike_count == 0 or lightning_strike_count is None else lightning_distance

Saludos,

Desconectado ELX_CARRUS

  • Newbie
  • *
  • Mensajes: 32
    • Ver Perfil
  • Estación: ESPVA0300000003206A
Re:Añadir sensor de rayos
« Respuesta #12 en: 22 de Junio del 2022, 18:24:54 pm »
Muchas gracias

tenia puesto algo parecido:

StdCalibrate]

    [[Corrections]]
        # For each type, an arbitrary calibration expression can be given.
        # It should be in the units defined in the StdConvert section.
        # Example:
        foo = foo + 0.2
#       lightning_distance = lightning_distance if lightning_strike_count>0 else None
        lightning_distance = None if lightning_strike_count == 0 or lightning_strike_count is None else lightning_distance
##############################################################################

lo he comentado y he puesto el que nos comentas.

De toda manera el graphs.conf lo tengo que tener mal tambien.

Saludos.

Desconectado dtalens

  • Full Member
  • ***
  • Mensajes: 150
    • Ver Perfil
    • MeteoPego
  • Estación: ESPVA0300000003780H
Re:Añadir sensor de rayos
« Respuesta #13 en: 22 de Junio del 2022, 18:51:13 pm »
Te paso parte de mi graph.conf.

Tengo un gráfico en la página de inicio:

Código: [Seleccionar]
[Homepage]
     [[llamps]]
        title = "Número i distància dels llamps"
        type = column
        yAxis_label = ""
        [[[lightning_strike_count]]]
           name = "Número de llamps"
           stacking = normal
        [[[lightning_distance]]]
           name = "Distància llamps (km)"
           stacking = normal

Después una sección solo para "rayos":
Código: [Seleccionar]
[llamps]
    title = Llamps
    show_button = true
    button_text = Llamps
    time_length = year
    #aggregate_type = max
    aggregate_interval = 86400 # 1 day
    gapsize = 86400000
    type = column
    yAxis_label = ""
    [[llamps]]
      title = "Número i distància dels llamps (diari)"
      [[[numero_diari_llamps]]]
           name = "Número diari de llamps"
           aggregate_type = sum
           observation_type = lightning_strike_count
           stacking = normal
      [[[dist_mitj_llamps_diari]]]
           name = "Distància mitjana llamps (km)"
           aggregate_type = avg
           observation_type = lightning_distance
           stacking = normal
           #yAxis = 1
    [[llamps_mensuals]]
    xAxis_groupby = month
    xAxis_categories = 'Gen.','Febr.', 'Març', 'Abr.', 'Maig', 'Juny', 'Jul.', 'Ag.', 'Set.', 'Oct.', 'Nov.', 'Des.'
    title = "Número i distància dels llamps (mensual)"
    #time_length = month 
    #xAxis_groupby = day
    [[[num_llamps_mes]]]
        name = "Número de llamps"
        aggregate_type = sum
        observation_type = lightning_strike_count
        stacking = normal
        ##yAxis = 1
    [[[dist_mit_llamps]]]
        name = "Distància mitjana llamps (km)"
        aggregate_type = avg
        observation_type = lightning_distance
        stacking = normal
        #yAxis = 0

Desconectado ELX_CARRUS

  • Newbie
  • *
  • Mensajes: 32
    • Ver Perfil
  • Estación: ESPVA0300000003206A
Re:Añadir sensor de rayos
« Respuesta #14 en: 22 de Junio del 2022, 20:55:45 pm »
Ya funciona todo. Gracias de verdad.  No es nada fácil controlar el weewx, pero siempre hay alguien que te ofrece lo que no te atreves a pedir.  apla3

Saludos

Bruno