Calibrating Barometer - hardware or software?

251 views
Skip to first unread message

Ashley Hinton

unread,
Oct 20, 2024, 4:08:57 PM10/20/24
to weewx-user
Hello

I've noticed my Barometer reading is different from other local sources: the airfield just up the road from me, the local weather report, my phone weather app - you name it, my readings did not agree. WeeWx was reporting too high.

I'm using an Aercus IP weather station and WeeWx is using the Interceptor driver.
The weather station itself has its own calibration settings page, it has two fields for calibrating pressure:

Absolute Pressure (was, and is, set to 0)
Relative Pressure (was set to 30.00hpa which I'm sure was arbitrary, now set to 0)

If I change the Relative Pressure offset the Barometer value reported on the resulting WeeWx-generated webpage changes, so I'm confident that Relative Pressure is what's sent to WeeWx.

My question is what to do - calculate and set the calibration in hardware, or in WeeWx? What is generally preferred or considered the best option?

Thanks!

michael.k...@gmx.at

unread,
Oct 20, 2024, 11:56:31 PM10/20/24
to weewx-user
Hello, as a first step, did you read the following:

After that, do you know the pressure mappings console <=> weewx? Then, which of the values (pressure, altimeter, barometer) is displayed on the webpage? If you know all these things, calibrate your hardware according to the manual and choose your desired obs_type to be displayed on the webpage.

Ashley Hinton

unread,
Oct 22, 2024, 4:43:24 AM10/22/24
to weewx-user
Hi Michael

Thanks for your reply.

I did indeed read it which made me realise the issue is what WeeWx is receiving (in relation to what its displaying on the webpage) & that it needs to be calibrated somewhere.
I will first calibrate the hardware & then check what value from the hardware is being displayed on the webpage. I'm pretty certain at the moment Relative Pressure from hardware = Barometer on the webpage but will double check so I know in future.

Thanks again,

gszla...@gmail.com

unread,
Oct 25, 2024, 7:03:49 AM10/25/24
to weewx-user
--Hmm..if Absolute pressure and relative pressure = 0 (zero) your barometer was not set up correctly and not calibrated correctly. II absolute pressure = 0, you would be living in a vacuum! Or are you referring to both offsets = 0?

Your station is the weathersleuth IP? If so, you have an outside array, a Wi-Fi gateway and a separate LCD indoor sensor with a barometer sensor: Thermo-hygrometer-barometer transmitter (temperature/humidity/pressure).

If your barometer is working, it should be reading the current atmospheric pressure at your elevation (the elevation of your barometer). In your calibration screen, you should see an absolute pressure offset and a relative pressure offset. These fields are used to adjust your absolute pressure and relative pressure, respectively.

It is best to start over from scratch. Set both offsets back to zero in the calibration screen. Verify that the pressure showing on the LCD screen of the external Thermo-hygrometer-barometer transmitter is equal to the absolute pressure on your console. Maybe it's under the Live data tab?

You will have to calculate your relative pressure offset which depends on your elevation.
Your weather station appears to be similar to an Ecowitt or Ambient weather station therefore calibration procedures should be the same. Read the barometer wiki to set your elevation and calibrate your barometer:
http://meshka.eu/Ecowitt/dokuwiki/doku.php?id=barometer#calibration_wi-fi_gateways

Your other question relates to WeeWX. You definitely do not want to pass on your weather station's REL to WeeWX. Your weather station uses a single fixed offset amount to do an estimate of sea level pressure. It can be a reasonably close approximation but your readings will drift at times. You would be far better off relying on WeeWX "barometer" pressure reading because it uses an actual algorithm to calculate sea level pressure much more accurately. To obtain the WeewX "barometer" reading you do not need to configure anything. WeeWX will automatically calculate "barometer" from your absolute pressure. BTW, the WeeWX "barometer" reading refers to SLP (sea level pressure) that you might see on meteorological isobar charts/surface analysis maps. If you follow the wiki's tutorials, your REL (relative pressure) on your station's console should be an approximation of the Altimeter setting.

Ashley Hinton

unread,
Nov 11, 2024, 12:59:18 PM11/11/24
to weewx-user
Thanks for your reply.

The station is a weathersleuth professional, apologies I should have been clearer. When I bought it I figured because of weewx I didn't need, or want, an indoor screen.

Setting the station:
Absolute pressure offset = 0
Relative pressure offset = 0

The LCD screen in the barometer transmitter is showing the same value as both absolute & relative pressure on the live data webpage.

If I stop weewx and listen for the data on the relevant tcp/ip port this is what the station sends:

sudo nc -l 7890

GET /weatherstation/updateweatherstation.php?ID=***&PASSWORD=***&tempf=53.6&humidity=76&dewptf=46.2&windchillf=53.6&winddir=31&windspeedmph=0.00&windgustmph=0.00&rainin=0.00&dailyrainin=0.00&weeklyrainin=0.00&monthlyrainin=0.00&yearlyrainin=29.46&solarradiation=110.48&UV=0&indoortempf=67.3&indoorhumidity=61&baromin=30.59&dateutc=now&softwaretype=WH2600%20V2.2.8&action=updateraw&realtime=1&rtfreq=5 HTTP/1.0


The baromin value is the relative pressure. It doesn't send any other pressure values.

If I offset in hardware it works and weewx reports barometer correctly compared to local reliable sources but it doesn't (always!) survive a power outage. Whats worse is the relative offset doesn't even stay defaulted to 0 - give it a few minutes and it does its own thing, literally a random minus value based on no other setting I can find, unless I manually change the offset value again but it only stays until it loses power.

My thoughts were to map baromin (relative pressure) from the station to pressure in weewx, leave the station relative pressure offset at zero and let weewx calculate barometer as you suggest, of course double checking the altitude value in weewx.conf is correct. Now I know it won't work after a power cut, and I suspect even if I manually set zero offset and kill the power it will initially return with zero and then change to a random value.

Station firmware is up to date -  v2.2.8 is the last available.

However I'm starting to think I could get the pressure reading from elsewhere. I'm running an Arduino in the greenhouse which is providing some extra sensor data picked up by weewx using the Weewx MQTT Subscribe extension.

Adding a barometric sensor to the Arduino should be pretty easy, mapping its output to pressure in weewx.

Either that or read the station live data webpage into weewx but it seems a lot of hassle compared to a buying a relatively cheap sensor. The one I've just looked at claims an accuracy of 0.01mbar.

Maybe that's the solution -  map an incoming MQTT topic "greenhouse/absolutepressure" to pressure in weewx.

[[[greenhouse/absolutepressure]]]    #mqtt topic sent from Arduino

            name = pressure          #weewx database table


.. and under

[[Calculations]]


Change prefer_hardware in the following entries to:


pressure = hardware

altimeter = software

barometer = software

 
Which I think would ignore the station relative pressure (barometer) and since its not sending absolute pressure anyway I need not worry about a conflict between the station and what the Arduino would be sending.

Also apologies again, I should have mentioned in my original post:

Weewx v5.1.0 (installed via pip/venv)
Raspberry Pi 4
Raspian (Debian) v12 Bookworm (arm64)
Aercus Instruments Weathersleuth Professional station.

gszla...@gmail.com

unread,
Nov 14, 2024, 10:22:22 AM11/14/24
to weewx-user

A similar issue may have come up before:


https://github.com/matthewwall/weewx-interceptor/issues/28


From your post it looks like It your station is mapping REL pressure to weewx baromin .


What does the output of weewxd look like?


I think you would want to re-map your ABS pressure (if you have one) to weewx "pressure" so weewx can perform it's magic and calculate a weewx mean sea level pressure called "barometer".


The reported solution in the github issue was to remap baromin by editing interceptor.py with 'baromin': 'pressure',


Still though, the relative offset should not be changing values on its own. It is a fixed value (one must calculate it) based on the barometer elevation above sea level. If it doesn't stay at any value (including zero), your relative pressure value will not be correct.


Does your Live data panel indicate a fluctuating relative pressure value when the relative pressure offset is changing on its own?


Something is not right. You might want to do a factory reset (record the rainfall values and any other values you want to keep) or install/reinstall the latest firmware for your receiver. While we're at it - change the batteries on the T/H/P transmitter.


If absolute pressure  offset= 0 and relative pressure offset = 0 


then,


absolute pressure = relative pressure (Live data) = pressure value on the T/H/P transmitter


And if you had to, you might be able to put the relative pressure offset (for your specific elevation) into weewx.conf as a calibration offset.


However, try the reset and/or firmware download and see if that helps. Also, as a final resort, does your manufacturer offer any support? 


PS. I do not use interceptor.py, but about 5 years ago I did have a hardware "interceptor" device called the ATMOCOM (now long gone). In looking back at a data capture from 2019, these are the pressure values that I had:


absbaromin=28.92&
baromin=29.58&


In my case, baromin was the relative pressure of the station and absbaromin was (obviously) absolute pressure. My station does not employ offsets (different firmware) so you had to adjust these two values to build in the offsets.

gszla...@gmail.com

unread,
Nov 14, 2024, 10:34:00 AM11/14/24
to weewx-user
Oops..sorry just saw that you already did the firmware update. I would try Aercus support and troubleshoot the receiver for power/disappearing/random changing settings.

On Monday, November 11, 2024 at 12:59:18 PM UTC-5 Ashley Hinton wrote:

Rainer Lang

unread,
Nov 14, 2024, 11:31:38 AM11/14/24
to weewx...@googlegroups.com

Hi Ashley,
I think you presented your station already in 2006 in the weewx group
The relevant portion of your station for the weewx context here are two pieces:
the legacy WH25 indoor T&HP sensor (nowadays WN32P) and the Fine Offset WH2600 LAN gateway also known as observer IP.
The pressure readings come from the WH25 sensor and the WH2600 sends the absolute pressure in inHg via the custom server string (which the interceptor driver intercepts and evaluates).
The WH2600 cannot post any relative pressure unless you calibrated it before providing  a local pressure/sea level pressure offset. Default value is zero.
The value you enter depends on your unit system configured in the console (WH2600, the black box).
When you set both offsets to zero on the "Calibration" page by the help of the "Weather Logger" software, the value provided via baromin should be your local pressure, station pressure, what your WH25 reads at its position. By entering e.g. a value like "22" into the relative pressure offset field (and not forgetting to save) will give you the answer which value is sent via the custom server string: abs or rel. - if rel. it should adopt the 22 change for the baromin value. Even if you think you know, no harm in testing that.
😉
The way the interceptor driver is programmed it looks as if it knows how an ObserverIP module sends data.

If only rel pressure is provided, then the weewx.conf settings in [StdWXCalculate] should be like below

[StdWXCalculate]
    
    [[Calculations]]
        # How to calculate derived quantities.  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
        
        pressure = software
        barometer = prefer_hardware

barometer is the supposed to be relative or sea level pressure value => take what the interceptor driver provides (console provides rel pressure only)
pressure is the station pressure which is not provided and weewx has to re-calculate (pressure = software) from the relative pressure, the station altitude (=barometer=WH25 altitude) and the temperature

HOWEVER, to have the ObserverIP post the proper relative pressure, you have to calculate your offset and enter it into the relative pressure offset field.
You can use https://www.starpath.com/barometers/baro_cal.php

Make sure you are using the proper units - and the

 altitude asked for is the height of your WH25 above ground plus the ground elevation

https://meshka.eu/Ecowitt/dokuwiki/lib/exe/detail.php?id=start&media=altitude-elevation-height.jpg

in the picture the airplane corresponds to your WH25.

A potential issue may be that the interceptor driver (interceptor.py) asks in line 1391
--- code start ---
if fw == 'WH2600GEN_V2.2.5' or fw == 'WH2650A_V1.2.1':

--- code end ----

as you are running firmware 2.2.8, you may need to change that line to
--- code start ---
if fw == 'WH2600GEN_V2.2.5' or fw == 'WH2650A_V1.2.1' or fw == 'WH2600GEN_V2.2.8':

--- code end ----

as the driver only asks for 2.2.5

good luck

--
You received this message because you are subscribed to the Google Groups "weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/weewx-user/c9a6a4c5-8c78-44fd-958a-7ff51904779cn%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages