Meteoclimatic
Hardware => Ecowitt y todos los clones Fine Offset => Mensaje iniciado por: PacoJavi en 01 de Febrero de 2021, 08:48:31
-
Buenos días,
Estoy trasteando con una WH1080 que me llegó la semana pasada y al enchufarla a la Raspberry con weewx, ésta no lee la presión de la consola.
He cambiado "debug = 0" por "debug = 1" en weewx.conf para obtener más información en en log, pero no parece que la información que obtengo sea más extensa que si el debug está fijado en 0. Pongo un fragmento:
Feb 1 08:30:40 raspberrypi weewx[602] INFO weewx.manager: Added record 2021-02-01 08:30:00 CET (1612164600) to database 'weewx.sdb'
Feb 1 08:30:40 raspberrypi weewx[602] INFO weewx.manager: Added record 2021-02-01 08:30:00 CET (1612164600) to daily summary in 'weewx.sdb'
Feb 1 08:30:40 raspberrypi weewx[602] DEBUG weewx.reportengine: Running reports for latest time in the database.
Feb 1 08:30:40 raspberrypi weewx[602] DEBUG weewx.reportengine: Running report 'SeasonsReport'
Feb 1 08:30:40 raspberrypi weewx[602] DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/Seasons/skin.conf for report 'SeasonsReport'
Feb 1 08:30:40 raspberrypi weewx[602] DEBUG weewx.cheetahgenerator: Using search list ['weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', 'weewx.cheetahgenerator.Extras']
Feb 1 08:30:40 raspberrypi weewx[602] DEBUG weewx.manager: Daily summary version is 2.0
Feb 1 08:30:41 raspberrypi weewx[602] INFO weewx.cheetahgenerator: Generated 10 files for report SeasonsReport in 1.42 seconds
Feb 1 08:30:41 raspberrypi weewx[602] DEBUG weewx.manager: Daily summary version is 2.0
Feb 1 08:30:42 raspberrypi weewx[602] INFO weewx.imagegenerator: Generated 15 images for report SeasonsReport in 1.10 seconds
Feb 1 08:30:42 raspberrypi weewx[602] INFO weewx.reportengine: Copied 0 files to /var/www/html/weewx
Feb 1 08:30:42 raspberrypi weewx[602] DEBUG weewx.reportengine: Report 'SmartphoneReport' not enabled. Skipping.
Feb 1 08:30:42 raspberrypi weewx[602] DEBUG weewx.reportengine: Report 'MobileReport' not enabled. Skipping.
Feb 1 08:30:42 raspberrypi weewx[602] DEBUG weewx.reportengine: Report 'StandardReport' not enabled. Skipping.
Feb 1 08:30:42 raspberrypi weewx[602] DEBUG weewx.reportengine: Report 'FTP' not enabled. Skipping.
Feb 1 08:30:42 raspberrypi weewx[602] DEBUG weewx.reportengine: Report 'RSYNC' not enabled. Skipping.
En teoría, y según he visto en el foro de weewx, al fijar el debug en 1 deberían salir los valores de los parámetros que weewx toma de la consola en el syslog, y si "Barometer = None", es que efectivamente hay un error.
Según dicho post de este foro el problema se subsanó instalando un nuevo driver para la Fine Offset, pero al ser un post tan antiguo (2013) imagino que este problema habrá sido subsanado.
¿Alguien ha experimentado algo parecido?
Como información adicional, instalé weewx por mi cuenta, no con la imagen de jantoni. Además, sólo tengo la consola funcionando; La ISS no está mandando datos a la consola.
Un saludo
-
Hola Paco Javi
Lo mejor en estos casos es mirar directamente cómo coge los datos weewx de la estación. Lo detienes y ejecutas sudo weewxd /etc/weewx/weewx.conf
No sé cómo captará los datos weewx para esa estación pero verás cómo va cogiéndolos y ver en ellos si está o no el de la presión.
Se detiene con CTRL +C
Puedes poner aquí el resultado a ver qué sale en ese campo.
-
Ummmmmm
Ese es el mismo problema que tuve yo. Y me da que es por no tener el bloque integrado dando datos.
Creo que publiqué la modificación del driver. Es solo una línea.....
Si no, entro en la raspi, luego, y te digo la modificación a realizar.
-
Muchas gracias a los 2.
Efectivamente y como le pasaba al compañero del foro de weewx, no está cogiendo el valor de presión:
LOOP: 2021-02-01 10:17:24 CET (1612171044) altimeter: 29.9043527832, appTemp: None, barometer: None, beaufort: None, cloudbase: None, dateTime: 1612171044, delay: 19, dewpoint: None, heatindex: None, humidex: None, inDewpoint: 49.8654584527, inHumidity: 56.0, inTemp: 66.02, maxSolarRad: None, outHumidity: None, outTemp: None, outTempBatteryStatus: 0, pressure: 27.5780553263, ptr: 608, radiation: None, rain: None, rainRate: 0, rainTotal: 0.0, rxCheckPercent: 0, status: 64, usUnits: 1, UV: None, windchill: None, windDir: None, windGust: None, windGustDir: None, windSpeed: None
En dicho post del otro foro no aparecía como lo habían solucionado, solo mencionaban que era un problemilla del driver. A ver que nos cuenta jantoni :)
-
LOOP: 2021-02-01 10:17:24 CET (1612171044) altimeter: 29.9043527832, appTemp: None, barometer: None, beaufort: None, cloudbase: None, dateTime: 1612171044, delay: 19, dewpoint: None, heatindex: None, humidex: None, inDewpoint: 49.8654584527, inHumidity: 56.0, inTemp: 66.02, maxSolarRad: None, outHumidity: None, outTemp: None, outTempBatteryStatus: 0, pressure: 27.5780553263, ptr: 608, radiation: None, rain: None, rainRate: 0, rainTotal: 0.0, rxCheckPercent: 0, status: 64, usUnits: 1, UV: None, windchill: None, windDir: None, windGust: None, windGustDir: None, windSpeed: None
Curioso... está leyendo la temperatura y la humedad de la consola (inTemp e inHumidity) y los valores de altimeter y pressure pero no el de barometer
Los sensores exteriores parece no estar leyéndolos.... qué gráficos está generando weewx ??
También ejecuta sudo wee_device --info a ver qué sale
-
Los sensores exteriores no los lee porque la ISS está en la caja, sin pilas. De momento sólo enchufé la consola para ver si funcionaba todo acorde ya que dí por hecho que si comunicaba la consola con la raspi de primeras, al instalar la ISS no habría problemas.
El output a sudo wee_device --info:
sudo wee_device --info
Using configuration file /etc/weewx/weewx.conf
Using FineOffsetUSB driver version 1.20 (weewx.drivers.fousb)
Querying the station...
Fine Offset station settings:
local time: 2021.02.01 11:21:55 CET
polling mode: PERIODIC
abs_pressure: 934.2
current_pos: 640
data_changed: 0
data_count: 25
date_time: 2021-02-01 10:57
hum_in_offset: 22288
hum_out_offset: 258
id: 21625
lux_wm2_coeff: 0
magic_1: 0x55
magic_2: 0xaa
model: 4224
rain_coef: 24580
read_period: 30
rel_pressure: 1016.9
temp_in_offset: 8448
temp_out_offset: 0
timezone: 0
unknown_01: 127
unknown_18: 96
version: 32
wind_coef: 2785
wind_mult: 0
Ahí si que aparece el valor de presión.
Los gráficos que se están generando son únicamente los de temperatura y humedad interior, que son los que proporciona la consola. El de presión, al no estar comunicando ningún valor a weewx, no se genera.
-
Veamos....
La presión la lee de la consola por lo que no hay problema en eso.
Viendo la documentación de weewx referente a las FineOffset (http://www.weewx.com/docs/hardware.htm#fousb_data) pone que de esas estaciones lee pressure por hardware y este valor según esta explicación (https://github.com/weewx/weewx/wiki/Barometer,-pressure,-and-altimeter) en su wiki es la presión absoluta de la estación.
Las otras dos (altimeter y barometer) son calculadas por weewx y para ello necesitará, creo, los valores de altitud, temperatura y humedad exterior para calcular la relativa (barometer).
Prueba a conectarla a la unidad exterior y seguramente dé el dato.
Lo curioso es que en wee_device info aparezca tanto la presión absoluta como la relativa, que ambas las proporciona la consola ya que esa información es de ella pero weewx coge la absoluta y genera la relativa por sus fórmulas a partir de ella.
-
Veamos......en el driver 0.53 yo observé que faltaba algo.
Así que estuve mirando los LOOP y vi que tenía que hacer algo....o me tiraba al metro.
Así que edité el driver, añadiendo una sola línea.
class EcowittClient(Consumer):
"""Use the ecowitt protocol (not WU protocol) to capture data"""
def __init__(self, **stn_dict):
super(EcowittClient, self).__init__(
EcowittClient.Parser(), handler=EcowittClient.Handler, **stn_dict)
class Handler(Consumer.Handler):
def get_response(self):
return '{"errcode":"0","errmsg":"ok","UTC_offset":"-18000"}'
class Parser(Consumer.Parser):
# map labels to observation names
LABEL_MAP = {
'baromabsin': 'pressure',
'baromrelin': 'barometer',
'humidity': 'humidity_out',
'humidityin': 'humidity_in',
'tempf': 'temperature_out',
'tempinf': 'temperature_in',
'temp1f': 'temperature_1',
'temp2f': 'temperature_2',
'temp3f': 'temperature_3',
'temp4f': 'temperature_4',
'temp5f': 'temperature_5',
'temp6f': 'temperature_6',
'temp7f': 'temperature_7',
'temp8f': 'temperature_8',
'humidity1': 'humidity_1',
'humidity2': 'humidity_2',
'humidity3': 'humidity_3',
'humidity4': 'humidity_4',
'humidity5': 'humidity_5',
'humidity6': 'humidity_6',
'humidity7': 'humidity_7',
'humidity8': 'humidity_8',
'batt1': 'battery_1',
'batt2': 'battery_2',
'batt3': 'battery_3',
'batt4': 'battery_4',
'batt5': 'battery_5',
'batt6': 'battery_6',
'batt7': 'battery_7',
'batt8': 'battery_8',
'soilmoisture1': 'soil_moisture_1',
'soilmoisture2': 'soil_moisture_2',
'soilmoisture3': 'soil_moisture_3',
'soilmoisture4': 'soil_moisture_4',
'soilmoisture5': 'soil_moisture_5',
'soilmoisture6': 'soil_moisture_6',
'soilmoisture7': 'soil_moisture_7',
'soilmoisture8': 'soil_moisture_8',
'soilbatt1': 'soil_battery_1',
'soilbatt2': 'soil_battery_2',
'soilbatt3': 'soil_battery_3',
'soilbatt4': 'soil_battery_4',
'soilbatt5': 'soil_battery_5',
'soilbatt6': 'soil_battery_6',
'soilbatt7': 'soil_battery_7',
'soilbatt8': 'soil_battery_8',
'windspeedmph': 'wind_speed',
'windgustmph': 'wind_gust',
'winddir': 'wind_dir',
'solarradiation': 'solar_radiation',
'uv': 'uv',
'totalrainin': 'rain_total',
'rainratein': 'rain_rate',
'wh25batt': 'wh25_battery',
'wh26batt': 'wh26_battery',
'wh40batt': 'wh40_battery',
'wh65batt': 'wh65_battery',
'pm25_ch1': 'pm2_5',
'pm25batt1': 'pm25_battery',
}
Inserta la línea
'baromrelin': 'barometer',
Como indico y reinicia weewx.
El driver lo encontrarás en
/usr/share/weewx/user/interceptor.py
Más adelante probaré con el driver original, ya que ahora dispongo de un bloque de sensores.....pero poco he podido hacer con él todavía
-
Pero...ese driver es para los aparatos tipo GW1000 y similares no jantoni? En esa ubicacion no tengo ese archivo .py.
jmviper, no usara los valores de temperatura y humedad interiores para calcular la presion relativa? Si usara los valores exteriores no habria posibilidad de ver la presion relativa en la consola, y sin embargo el valor aparece...
-
En el driver de weewx para las Fine Offset (/usr/share/weewx/weewx/drivers/fousb.py) en sus comentarios pone:
- pressure - station pressure (SP) - adjusted raw sensor reading
- barometer - sea level pressure derived from SP using temperaure and altitude
- altimeter - sea level pressure derived from SP using altitude
this implementation reports the abs_pressure from the hardware as 'pressure'.
altimeter and barometer are calculated by weewx.
No especifica si la temperatura es la exterior o la interior, pero atendiendo a que por ejemplo para la fórmula de esas presiones las hace weewx con la temperatura exterior para la Davis, creo que al no tener el dato no la calcula.
Saldrás de dudas conectando la unidad exterior a la consola.
-
Bueno, pues efectivamente era por la falta de señal de la unidad exterior. Ya lee presión
plau2
Buen olfato jmviper :)
-
Perfecto :)
-
Jope.....pensaba que era de las nuevas.
Que lío con esto de la Fine Offset, viejas, nuevas, novisimas, ouffff
Perdón