Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

Pluviómetro Auriol
#1

Bom Dia,

Com a chegada da chuva dei-me conta de um problema com o meu pluviómetro Auriol.

Apesar de no ecrã do WeatherDuino RX surgir bem o valor em mm/m2, essa informação aparentemente não é passada ao Weewx (do "tail -f /var/log/syslog"):

restx: OWM: data: {'wind_speed': '3.9', 'wind_dir': '218', 'name': 'Mata dos Medos', 'dewpoint': '291.4', 'temp': '18.6', 'uv': '0.00', 'long': '-9.4203', 'humidity': '98', 'pressure': '1004.968', 'rain_24h': '0.00', 'lat': '38.1607', 'rain_1h': '0.00', 'alt': '206.0', 'lum': '0.00', 'rain_today': '1.00', 'wind_gust': '7.2'}

Só o valor "rain today" surge.

A versão do software usada é a 1.4_b037
Reply
#2

Olá, bom dia

Talvez por não conheçer bem o Weewx, não terei entendido bem o problema que reporta. O Weewx não lhe está a mostrar o total diário de precipitação, ou outro valor que seria suposto ser mostrado?
O valor que lhe aparece no display em mm/m2, corresponde ao Rain Today, que, pelo que me diz é recebido pelo Weewx.

Se possível, dê-me mais alguns pormenores da situação que verifica.

Editado:
Estive a verificar os dados na sua página, e pareceu-me que de facto o Weewx não está a processar o Total Diário de precipitação. Verifiquei tambem que está registado no dia 14 de Junho 2015 um total de precipitação muito elevado, possivelmente de quando inicializou o seu sistema, talvez o problema possa estar relacionado.

Reply
#3

Daquilo que julgo entender o Weewx está a "receber" os valores da RainRate e da 'rain_today' [neste momento: '2.80' (que dá certo com a consola Auriol 2,8*1,25=3,5]. Mas não está a receber os outros valores (ou recebe-os ou entende-los como 0).

Na base de dados local ele guarda a rainRate mas a rain surge sempre a 0.

No cálculo dos dados enviados para o WU ele (ou o próprio WU?) calcula/estima um valor de chuva a partir não sei se da taxa de precipitação se da rain_total (só para que se perceba pq é que aí surge um valor para a chuva e localmente/no sítio não)
Reply
#4

Existe alguma possibilidades de colocar aqui um extracto dos dados na db do Weewx, com identificação dos campos?

Do lado do WeatherDuino só vejo uma possibilidade, e a mesma pode ser descartada fazendo um "Factory Reset" (com o Weewx desligado, prima o botão de pressão por mais de 5 segundos).

Reply
#5

O ficheiro pedido está em anexo.

Ainda há não muito tempo fiz um factory reset (inadvertidamente) e não parece ter adiantado.

Depois de passar os olhos pela documentação ocorre-me a eventualidade (e o caso é particular, não encontro precedentes de aplicação de correcções na chuva por um utilizador do driver Vantage) de o problema estar em haver erro na forma como estava a fazer a conversão do bucket tip de 2 para 2,5mm usando:

[StdCalibrate]
[[Corrections]]
rain = 1.25 * rain
rainRate = 1.25 * rainRate

É possível que ao invés de aplicar a conversão ao "rain" a deva aplicar a qualquer um destes (ou a todos):

Daily Rain This value is sent as number of rain clicks. (0.2mm or 0.01in)
Last 15-min Rain This value is sent as number of rain clicks. (0.2mm or 0.01in)
Last Hour Rain This value is sent as number of rain clicks. (0.2mm or 0.01in)
Daily ET This value is sent as the 1000th of an inch.
Last 24-Hour Rain This value is sent as number of rain clicks. (0.2mm or 0.01in)

São todos fornecidos no LOOP e registados no Arquivo?

Pergunto pq o WeeWX tem duas formas possíveis de obter os dados para registo (record_generation): http://www.weewx.com/docs/usersguide.htm#StdArchive

Calcula ele próprio do LOOP ou vai buscar o registo arquivado pela própria estação.
Numa terceira variante usa o arquivo mas considera o LOOP para os máximos e mínimos.

Para despiste, para já removi o factor de correcção da chuva.


EDITADO: Parece que o "Rainfall" é parte do Arquivo mas não do Loop. Como eu estava o usar record_generation=software é bem possível que o "rain = 1.25 * rain" estivesse a "forçar" um resultado 0...


Attached Files
.xlsx weewx_main_database.xlsx Size: 745,75 KB  Downloads: 286
Reply
#6

Quote:Ainda há não muito tempo fiz um factory reset (inadvertidamente) e não parece ter adiantado.

Isto seria uma hipotese remota, e fiz referencia a ela, apenas para descartar essa possivel hipotese.

Quote:[StdCalibrate]
[[Corrections]]
rain = 1.25 * rain
rainRate = 1.25 * rainRate

É possível que ao invés de aplicar a conversão ao "rain" a deva aplicar a qualquer um destes (ou a todos):

Daily Rain This value is sent as number of rain clicks. (0.2mm or 0.01in)
Last 15-min Rain This value is sent as number of rain clicks. (0.2mm or 0.01in)
Last Hour Rain This value is sent as number of rain clicks. (0.2mm or 0.01in)
Daily ET This value is sent as the 1000th of an inch.
Last 24-Hour Rain This value is sent as number of rain clicks. (0.2mm or 0.01in)

Parece-me que está a aplicar o multiplicador no local correcto.
Não deverá aplicá-lo em nenhum dos outros.

Quote:São todos fornecidos no LOOP e registados no Arquivo?

O LOOP contem apenas o Rain Rate (por hora), Day Rain e Year Rain, valores sempre em numero de cliques.
http://www.davisnet.com/support/weather/...s_v261.pdf

No arquivo (registado no logger), apenas são gravados o Rain Rate, e o numero de cliques ocurridos no periodo correspondente ao arquivo.

Quote:Pergunto pq o WeeWX tem duas formas possíveis de obter os dados para registo (record_generation): http://www.weewx.com/docs/usersguide.htm#StdArchive

Sobre isto, poderá tentar mudar o valor por defeito, de hardware para software, talvez seja mesmo a solução.

Dos dados da db, não tirei nenhuma conclusão pois pensava que o valar total da precipitação acumulada era tambem guardado na base de dados.
Algures em algum lugar o Weewx, deve guardar esse valor. A minha suspeita é que esse valor por alguma razão tenha sido inicializado com um valor incorrecto. Não sei como o Weewx faz esses cálculos, com o Cumulos é muito fácil ver nos logs, como são inicializados os valores da preciptação total.
Infelizmente de momento não tenho o Linux instalado para poder correr o Weewx. Talvez consiga instalá-lo no próximo fim de semana.

Reply
#7

Depois de testes eis o apurado.

O QUE APARENTEMENTE FUNCIONA BEM:

# This section can adjust data using calibration expressions.
[StdCalibrate]
[[Corrections]]
# For each type, an arbitrary calibration expression can be given.
# It should be in the units defined in the StdConvert section.
# AURIOL RAINMETER SPECIFIC VALUES
rain = 1.25 * rain
rainRate = 1.25 * rainRate

# FINEOFFSET WIND INSTRUMENTS SPECIFIC VALUES
windSpeed = windSpeed * 0.448
windGust = windGust * 0.448

# This section controls the origin of derived values.
[StdWXCalculate]
# Derived quantities are calculated by this service. Possible values are:
# hardware - use the value provided by hardware
# software - use the value calculated by weewx
# prefer_hardware - use value provide by hardware if available,
# otherwise use value calculated by weewx
rainRate = prefer_hardware

# This section is for configuring the archive service.
[StdArchive]
# If the station hardware supports data logging then the archive interval
# will be downloaded from the station. Otherwise, specify it (in seconds).
archive_interval = 300
# How long to wait (in seconds) before processing new archive data. Must
# be greater than zero.
archive_delay = 15
# If possible, new archive records are downloaded from the station
# hardware. If the hardware does not support this, then new archive
# records will be generated in software.
# Set the following to "software" to force software record generation.
record_generation = hardware
# Whether to include LOOP data in hi/low statistics
loop_hilo = True

O QUE FUNCIONA MAL:

record_generation = software -> invariavelmente regista a rainRate mas não a rain

Isto é estranho porque na documentação o autor demonstra conhecimento e compatibilidade como construções caseiras emulando uma Davis SEM Logger, recomendando que nesse caso se use a opção "software" (como é que nesse caso a rain é calculada?)

É possível tentar contornar isto definindo nas Corrections algo como: rain = rainRate / 5

Seria no entanto necessário entender como o Weewx calcula a rainRate a partir dos dados no loop para perceber se pode ser uma constante ou uma valor calculado usando eventualmente outras variáveis.

Tendo mudado o processo de geração do arquivo (i.e, de introdução dos valores na base de dados do Weewx) para a recuperação dos dados a partir do hardware perdi o registo do valor da temperatura da caixa externa que estava a mapear como soilTemp1.

Dúvida: é possível modificar o software WeatherDuino para gravar o soilTemp1 no arquivo?

PS: No WeeWX para apagar valores erróneos e regenerar as estatísticas, é uma questão de editar a base de dados usando o sqlitebrowser e depois usar a ferramenta incluida com o programa:
wee_database --drop-daily
wee_database --backfill-daily

Tanto quanto entendo o programa mantém tabelas com os registos máximos, mínimos e acumulados por dia que depois consulta para gerar os gráficos e as stats.
Reply
#8

(17-09-2015, 14:06)hvalentim Wrote:  O QUE FUNCIONA MAL:

record_generation = software -> invariavelmente regista a rainRate mas não a rain

Isto é estranho porque na documentação o autor demonstra conhecimento e compatibilidade como construções caseiras emulando uma Davis SEM Logger, recomendando que nesse caso se use a opção "software" (como é que nesse caso a rain é calculada?)

Talvez seja apenas um problema de interpretação, é que o WeatherDuino Pro2 emula uma Davis COM Logger.

Quote:É possível tentar contornar isto definindo nas Corrections algo como: rain = rainRate / 5

O RainFall Rate não pode ser obtido simplesmente a partir do valor da rain, pois ele involve o factor tempo. Isto é, é calculado medindo o tempo que decorre entre cada clique.
Mas pelo que me diz, deixando as definições do record_generation em modo standard, ou seja hardware, não precisa se preocupar com isso, pois o WeeewX vai usar o valor do RainFall rate fornecido pela estação (WeatherDuino Pro2).
Mas creio que percebi, porque pretende manter o record_generation em modo software: Por causa da alteração que fez para ter o soilTemp1, certo?

Quote:Dúvida: é possível modificar o software WeatherDuino para gravar o soilTemp1 no arquivo?

Sim é, e isso irá resolver-lhe o problema do SoilTemp1. Smile
Terei todo o gosto em ajudá-lo com isso em privado.

Reply
#9

(17-09-2015, 16:58)Werk_AG Wrote:  Talvez seja apenas um problema de interpretação, é que o WeatherDuino Pro2 emula uma Davis COM Logger.
Depois do "desafio" de soldar a memória eu não me ia esquecer disso.


Quote:O RainFall Rate não pode ser obtido simplesmente a partir do valor da rain, pois ele involve o factor tempo. Isto é, é calculado medindo o tempo que decorre entre cada clique.

Justamente. Nos casos em que a emulação é "sem" o dito a única forma possível de obter os dados é através do LOOP. Nesse caso, como é que eles fazem? Presumo que conhecendo a variação entre LOOPS com o acumulado por ex. diário e sabendo o respectivo timestamp, é possível inferi-lo.


Quote:porque pretende manter o record_generation em modo software: Por causa da alteração que fez para ter o soilTemp1, certo?
Não pretendo. Já mudei para o modo hardware. Estava a usar o software por causa do registo da temperatura da box externa via o soilTemp, sim.


Quote:Dúvida: é possível modificar o software WeatherDuino para gravar o soilTemp1 no arquivo?
Sim é, e isso irá resolver-lhe o problema do SoilTemp1. Smile
Terei todo o gosto em ajudá-lo com isso em privado.

OK. Obrigado.
Reply
#10

COMO É CALCULADA A RAIN A PARTIR DO LOOP PELO WEEWX?

RESPOSTA: A PARTIR DO DIFERENCIAL NO TOTAL MENSAL.

Excerto do ficheiro do driver - vantage.py (é possível aceder à totalidade do código do ficheiro no GitHub >>)):

Code:
# Because the Davis stations do not offer bucket tips in LOOP data, we
        # must calculate it by looking for changes in rain totals. This won't
        # work for the very first rain packet.
        if self.save_monthRain is None:
            delta = None
        else:
            delta = loop_packet['monthRain']-self.save_monthRain
            # If the difference is negative, we're at the beginning of a month.
            if delta < 0: delta = None
        loop_packet['rain'] = delta
        self.save_monthRain = loop_packet['monthRain']

        return loop_packet

Julgo que se retira daqui uma conclusão em como para conseguir obter a chuva a partir do LOOP c/ o WeeWX ou bem:

a) se modifica o WeatherDuino para enviar também o valor do monthRain

b) se tenta modificar o WeeWX para fazer as contas a partir do yearRain



Da consulta do ficheiro também se infere que para o total acumulado da chuva no dia bater certo via LOOP (software mode), com implicações por exempo nos valores reportados ao WunderGround, é preciso adicionar a seguinte calibração (acabo de confirmar que funciona):

# This section can adjust data using calibration expressions.
[StdCalibrate]
[[Corrections]]
dayRain = dayRain * 1.25

Basicamente o programa parece aceitar a aplicação de correcções a qualquer dos valores do LOOP.

   
A depressão no gráfico supra demostra como, por razões de actualização de software que o Werk_AG conhece, tendo passado do modo de geração a partir de hardware (do arquivo do WeatherDuino) ao modo de geração a partir do Loop (software) na ausência do dayRain = dayRain * 1.25 o valor reportado desceu de 2.3 para 1.8, tendo a ele voltado depois da aplicação do factor de correcção.
Reply




Users browsing this thread: 1 Guest(s)