GW2000 driver and additional sensors

918 views
Skip to first unread message

Stephen Hocking

unread,
Jun 5, 2022, 6:53:17 PM6/5/22
to weewx...@googlegroups.com
Hi all,

I have the WH90,
WH40 (bucket-style rainfall)
WH41 (outdoor PM2.5 sensor)
WH45 (indoor PM2.5/PM10/CO2/Temp/Humidity)
WH57 (lightning).

On the GW2000's webpage 
on my ecowitt.net webpages, I can see all of these. Running the weewx driver in debug mode (0.50b4) I see all of the sensors (output below). I'm having some difficulty getting a graph on the Seasons skin for CO2, and I'd like to map the indoor pm2.5 (and pm10) separately from the outdoor pm2.5. I guess it's a matter of paying attention to the mapping section of weew.conf and/or creating some additional DB fields?

root@weather:/etc/weewx# PYTHONPATH=/usr/share/weewx python3 -m user.gw1000 --live-data --ip-address=202.12.111.10

Using configuration file /etc/weewx/weewx.conf


Interrogating GW2000 at 202.12.111.10:45000


GW2000 live sensor data (2022-06-06 08:52:21 AEST (1654469541)): 'absbarometer': '931.800000', 'annual_reset': '0.000000', 'co2': '518.000000', 'co2_24h_avg': '485.000000', 'day_reset': '0.000000', 'daymaxwind': '67.320000', 'gain0': '1.000000', 'gain1': '1.000000', 'gain2': '1.000000', 'gain3': '1.000000', 'gain4': '1.000000', 'gain5': '1.000000', 'gain6': '1.000000', 'gain7': '1.000000', 'gain8': '1.000000', 'gain9': '1.000000', 'gustspeed': '55.080000', 'humid17': '45.000000', 'inhumid': '43.000000', 'intemp': '18.900000', 'light': '14150.000000', 'lightningcount': '0.000000', 'lightningdettime': 'None', 'lightningdist': 'None', 'outhumid': '87.000000', 'outtemp': '4.900000', 'p_rainday': '1.730000', 'p_rainevent': '1.860000', 'p_rainmonth': '2.230000', 'p_rainrate': '0.000000', 'p_rainweek': '1.950000', 'p_rainyear': '28.080000', 'pm10': '2.200000', 'pm10_24h_avg': '2.700000', 'pm251': '1.000000', 'pm251_24h_avg': '1.900000', 'pm255': '1.300000', 'pm255_24h_avg': '1.500000', 'relbarometer': '932.800000', 't_rainday': '0.930000', 't_rainevent': '1.130000', 't_rainhour': '1.000000', 't_rainmonth': '1.480000', 't_rainrate': '0.000000', 't_rainweek': '1.160000', 't_rainyear': '13.850000', 'temp17': '21.500000', 'uv': '9.900000', 'uvi': '1.000000', 'week_reset': '0.000000', 'wh40_batt': '1.60', 'wh40_sig': '4.000000', 'wh41_ch1_batt': '5.000000', 'wh41_ch1_sig': '4.000000', 'wh45_batt': '6.000000', 'wh45_sig': '4.000000', 'wh57_batt': '5.000000', 'wh57_sig': '4.000000', 'winddir': '283.000000', 'windspeed': '15.840000', 'ws90_batt': '3.14', 'ws90_sig': '4.000000'



And some packet capture

2022-06-06 08:46:30 AEST (1654469190): 'co2': '520', 'co2_24h_avg': '485', 'dateTime': '1654469190', 'daymaxwind': '18.7', 'dayRain': '9.3', 'extraHumid17': '46', 'extraTemp17': '21.4', 'hourRain': '10.0', 'inHumidity': '43', 'inTemp': '18.8', 'lightning_distance': 'None', 'lightning_last_det_time': 'None', 'lightning_strike_count': '0', 'lightningcount': '0', 'luminosity': '14300.0', 'monthRain': '14.8', 'outHumidity': '88', 'outTemp': '4.6', 'p_dayRain': '17.3', 'p_monthRain': '22.3', 'p_rain': '0.0', 'p_rainRate': '0.0', 'p_stormRain': '18.6', 'p_weekRain': '19.5', 'p_yearRain': '280.8', 'pm2_5': '1.0', 'pm2_51_24h_avg': '1.9', 'pm2_55': '1.2', 'pm2_55_24h_avg': '1.5', 'pm10': '2.0', 'pm10_24h_avg': '2.7', 'pressure': '931.7', 'rain': '0.0', 'rainRate': '0.0', 'relbarometer': '932.7', 'stormRain': '11.3', 'usUnits': '17', 'UV': '1', 'uvradiation': '9.9', 'weekRain': '11.6', 'wh40_batt': '1.6', 'wh40_sig': '4', 'wh41_ch1_batt': '5', 'wh41_ch1_sig': '4', 'wh45_batt': '6', 'wh45_sig': '4', 'wh57_batt': '5', 'wh57_sig': '4', 'windDir': '286', 'windGust': '13.2', 'windSpeed': '6.0', 'ws90_batt': '3.14', 'ws90_sig': '4', 'yearRain': '138.5'

2022-06-06 08:46:50 AEST (1654469210): 'co2': '519', 'co2_24h_avg': '485', 'dateTime': '1654469210', 'daymaxwind': '18.7', 'dayRain': '9.3', 'extraHumid17': '46', 'extraTemp17': '21.4', 'hourRain': '10.0', 'inHumidity': '43', 'inTemp': '18.8', 'lightning_distance': 'None', 'lightning_last_det_time': 'None', 'lightning_strike_count': '0', 'lightningcount': '0', 'luminosity': '12460.0', 'monthRain': '14.8', 'outHumidity': '88', 'outTemp': '4.6', 'p_dayRain': '17.3', 'p_monthRain': '22.3', 'p_rain': '0.0', 'p_rainRate': '0.0', 'p_stormRain': '18.6', 'p_weekRain': '19.5', 'p_yearRain': '280.8', 'pm2_5': '1.0', 'pm2_51_24h_avg': '1.9', 'pm2_55': '1.3', 'pm2_55_24h_avg': '1.5', 'pm10': '2.3', 'pm10_24h_avg': '2.7', 'pressure': '931.7', 'rain': '0.0', 'rainRate': '0.0', 'relbarometer': '932.7', 'stormRain': '11.3', 'usUnits': '17', 'UV': '0', 'uvradiation': '0.0', 'weekRain': '11.6', 'wh40_batt': '1.6', 'wh40_sig': '4', 'wh41_ch1_batt': '5', 'wh41_ch1_sig': '4', 'wh45_batt': '6', 'wh45_sig': '4', 'wh57_batt': '5', 'wh57_sig': '4', 'windDir': '310', 'windGust': '8.9', 'windSpeed': '8.9', 'ws90_batt': '3.14', 'ws90_sig': '4', 'yearRain': '138.5'





--
  "I and the public know
  what all schoolchildren learn
  Those to whom evil is done
  Do evil in return"		W.H. Auden, "September 1, 1939"

gjr80

unread,
Jun 6, 2022, 12:07:17 AM6/6/22
to weewx-user
The first requirement for plotting observation data from a driver/station is that the data to be plotted must be saved to database, simply put if it's not in the database you cannot plot it. Following on from this requirement is that WeeWX will only save a field to database if (1) the field exists in the current archive table schema (aka 'the database schema') and (2) the field exists in the archive record generated by WeeWX (software record generation) or the driver (hardware record generation). If these two conditions are met the field will be automatically saved to database by WeeWX.

As you say, all of the required data is present in loop packets. The WH41 PM2.5 data appears in WeeWX loop packet field pm2_5 and the WH45 PM2.5 and PM10 data appears in WeeWX loop packet fields pm2_55 and pm10 (refer to the Field Map page in the Ecowitt Gateway driver wiki). If you are using the default wview_extended schema your archive table will contain the pm2_5 and pm10 fields but not pm2_55. To get the WH45 PM2.5 data saved to database you will either need to add field pm2_55 to your database schema or you will need to re-purpose an existing unused database field in which to store the pm2_55 data. I would suggest the former, just follow the instructions under in Adding a new type to an existing database in the Customization Guide. Once you have added the new field to the database you will need to tell WeeWX what units the new field uses, this is covered under Assigning a unit group in the Customization Guide, but in your case the code required is:

import weewx.units
weewx.units.obs_group_dict['pm2_55'] = 'group_concentration'

and you should add this code to /usr/share/weewx/user/extensions.py or /home/weewx/bin/user/extensions.py (as applicable).

If you want to save the WH45 PM2.5 data in a (new) database field of your own choosing, for example say indoor_pm2_5, then you will need to add a field map extensions entry under [GW1000] in weewx.conf to map the WH45 PM2.5 data to WeeWX field indoor_pm2_5, something like:

[GW1000]
    ....
    [[field_map_extensions]]
        indoor_pm2_5 = pm2_55

you would then need to follow the earlier instructions for adding a field to the database but use indoor_pm2_5 as the field name instead of pm2_55.

Once you restart WeeWX you should have WH41 PM2.5, WH45 PM2.5 and WH45 PM10 data being saved to database. You can now make the necessary changes to the Season skin to create/display the desired plots.

I'm not quite sure what you mean by "I'd like to map the indoor pm2.5 (and pm10) separately from the outdoor pm2.5". These three fields are already mapped separately, do you mean plotted instead of mapped?

Assuming you are using the 'new' parameterised Season skin introduced in WeeWX v4.6.0 you will need to make a few changes to skin.conf to generate and display the plots you desire. There is already a plot that displays PM2.5 and PM10, you can add the WH45 PM2.5 data to the plot by adding [[[[pm2_55]]]] to [[[daypm]]] under [ImageGenerator] [[day_images]], ie:

[ImageGenerator]
    ....
    [[day_plots]]
        ....
        [[[daypm]]]
            [[[[pm1_0]]]]
            [[[[pm2_5]]]]
            [[[[pm10]]]]
            [[[[pm2_55]]]]

You will need to make similar changes to [[[weekpm]]], [[[monthpm]]] and [[[yearpm]]]. This will result in the plots being likely being labelled 'pm2_5 pm10 pm2_55', you can change this to something more appealing by using the label option for each series, eg:

[[[daypm]]]
    [[[[pm1_0]]]]
    [[[[pm2_5]]]]
        label = Outdoor PM2.5
    [[[[pm10]]]]
        label = Indoor PM10
    [[[[pm2_55]]]]
        label = Indoor PM2.5

Note that this needs to be applied to each plot ie [[[daypm]]], [[[weekpm]]], [[[monthpm]]] and [[[yearpm]]]. Or you could add some suitable labels under [StdReport] [[Defaults]] [[[Labels]]] [[[[Generic]]]] in weewx.conf, eg:


[StdReport]
    ....
    [[Defaults]]
        ....
        [[[Labels]]]
            ....
            [[[[Generic]]]]
                ....
                pm2_5 = Outdoor PM2.5
                pm10 = Indoor PM10
                pm2_55 = Indoor PM2.5

If you want to have separate indoor and outdoor plots for PM2.5/PM10 then you would need to:
1. modify [[[daypm]]] and friends under [ImageGenerator] to plot either indoor or outdoor only
2. create a new plot, say [[[dayoutdoorpm]]] (and friends)
3. modify plot_groups under [DisplayOptions] in skin.conf to display the new plot

I see you have two rain gauges, if you want to plot the WS90 rain data (the p_* fields) then you will need to go through a similar process as you will with pm2_55.

Gary

Stephen Hocking

unread,
Jun 15, 2022, 11:41:34 PM6/15/22
to weewx...@googlegroups.com
Hi Gary,

Thank you for you clear and complete explanation, I now have the plots being generated as I like in Seasons (haven't dared venture into Belchertown), and am quite happy.

--
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 on the web visit https://groups.google.com/d/msgid/weewx-user/27f35665-ff5f-429e-ba94-be135189e4a3n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages