gjr80 / weewx-realtime_gauge-data

Near realtime support for updating of SteelSeries Weather Gauges by WeeWX
GNU General Public License v3.0
9 stars 5 forks source link

Pressure shows Zero #13

Open BerniPi opened 6 years ago

BerniPi commented 6 years ago

Hi!

I would like to use your extension with a Davis Vantage Pro and a meteoStick. The pressure data is observed by the meteoStick, because the Vantage sensor unit has no own pressure sensor. In gauge-data.txt the values of pressH and pressL are correct, but the value of press is 0.0. Do you know the cause?

Dear Bernhard

gjr80 commented 6 years ago

Hi,

How are you getting the meteostick data into weeWX? Seeing the contents of the [Engine] [[Services]] stanza in weewx.conf would help.

Gary

BerniPi commented 6 years ago

The Engine contents are ``[Engine]

[[Services]]
    # This section specifies the services that should be run. They are
    # grouped by type, and the order of services within each group
    # determines the order in which the services will be run.
    prep_services = weewx.engine.StdTimeSynch
    data_services = ,
    process_services = weewx.engine.StdConvert, weewx.engine.StdCalibrate, weewx.engine.StdQC, weewx.wxservices.StdWXCalculate
    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
    report_services = weewx.engine.StdPrint, weewx.engine.StdReport, user.rtgd.RealtimeGaugeData

`` Berni

gjr80 commented 6 years ago

Ok, that is fine. My understanding of how Meteostick works is that it decodes the Davis sensor data being transmitted between the ISS and the console. Becasue the Davis pressure sensor is in the console pressure data cannot be picked up my the Meteostick so it inserts pressure from its own sensor. Can you confirm what version of the meteostick driver you are using, you should see that in your log soon after weeWX starts up. Also, could you run weeWX directly for a short time. Running weeWX directly should cause weeWX to output loop packets and archive records to screen. The loop packets are indicated by a line starting with LOOP:, archive records start with REC:. You should see a loop packet every 2.5 seconds and an archive record once per archive interval. Can you capture a few of the loop packets in their entirety and post here. Would also be good to see and archive record as well if possible.

Gary

BerniPi commented 6 years ago

I have installed version 0.58 of the meteostick extension. The chip version is 14? Mar 12 16:22:02 raspberrypi weewx[14900]: engine: Starting up weewx version 3.8.0 Mar 12 16:22:02 raspberrypi weewx[14900]: engine: Starting main packet loop. Mar 12 16:22:02 raspberrypi weewx[14900]: meteostick: # chip authentication ok: 14 Mar 12 16:22:02 raspberrypi weewx[14900]: meteostick: # frequency band 868MHz (EU)

Some loop packets and one archive record: LOOP: 2018-03-12 16:15:33 CET (1520867733) altimeter: 29.565676586, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520867733, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, inTemp: 82.04, maxSolarRad: None, pressure: 28.0806557135, rainRate: 0, usUnits: 1, windchill: None, windDir: None, windGustDir: None LOOP: 2018-03-12 16:15:33 CET (1520867733) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520867733, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, outHumidity: 86.5, pressure: None, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: None, windDir: 84.6996047431, windGustDir: None, windSpeed: 2.0 LOOP: 2018-03-12 16:15:36 CET (1520867736) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520867736, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, outTemp: 46.5, pressure: None, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: 46.5, windDir: 84.6996047431, windGustDir: None, windSpeed: 1.0

LOOP: 2018-03-12 16:19:32 CET (1520867972) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520867972, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, outTemp: 46.5, pressure: None, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: 44.8271837757, windDir: 126.604743083, windGustDir: None, windSpeed: 4.0 LOOP: 2018-03-12 16:19:33 CET (1520867973) altimeter: 29.5690641587, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520867973, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, inTemp: 82.04, maxSolarRad: None, pressure: 28.0839040121, rainRate: 0, usUnits: 1, windchill: None, windDir: None, windGustDir: None LOOP: 2018-03-12 16:19:34 CET (1520867974) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520867974, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, pressure: None, rain: 0.0, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: None, windDir: 114.438735178, windGustDir: None, windSpeed: 4.0 LOOP: 2018-03-12 16:19:37 CET (1520867977) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520867977, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, pressure: None, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: None, windDir: 113.086956522, windGustDir: None, windSpeed: 4.0 LOOP: 2018-03-12 16:19:39 CET (1520867979) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520867979, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, outHumidity: 87.0, pressure: None, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: None, windDir: 117.14229249, windGustDir: None, windSpeed: 3.0 LOOP: 2018-03-12 16:19:42 CET (1520867982) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520867982, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, outTemp: 46.5, pressure: None, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: 45.7184690922, windDir: 117.14229249, windGustDir: None, windSpeed: 3.0 LOOP: 2018-03-12 16:19:45 CET (1520867985) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520867985, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, pressure: None, rain: 0.0, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: None, windDir: 103.624505929, windGustDir: None, windSpeed: 3.0 LOOP: 2018-03-12 16:19:47 CET (1520867987) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520867987, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, pressure: None, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: None, windDir: 107.679841897, windGustDir: None, windSpeed: 3.0 LOOP: 2018-03-12 16:19:50 CET (1520867990) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520867990, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, outHumidity: 87.0, pressure: None, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: None, windDir: 113.086956522, windGustDir: None, windSpeed: 3.0 LOOP: 2018-03-12 16:19:52 CET (1520867992) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520867992, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, outTemp: 46.5, pressure: None, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: 44.8271837757, windDir: 117.14229249, windGustDir: None, windSpeed: 4.0 LOOP: 2018-03-12 16:19:55 CET (1520867995) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520867995, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, pressure: None, rain: 0.0, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: None, windDir: 117.14229249, windGustDir: None, windSpeed: 4.0 LOOP: 2018-03-12 16:19:57 CET (1520867997) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520867997, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, pressure: None, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: None, windDir: 118.494071146, windGustDir: None, windSpeed: 6.0 LOOP: 2018-03-12 16:20:00 CET (1520868000) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520868000, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, pressure: None, radiation: 29.884912, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: None, windDir: 118.494071146, windGustDir: None, windSpeed: 6.0 LOOP: 2018-03-12 16:20:02 CET (1520868002) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520868002, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, outTemp: 46.5, pressure: None, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: 44.8271837757, windDir: 119.845849802, windGustDir: None, windSpeed: 4.0 LOOP: 2018-03-12 16:20:05 CET (1520868005) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520868005, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, pressure: None, rain: 0.0, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: None, windDir: 129.308300395, windGustDir: None, windSpeed: 4.0 LOOP: 2018-03-12 16:20:08 CET (1520868008) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520868008, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, pressure: None, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: None, windDir: 126.604743083, windGustDir: None, windSpeed: 4.0 LOOP: 2018-03-12 16:20:10 CET (1520868010) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520868010, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, pressure: None, rainRate: 0, txBatteryStatus: 0, usUnits: 1, UV: 0.0, windchill: None, windDir: 126.604743083, windGustDir: None, windSpeed: 4.0 LOOP: 2018-03-12 16:20:13 CET (1520868013) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520868013, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, outTemp: 46.5, pressure: None, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: 44.8271837757, windDir: 117.14229249, windGustDir: None, windSpeed: 4.0 LOOP: 2018-03-12 16:20:15 CET (1520868015) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520868015, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, pressure: None, rain: 0.0, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: None, windDir: 141.4743083, windGustDir: None, windSpeed: 4.0 REC: 2018-03-12 16:20:00 CET (1520868000) altimeter: 29.5681402753, appTemp: 43.0706421252, barometer: 29.6039290714, cloudbase: 2250.7674006, dateTime: 1520868000.0, dewpoint: 42.8501924112, ET: 0.000107375812907, heatindex: 46.4884615385, humidex: 46.4884615385, inDewpoint: None, inTemp: 82.04, interval: 5, maxSolarRad: None, outHumidity: 87.0636363636, outTemp: 46.4884615385, pressure: 28.0830181125, radiation: 33.9867626667, rain: 0.0, rainRate: 0.0, txBatteryStatus: 0.0, usUnits: 1, UV: 0.0, windchill: 45.578665848, windDir: 126.831071904, windGust: 6.0, windGustDir: 118.494071146, windrun: 32.3330392144, windSpeed: 3.15384615385 LOOP: 2018-03-12 16:20:18 CET (1520868018) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520868018, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, pressure: None, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: None, windDir: 117.14229249, windGustDir: None, windSpeed: 4.0 LOOP: 2018-03-12 16:20:20 CET (1520868020) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520868020, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, pressure: None, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: None, windDir: 121.197628458, windGustDir: None, windSpeed: 5.0

Thanks for your help!

gjr80 commented 6 years ago

Thank you, I can see what is going on now. Let me explain. The different sensors on a Davis system update (read report) at different rates; wind speed is updates every 2.5 seconds, indoor temperature every 60 seconds, outdoor temperatuire every 10-12 seconds, pressure every 60 seconds etc. The console receives this data and publishes loop packets approx every 2.5 seconds and 1 archive record each user defined archive interval, let's say 5 minutes. The loop packets contain a complete set of observations ie outTemp, inTemp, pressure, rain, outHumidity, inHumidity etc. So PCs that connect to the console via a USB/serial/IP logger get the loop packets and archive records with a complete set of observations.

When you use a Meteostick to pick up the radio transmissions from the sensors to the console the Meteostick only picks up what is transmitted, so wind will be picked up every 2.5 seconds but temperature is only picked up every 10-12 seconds. Pressure is coming from the meteostick itself and it appears that it is picked up every 45 odd seconds. So what you are getting from the meteostick driver is loop packets approx every 2.5 seconds but these packets are what we call partial packets; that is they do not contain values for all observations. Compare this with a standard Davis loop packet that does have all observations, if you like the console caches some of the slower updating data so that it can publish loop packets that have data for all observation fields.

Now the problem you have with pressure is that the realtime gauge-data extension works off loop packets, so if you take the packet timestamped 2018-03-12 16:19:32:

LOOP: 2018-03-12 16:19:32 CET (1520867972) altimeter: None, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520867972, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, maxSolarRad: None, outTemp: 46.5, pressure: None, rainRate: 0, txBatteryStatus: 0, usUnits: 1, windchill: 44.8271837757, windDir: 126.604743083, windGustDir: None, windSpeed: 4.0

There is no pressure (Davis stations report pressure, barometer and altimeter are calculated by weeWX) and hence no barometer but there is outTemp. So the realtime gauge-data extension will publish a file that contains outTemp but no barometer (gauge-data.txt uses barometer even though the field is titled 'press'). So your outside temperature gauge will display correctly but you will see no pressure (ie baromater) data.

Now if you take the loop packet timestamped 2018-03-12 16:19:33:

LOOP: 2018-03-12 16:19:33 CET (1520867973) altimeter: 29.5690641587, appTemp: None, barometer: None, cloudbase: None, dateTime: 1520867973, dewpoint: None, heatindex: None, humidex: None, inDewpoint: None, inTemp: 82.04, maxSolarRad: None, pressure: 28.0839040121, rainRate: 0, usUnits: 1, windchill: None, windDir: None, windGustDir: None

We now have pressure but we don't have outTemp or barometer. Altimeter is calculated from pressure and altitude but because barometer is calculated from pressure and outTemp (and since we have no outTemp) there is no barometer. So the realtime gauge-data extension publishes a file that contains no barometer and no outTemp and you will see no barometer data on your gauges and you might see a slight jumping of the outside temperature.

If we look at the archive record timestamped 2018-03-12 16:20:00:

REC: 2018-03-12 16:20:00 CET (1520868000) altimeter: 29.5681402753, appTemp: 43.0706421252, barometer: 29.6039290714, cloudbase: 2250.7674006, dateTime: 1520868000.0, dewpoint: 42.8501924112, ET: 0.000107375812907, heatindex: 46.4884615385, humidex: 46.4884615385, inDewpoint: None, inTemp: 82.04, interval: 5, maxSolarRad: None, outHumidity: 87.0636363636, outTemp: 46.4884615385, pressure: 28.0830181125, radiation: 33.9867626667, rain: 0.0, rainRate: 0.0, txBatteryStatus: 0.0, usUnits: 1, UV: 0.0, windchill: 45.578665848, windDir: 126.831071904, windGust: 6.0, windGustDir: 118.494071146, windrun: 32.3330392144, windSpeed: 3.15384615385

We see barometer, pressure, altimeter and outTemp data, that is because the archive record is generated by accumulating the values received for those observations from all of the loop packets over the archive interval. It does not matter that some loop packets did not have data for all observations. This is where the low and high pressure values come from and that is why you see pressL and pressH being populated.

So that is why we are seeing what we are seeing, we now need to try to work out how to fix it. That might take a little more time and brain power. I will get back to you on that one.

Gary

BerniPi commented 6 years ago

Thanks for your answer. So pressure is not the only value that isn't submitted? dewpoint, heatindex, CurrentSolarMax and UV have the same problem? I checked the gauge-data.txt file for some minutes. (http://wetter.bgblumenstrasse.at/weather_data/gauge-data.txt) Why does these values are always zero? Shouldn't they be correctly submitted, when a loop package contains the values? Or are these values calculated by weewx and not received from the ISS? If i could distinguish between valid values and missing values, i could filter them online. But they are set to zero, if they are missing. Am I right?

Berni