Hardware > Ecowitt y todos los clones Fine Offset
Weewx no lee la presión
PacoJavi:
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:
--- Código: --- 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
--- Fin del código ---
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.
jmviper:
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 pone que de esas estaciones lee pressure por hardware y este valor según esta explicación 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.
jantoni:
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.
--- Citar ---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',
}
--- Fin de la cita ---
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
PacoJavi:
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...
jmviper:
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.
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa