gw1000 - wh41 wh57 battery values

161 views
Skip to first unread message

Graham Eddy

unread,
Apr 21, 2021, 1:45:42 AM4/21/21
to weewx...@googlegroups.com
i have been tracking battery and signal values for 36 hours for my various sensors hanging off a gw1000.
for wh41 and wh57 i expected to see values 0-5, but i have see other values.
wh41 has shown 15 quite often. wh57 has shown 255 once.
15 and 255 look suspiciously like bit masks.

i should add that both my wh41s reset themselves often (irregularly) for no apparent reason, and have done so since their first day.
the 15 value might reflect a period of wh41 insanity. should they behave this way?
maybe the 255 value from wh57 was just a bloop to be filtered out by QA

can someone explain what i am seeing for wh41 and wh57 values?

gjr80

unread,
Apr 21, 2021, 4:30:38 AM4/21/21
to weewx-user

Can’t say why you are seeing what you are seeing but if you are running the GW1000 API driver we can look at the raw bytes coming from the GW1000 and see if the issue is the GW1000/sensors or the driver. You can do one of two things. You can set debug = 3 and restart WeeWX to have the driver log the raw bytes received from the GW1000, you will need to manually record/confirm what values you are seeing for comparison unless you are logging the values you see. Alternatively you can run WeeWX directly (with debug = 3) and record the console output for comparison with the log data.

Either way post the logged data here and I can decode what the driver was receiving.

Gary

Graham Eddy

unread,
Apr 21, 2021, 8:16:22 AM4/21/21
to weewx...@googlegroups.com
an extract from test system - RPi with gw1000 as driver

On 21 Apr 2021, at 6:30 pm, gjr80 <gjrod...@gmail.com> wrote:

Either way post the logged data here and I can decode what the driver was receiving.

—————————logged config—————————
Apr 21 21:33:09 stringybark weewx-gw1000[341] DEBUG __main__: Initializing engine
Apr 21 21:33:09 stringybark weewx-gw1000[341] INFO weewx.engine: Loading station type GW1000 (user.gw1000)
Apr 21 21:33:09 stringybark weewx-gw1000[341] DEBUG user.gw1000: Sending packet 'FF FF 26 03 29' to '192.168.37.53:45000'
Apr 21 21:33:09 stringybark weewx-gw1000[341] DEBUG user.gw1000: Received response 'FF FF 26 09 50 02 91 46 AE 7E 84'
Apr 21 21:33:09 stringybark weewx-gw1000[341] DEBUG user.gw1000: Sending packet 'FF FF 30 03 33' to '192.168.37.53:45000'
Apr 21 21:33:09 stringybark weewx-gw1000[341] DEBUG user.gw1000: Received response 'FF FF 30 0B 00 01 60 80 9A 14 62 01 2D'
Apr 21 21:33:09 stringybark weewx-gw1000[341] INFO user.gw1000: field map is {'co2': 'co2', 'dateTime': 'datetime', 'daymaxwind': 'daymaxwind', 'dayRain': 'rainday', 'dewpoint': 'dewpoint', 'extraHumid1': 'humid1', 'extraHumid2': 'humid2', 'extraHumid3': 'humid3', 'extraHumid4': 'humid4', 'extraHumid5': 'humid5', 'extraHumid6': 'humid6', 'extraHumid7': 'humid7', 'extraHumid8': 'humid8', 'extraHumid17': 'humid17', 'extraTemp1': 'temp1', 'extraTemp2': 'temp2', 'extraTemp3': 'temp3', 'extraTemp4': 'temp4', 'extraTemp5': 'temp5', 'extraTemp6': 'temp6', 'extraTemp7': 'temp7', 'extraTemp8': 'temp8', 'extraTemp9': 'temp9', 'extraTemp10': 'temp10', 'extraTemp11': 'temp11', 'extraTemp12': 'temp12', 'extraTemp13': 'temp13', 'extraTemp14': 'temp14', 'extraTemp15': 'temp15', 'extraTemp16': 'temp16', 'extraTemp17': 'temp17', 'heatindex': 'heatindex', 'hourRain': 'rainhour', 'IGN_co2_24h_avg': 'co2_24h_avg', 'IGN_pm2_51_24h_avg': 'pm251_24h_avg', 'IGN_pm2_52_24h_avg': 'pm252_24h_avg', 'IGN_pm2_53_24h_avg': 'pm253_24h_avg', 'IGN_pm2_54_24h_avg': 'pm254_24h_avg', 'IGN_pm2_55_24h_avg': 'pm255_24h_avg', 'IGN_pm10_24h_avg': 'pm10_24h_avg', 'inHumidity': 'inhumid', 'inTemp': 'intemp', 'leafWet1': 'leafwet1', 'leafWet2': 'leafwet2', 'leafWet3': 'leafwet3', 'leafWet4': 'leafwet4', 'leafWet5': 'leafwet5', 'leafWet6': 'leafwet6', 'leafWet7': 'leafwet7', 'leafWet8': 'leafwet8', 'leak1': 'leak1', 'leak2': 'leak2', 'leak3': 'leak3', 'leak4': 'leak4', 'lightning_distance': 'lightningdist', 'lightning_last_det_time': 'lightningdettime', 'lightning_strike_count': 'lightning_strike_count', 'lightningcount': 'lightningcount', 'luminosity': 'light', 'monthRain': 'rainmonth', 'outHumidity': 'outhumid', 'outTemp': 'outtemp', 'pm2_5': 'pm251', 'pm2_52': 'pm252', 'pm2_53': 'pm253', 'pm2_54': 'pm254', 'pm2_55': 'pm255', 'pm10': 'pm10', ‘pressure’    truncated on screen
Apr 21 21:33:09 stringybark weewx-gw1000[341] INFO user.gw1000: driver version is 0.3.0
Apr 21 21:33:09 stringybark weewx-gw1000[341] INFO user.gw1000: GW1000 address is 192.168.37.53:45000
Apr 21 21:33:09 stringybark weewx-gw1000[341] INFO user.gw1000: poll interval is 20 seconds
Apr 21 21:33:09 stringybark weewx-gw1000[341] DEBUG user.gw1000: max tries is 3, retry wait time is 10 seconds
Apr 21 21:33:09 stringybark weewx-gw1000[341] DEBUG user.gw1000: broadcast address is b'255.255.255.255':46000, socket timeout is 2 seconds


—————————logged packets——————————
Apr 21 22:01:45 stringybark weewx-gw1000[341] DEBUG user.gw1000: Received response 'FF FF 27 00 67 01 00 F6 06 23 08 26 8C 09 26 8C 02 00 34 07 63 0A 00 AD 0B 00 00 0C 00 05 15 00 00 00 00 16 00 00 17 00 2A 00 1E 4D 00 1E 2C 32 2E 17 4C 04 00 00 00 05 FF A0 FF F4 FF FF FF FF FF FF FF 62 00 00 00 00 61 FF FF FF FF 60 FF 19 00 0C 0E 00 00 10 00 02 11 00 9D 12 00 00 00 9D 13 00 00 09 B6 0D 00 00 AD'
Apr 21 22:01:45 stringybark weewx-gw1000[341] DEBUG user.gw1000: sensor data is '01 00 F6 06 23 08 26 8C 09 26 8C 02 00 34 07 63 0A 00 AD 0B 00 00 0C 00 05 15 00 00 00 00 16 00 00 17 00 2A 00 1E 4D 00 1E 2C 32 2E 17 4C 04 00 00 00 05 FF A0 FF F4 FF FF FF FF FF FF FF 62 00 00 00 00 61 FF FF FF FF 60 FF 19 00 0C 0E 00 00 10 00 02 11 00 9D 12 00 00 00 9D 13 00 00 09 B6 0D 00 00'
Apr 21 22:01:45 stringybark weewx-gw1000[341] DEBUG user.gw1000: Parsed data: {'intemp': 24.6, 'inhumid': 35, 'absbarometer': 986.8, 'relbarometer': 986.8, 'outtemp': 5.2, 'outhumid': 99, 'winddir': 173, 'windspeed': 0.0, 'gustspeed': 0.5, 'light': 0.0, 'uv': 0.0, 'uvi': 0, 'pm251': 3.0, 'pm251_24h_avg': 3.0, 'soilmoist1': 50, 'soilmoist2': 23, 'lightningcount': 0, 'lightningdettime': None, 'lightningdist': None, 'daymaxwind': 1.2, 'rainrate': 0.0, 'rainday': 0.2, 'rainweek': 15.7, 'rainmonth': 15.7, 'rainyear': 248.6, 'rainevent': 0.0, 'datetime': 1619006505}
Apr 21 22:01:45 stringybark weewx-gw1000[341] DEBUG user.gw1000: Sending packet 'FF FF 3C 03 3F' to '192.168.37.53:45000’
Apr 21 22:01:45 stringybark weewx-gw1000[341] DEBUG user.gw1000: Received response 'FF FF 3C 01 15 00 FF FF FF FF 00 00 01 FF FF FF FF FF 00 02 00 01 00 25 A0 04 03 00 00 CC A1 00 04 05 FF FF FF FF 00 00 06 FF FF FF FF 00 00 07 FF FF FF FF 00 00 08 FF FF FF FF 00 00 09 FF FF FF FF 00 00 0A FF FF FF FF 00 00 0B FF FF FF FF 00 00 0C FF FF FF FF 00 00 0D FF FF FF FF 00 00 0E 00 00 CC 23 00 04 0F 00 00 CE 57 00 04 10 FF FF FF FF 00 00 11 FF FF FF FF 00 00 12 FF FF FF FF 00 00 13 FF FF FF FF 00 00 14 FF FF FF FF 00 00 15 FF FF FF FF 00 00 16 00 00 00 04 04 01 17 00 00 00 4C 0F 00 18 FF FF FF FF 0F 00 19 FF FF FF FF 0F 00 1A 00 00 D3 17 05 03 1B FF FF FF FF FF 00 1C FF FF FF FF FF 00 1D FF FF FF FF FF 00 1E FF FF FF FF FF 00 1F FF FF FF FF FF 00 20 FF FF FF FF FF 00 21 FF FF FF FF FF 00 22 FF FF FF FF FF 00 23 FF FF FF FF FF 00 24 FF FF FF FF FF 00 25 FF FF FF FF FF 00 26 FF FF FF FF FF 00 27 FF FF FF FF FF 00 97’
Apr 21 22:01:45 stringybark weewx-gw1000[341] DEBUG user.gw1000: Processed parsed data: {'intemp': 24.6, 'inhumid': 35, 'absbarometer': 986.8, 'relbarometer': 986.8, 'outtemp': 5.2, 'outhumid': 99, 'winddir': 173, 'windspeed': 0.0, 'gustspeed': 0.5, 'light': 0.0, 'uv': 0.0, 'uvi': 0, 'pm251': 3.0, 'pm251_24h_avg': 3.0, 'soilmoist1': 50, 'soilmoist2': 23, 'lightningcount': 0, 'lightningdettime': None, 'lightningdist': None, 'daymaxwind': 1.2, 'rainrate': 0.0, 'rainday': 0.2, 'rainweek': 15.7, 'rainmonth': 15.7, 'rainyear': 248.6, 'rainevent': 0.0, 'datetime': 1619006505, 'ws80_batt': 3.2, 'ws80_sig': 4, 'wh40_batt': 0, 'wh40_sig': 4, 'wh51_ch1_batt': 0, 'wh51_ch1_sig': 4, 'wh51_ch2_batt': 0, 'wh51_ch2_sig': 4, 'wh41_ch1_batt': 4, 'wh41_ch1_sig': 1, 'wh41_ch2_batt': 15, 'wh41_ch2_sig': 0, 'wh57_batt': 5, 'wh57_sig': 3}
Apr 21 22:01:45 stringybark weewx-gw1000[341] DEBUG user.gw1000: Next update in 20 seconds
Apr 21 22:01:45 stringybark weewx-gw1000[341] DEBUG user.gw1000: Packet2021-04-21 22:01:45 AEST (1619006505): {'dateTime': '1619006505', 'daymaxwind': '1.2', 'dayRain': '0.2', 'IGN_pm2_51_24h_avg': '3.0', 'inHumidity': '35', 'inTemp': '24.6', 'lightning_distance': 'None', 'lightning_last_det_time': 'None', 'lightning_strike_count': '0', 'lightningcount': '0', 'luminosity': '0.0', 'monthRain': '15.7', 'outHumidity': '99', 'outTemp': '5.2', 'pm2_5': '3.0', 'pressure': '986.8', 'radiation': '0.0', 'rain': '0.0', 'rainRate': '0.0', 'relbarometer': '986.8', 'soilMoist1': '50', 'soilMoist2': '23', 'stormRain': '0.0', 'usUnits': '17', 'UV': '0', 'weekRain': '15.7', 'wh40_batt': '0', 'wh40_sig': '4', 'wh41_ch1_batt': '4', 'wh41_ch1_sig': '1', 'wh41_ch2_batt': '15', 'wh41_ch2_sig': '0', 'wh51_ch1_batt': '0', 'wh51_ch1_sig': '4', 'wh51_ch2_batt': '0', 'wh51_ch2_sig': '4', 'wh57_batt': '5', 'wh57_sig': '3', 'windDir': '173', 'windGust': '0.5', 'windSpeed': '0.0', 'ws80_batt': '3.2', 'ws80_sig': '4', 'yearRain': '248.6'}
Apr 21 22:02:05 stringybark weewx-gw1000[341] DEBUG user.gw1000: Sending packet 'FF FF 27 03 2A' to '192.168.37.53:45000'
Apr 21 22:02:05 stringybark weewx-gw1000[341] DEBUG user.gw1000: Received response 'FF FF 27 00 3B 01 00 F6 06 23 08 26 8A 09 26 8A 02 00 33 07 63 0A 00 C3 0B 00 00 0C 00 05 15 00 00 00 00 16 00 00 17 00 4C 0F 00 00 00 FF FF A0 FF FF FF FF FF FF FF FF FF 19 00 0C D2’
Apr 21 22:02:05 stringybark weewx-gw1000[341] DEBUG user.gw1000: sensor data is '01 00 F6 06 23 08 26 8A 09 26 8A 02 00 33 07 63 0A 00 C3 0B 00 00 0C 00 05 15 00 00 00 00 16 00 00 17 00 4C 0F 00 00 00 FF FF A0 FF FF FF FF FF FF FF FF FF 19 00 0C'
Apr 21 22:02:05 stringybark weewx-gw1000[341] DEBUG user.gw1000: Parsed data: {'intemp': 24.6, 'inhumid': 35, 'absbarometer': 986.6, 'relbarometer': 986.6, 'outtemp': 5.1, 'outhumid': 99, 'winddir': 195, 'windspeed': 0.0, 'gustspeed': 0.5, 'light': 0.0, 'uv': 0.0, 'uvi': 0, 'daymaxwind': 1.2, 'datetime': 1619006525}
Apr 21 22:02:05 stringybark weewx-gw1000[341] DEBUG user.gw1000: Sending packet 'FF FF 3C 03 3F' to '192.168.37.53:45000’
Apr 21 22:02:05 stringybark weewx-gw1000[341] DEBUG user.gw1000: Received response 'FF FF 3C 01 15 00 FF FF FF FF 00 00 01 FF FF FF FF FF 00 02 00 01 00 25 A0 02 03 00 00 CC A1 00 00 05 FF FF FF FF 00 00 06 FF FF FF FF 00 00 07 FF FF FF FF 00 00 08 FF FF FF FF 00 00 09 FF FF FF FF 00 00 0A FF FF FF FF 00 00 0B FF FF FF FF 00 00 0C FF FF FF FF 00 00 0D FF FF FF FF 00 00 0E 00 00 CC 23 00 00 0F 00 00 CE 57 00 00 10 FF FF FF FF 00 00 11 FF FF FF FF 00 00 12 FF FF FF FF 00 00 13 FF FF FF FF 00 00 14 FF FF FF FF 00 00 15 FF FF FF FF 00 00 16 00 00 00 04 0F 00 17 00 00 00 4C 0F 00 18 FF FF FF FF 0F 00 19 FF FF FF FF 0F 00 1A 00 00 D3 17 FF 00 1B FF FF FF FF FF 00 1C FF FF FF FF FF 00 1D FF FF FF FF FF 00 1E FF FF FF FF FF 00 1F FF FF FF FF FF 00 20 FF FF FF FF FF 00 21 FF FF FF FF FF 00 22 FF FF FF FF FF 00 23 FF FF FF FF FF 00 24 FF FF FF FF FF 00 25 FF FF FF FF FF 00 26 FF FF FF FF FF 00 27 FF FF FF FF FF 00 8A'
Apr 21 22:02:05 stringybark weewx-gw1000[341] DEBUG user.gw1000: Processed parsed data: {'intemp': 24.6, 'inhumid': 35, 'absbarometer': 986.6, 'relbarometer': 986.6, 'outtemp': 5.1, 'outhumid': 99, 'winddir': 195, 'windspeed': 0.0, 'gustspeed': 0.5, 'light': 0.0, 'uv': 0.0, 'uvi': 0, 'daymaxwind': 1.2, 'datetime': 1619006525, 'ws80_batt': 3.2, 'ws80_sig': 2, 'wh40_batt': 0, 'wh40_sig': 0, 'wh51_ch1_batt': 0, 'wh51_ch1_sig': 0, 'wh51_ch2_batt': 0, 'wh51_ch2_sig': 0, 'wh41_ch1_batt': 15, 'wh41_ch1_sig': 0, 'wh41_ch2_batt': 15, 'wh41_ch2_sig': 0, 'wh57_batt': 255, 'wh57_sig': 0}
Apr 21 22:02:05 stringybark weewx-gw1000[341] DEBUG user.gw1000: Next update in 20 seconds
Apr 21 22:02:05 stringybark weewx-gw1000[341] DEBUG user.gw1000: Packet2021-04-21 22:02:05 AEST (1619006525): {'dateTime': '1619006525', 'daymaxwind': '1.2', 'inHumidity': '35', 'inTemp': '24.6', 'luminosity': '0.0', 'outHumidity': '99', 'outTemp': '5.1', 'pressure': '986.6', 'radiation': '0.0', 'relbarometer': '986.6', 'usUnits': '17', 'UV': '0', 'wh40_batt': '0', 'wh40_sig': '0', 'wh41_ch1_batt': '15', 'wh41_ch1_sig': '0', 'wh41_ch2_batt': '15', 'wh41_ch2_sig': '0', 'wh51_ch1_batt': '0', 'wh51_ch1_sig': '0', 'wh51_ch2_batt': '0', 'wh51_ch2_sig': '0', 'wh57_batt': '255', 'wh57_sig': '0', 'windDir': '195', 'windGust': '0.5', 'windSpeed': '0.0', 'ws80_batt': '3.2', 'ws80_sig': '2'}
Apr 21 22:02:25 stringybark weewx-gw1000[341] DEBUG user.gw1000: Sending packet 'FF FF 27 03 2A' to '192.168.37.53:45000'
Apr 21 22:02:25 stringybark weewx-gw1000[341] DEBUG user.gw1000: Received response 'FF FF 27 00 49 01 00 F6 06 23 08 26 8C 09 26 8C 02 00 34 07 63 0A 00 C3 0B 00 00 0C 00 00 15 00 00 00 00 16 00 00 17 00 2C 32 4C 0F 00 00 00 04 FF A0 FF FF FF FF FF FF FF FF FF 62 00 00 00 00 61 FF FF FF FF 60 FF 19 00 0C 61'
Apr 21 22:02:25 stringybark weewx-gw1000[341] DEBUG user.gw1000: sensor data is '01 00 F6 06 23 08 26 8C 09 26 8C 02 00 34 07 63 0A 00 C3 0B 00 00 0C 00 00 15 00 00 00 00 16 00 00 17 00 2C 32 4C 0F 00 00 00 04 FF A0 FF FF FF FF FF FF FF FF FF 62 00 00 00 00 61 FF FF FF FF 60 FF 19 00 0C’
Apr 21 22:02:25 stringybark weewx-gw1000[341] DEBUG user.gw1000: Parsed data: {'intemp': 24.6, 'inhumid': 35, 'absbarometer': 986.8, 'relbarometer': 986.8, 'outtemp': 5.2, 'outhumid': 99, 'winddir': 195, 'windspeed': 0.0, 'gustspeed': 0.0, 'light': 0.0, 'uv': 0.0, 'uvi': 0, 'soilmoist1': 50, 'lightningcount': 0, 'lightningdettime': None, 'lightningdist': None, 'daymaxwind': 1.2, 'datetime': 1619006545}
Apr 21 22:02:25 stringybark weewx-gw1000[341] DEBUG user.gw1000: Sending packet 'FF FF 3C 03 3F' to '192.168.37.53:45000’
Apr 21 22:02:25 stringybark weewx-gw1000[341] DEBUG user.gw1000: Received response 'FF FF 3C 01 15 00 FF FF FF FF 00 00 01 FF FF FF FF FF 00 02 00 01 00 25 A0 04 03 00 00 CC A1 00 00 05 FF FF FF FF 00 00 06 FF FF FF FF 00 00 07 FF FF FF FF 00 00 08 FF FF FF FF 00 00 09 FF FF FF FF 00 00 0A FF FF FF FF 00 00 0B FF FF FF FF 00 00 0C FF FF FF FF 00 00 0D FF FF FF FF 00 00 0E 00 00 CC 23 00 01 0F 00 00 CE 57 00 00 10 FF FF FF FF 00 00 11 FF FF FF FF 00 00 12 FF FF FF FF 00 00 13 FF FF FF FF 00 00 14 FF FF FF FF 00 00 15 FF FF FF FF 00 00 16 00 00 00 04 0F 00 17 00 00 00 4C 0F 00 18 FF FF FF FF 0F 00 19 FF FF FF FF 0F 00 1A 00 00 D3 17 04 01 1B FF FF FF FF FF 00 1C FF FF FF FF FF 00 1D FF FF FF FF FF 00 1E FF FF FF FF FF 00 1F FF FF FF FF FF 00 20 FF FF FF FF FF 00 21 FF FF FF FF FF 00 22 FF FF FF FF FF 00 23 FF FF FF FF FF 00 24 FF FF FF FF FF 00 25 FF FF FF FF FF 00 26 FF FF FF FF FF 00 27 FF FF FF FF FF 00 93'
Apr 21 22:02:25 stringybark weewx-gw1000[341] DEBUG user.gw1000: Processed parsed data: {'intemp': 24.6, 'inhumid': 35, 'absbarometer': 986.8, 'relbarometer': 986.8, 'outtemp': 5.2, 'outhumid': 99, 'winddir': 195, 'windspeed': 0.0, 'gustspeed': 0.0, 'light': 0.0, 'uv': 0.0, 'uvi': 0, 'soilmoist1': 50, 'lightningcount': 0, 'lightningdettime': None, 'lightningdist': None, 'daymaxwind': 1.2, 'datetime': 1619006545, 'ws80_batt': 3.2, 'ws80_sig': 4, 'wh40_batt': 0, 'wh40_sig': 0, 'wh51_ch1_batt': 0, 'wh51_ch1_sig': 1, 'wh51_ch2_batt': 0, 'wh51_ch2_sig': 0, 'wh41_ch1_batt': 15, 'wh41_ch1_sig': 0, 'wh41_ch2_batt': 15, 'wh41_ch2_sig': 0, 'wh57_batt': 4, 'wh57_sig': 1}

gjr80

unread,
Apr 22, 2021, 1:46:23 AM4/22/21
to weewx-user
I can see what is going on now. To understand you need a little GW1000 API background. To obtain the sensor observation data there is a particular API call that is made that returns the sensor observation data. This data previously included a block of sensor battery state/signal level data but his was removed in the firmware release 1.6.5 (presumably because the block was finite in size and the suite of GW1000 supported sensors has grown rapidly). Battery state and signal level data must now be obtained via a second, separate API call. The GW1000 driver combines data from both of these calls to produce loop packets. The issue is the behaviour of these two calls is slightly different. The first call for observational data will (rightly) return no data for a given sensor is contact has been lost. The second call returns data for all registered sensors, whether the sensor is still 'connected' or not. Sensors that are not 'connected' return a signal level of 0 (rightly so)(remembering that the GW1000 signal level is not a true indication of signal (RF) level but rather a count of how many of the four most recent (expected) packets were received from the sensor). For sensors that are not 'connected' the battery state data can give nonsense values (which is what we are seeing above). More background, GW1000 sensors provide battery state data in a single byte in one of three ways; in binary form with a particular bit=1 being 'low' and the same bit=0 being 'OK, as an integer from 0 to 6, or as a voltage. The nonsense data we are seeing in this case is for the WH41/WH57 sensors which use an integer from 0 to 6 inclusive to represent battery state. It is quite possible the other methods are equally affected but it is not quite so obvious for them if they are.

There are probably a few approaches to deal with this:
1. put a QC limit in [StdQC]
2. ignore battery states > 6 for sensors that emit a battery state value from 0 to 6
3. live with it, it's what the GW1000 is emitting after all
4. ignore battery states for sensors with signal level == 0

Approach 1 is too crude and hackish and will be a nightmare to manage. Approach two will fix this problem but does not handle sensors that emit a voltage or binary battery state (how do you tell if the binary 0 or 1 is real data or nonsense data). Approach 3 has more merit than you might think, but I believe it is pretty clear from the capture above there is invalid data and it is reasonable for a driver to make a determination on that. At the moment I favour approach 4 as it provides the best of each of the others. Sensor signal level 0 is a valid signal level so we cannot just omit a sensor entirely just because the GW1000 reports signal level = 0. At the same time we know that the battery state data is at best unreliable, and in some cases plain invalid, so I am happy for the driver to ignore battery state in such cases.

I've implemented approach 4 in the driver and now by default sensor battery state will be set to None for sensors that have signal level = 0 , you can download this version using:

$ wget https://raw.githubusercontent.com/gjr80/weewx-gw1000/master/bin/user/gw1000.py

The default behaviour for battery states can be overridden and all battery states displayed irrespective of value or signal level by setting show_all_batt = True under [GW1000] in weewx.conf or by using the --show-all-batt command line option.

I have a WH51 sensor that suffers intermittent connectivity and the driver handles its battery state correctly. Other testing I have done is positive, but I will hold off from releasing this version until I get some feedback from others.

Gary

Graham Eddy

unread,
Apr 22, 2021, 3:55:13 AM4/22/21
to weewx...@googlegroups.com
this reminds me strongly of windDir value when windSpeed==0

Graham Eddy

unread,
Apr 23, 2021, 1:29:47 AM4/23/21
to weewx...@googlegroups.com
even after only a few hours it is obvious that it has cleaned up the battery status data

the following graphs show before and after new gw1000.py at 12pm:



as to why the sensor packet loss is so high, that is something else for me to investigate (none are more than 10m from receiver). is this level of loss normal for gw1000?

gjr80

unread,
Apr 23, 2021, 2:03:56 AM4/23/21
to weewx-user
Good that it is cleaned up. I will release v0.3.2 directly.

As for sensor packet loss, how long is a piece of string. I have three moisture sensors, one about five metres from the GW1000, another 10 metres and another 30 metres all through an internal plasterboard wall and window; the 30 metre one with a chunk of brick veneer house sticking out into the path. The first two are rock solid, the 30 metre one was rock solid but is about 60-40 connected/not connected these days, maybe it’s a battery issue. On the other hand I have two WH31 the furthest is about 30 metres away through brick veneer wall and in a locked steel shed with no windows and it is rock solid. Likewise the other WH31 about 10 metres away through a plasterboard wall. The performance of the WH31 in the shed surprised me. The 30m WH51 does not surprise me. My WH41 is only a couple of metres from the GW1000 and has a plasterboard wall between it and the GW1000 and it is rock solid, it is powered by a 5V plug pack though.

Assuming your batteries/power is good I would say you either got Friday afternoon devices or there is some interference. I would expect better.

Gary
Reply all
Reply to author
Forward
0 new messages