Hi, Your windSpeed is 0 and by default WeeWX sets windDir to None when windSpeed is 0. What happens when windSpeed > 0? If you want to change this default behaviour look at the ignore_zero_windspeed <http://weewx.com/docs/usersguide.htm#StdWXCalculate> config option under [StdWXCalcute]
Gary On Friday, 9 October 2020 at 06:59:07 UTC+10 bdf0506 wrote: > I can't get WeeWx to properly parse out WindDir from an Acurite 5n1 sensor > packet using SDR. I believe this is something on the WeeWx side and not the > SDR side. I see the value in there when I manually run both rtl_433 and the > sdr.py program, but WeeWx refuses to parse it. It will even show in the > debug log file that it is being parsed, but the loop packets can't seem to > find it. Can anyone please let me know what I might be doing wrong? > > Running rtl_433 command outside of WeeWx: > > [root@weewx weewx]$ rtl_433 -M utc -F json > rtl_433 version 20.02-178-g0e41c92 branch master at 202010050903 inputs > file rtl_tcp RTL-SDR > Use -h for usage help and see https://triq.org/ for documentation. > Trying conf file at "rtl_433.conf"... > Trying conf file at "/home/root/.config/rtl_433/rtl_433.conf"... > Trying conf file at "/usr/local/etc/rtl_433/rtl_433.conf"... > Trying conf file at "/etc/rtl_433/rtl_433.conf"... > Registered 138 out of 167 device decoding protocols [ 1-4 8 11-12 15-17 > 19-21 23 25-26 29-36 38-60 63 67-71 73-100 102-105 108-116 119 121 124-128 > 130-149 151-161 163-167 ] > Detached kernel driver > Found Rafael Micro R820T tuner > Exact sample rate is: 250000.000414 Hz > [R82XX] PLL not locked! > Sample rate set to 250000 S/s. > Tuner gain set to Auto. > Tuned to 433.920MHz. > {"time" : "2020-10-08 20:34:13", "model" : "Acurite-5n1", "subtype" : 49, > "id" : 3420, "channel" : "A", "sequence_num" : 0, "battery_ok" : 1, > "wind_avg_km_h" : 0.000, *"wind_dir_deg" : 180.000,* "rain_in" : 19.460, > "mic" : "CHECKSUM"} > {"time" : "2020-10-08 20:34:13", "model" : "Acurite-5n1", "subtype" : 49, > "id" : 3420, "channel" : "A", "sequence_num" : 1, "battery_ok" : 1, > "wind_avg_km_h" : 0.000, *"wind_dir_deg" : 180.000,* "rain_in" : 19.460, > "mic" : "CHECKSUM"} > {"time" : "2020-10-08 20:34:13", "model" : "Acurite-5n1", "subtype" : 49, > "id" : 3420, "channel" : "A", "sequence_num" : 2, "battery_ok" : 1, > "wind_avg_km_h" : 0.000, *"wind_dir_deg" : 180.000,* "rain_in" : 19.460, > "mic" : "CHECKSUM"} > > Running SDR driver by itself shows me what I want: > > [root@weewx weewx]$ wee_extension --list | grep sdr > sdr 0.77 Capture data from rtl_433 > > [root@weewx weewx]$ PYTHONPATH=bin python bin/user/sdr.py --cmd "rtl_433 > -M utc -F json" > out:[u'{"time" : "2020-10-08 20:37:52", "model" : "Acurite-5n1", "subtype" > : 49, "id" : 3420, "channel" : "A", "sequence_num" : 0, "battery_ok" : 1, > "wind_avg_km_h" : 0.000, *"wind_dir_deg" : 180.000,* "rain_in" : 19.460, > "mic" : "CHECKSUM"}\n', u'{"time" : "2020-10-08 20:37:52", "model" : > "Acurite-5n1", "subtype" : 49, "id" : 3420, "channel" : "A", "sequence_num" > : 1, "battery_ok" : 1, "wind_avg_km_h" : 0.000, *"wind_dir_deg" : > 180.000, *"rain_in" : 19.460, "mic" : "CHECKSUM"}\n', u'{"time" : > "2020-10-08 20:37:52", "model" : "Acurite-5n1", "subtype" : 49, "id" : > 3420, "channel" : "A", "sequence_num" : 2, "battery_ok" : 1, > "wind_avg_km_h" : 0.000, *"wind_dir_deg" : 180.000,* "rain_in" : 19.460, > "mic" : "CHECKSUM"}\n'] > parsed: {'rain_total.0D5C.Acurite5n1PacketV2': 19.46, > 'snr.0D5C.Acurite5n1PacketV2': None, 'noise.0D5C.Acurite5n1PacketV2': None, > 'channel.0D5C.Acurite5n1PacketV2': u'A', *'wind_dir.0D5C.Acurite5n1PacketV2': > 180.0,* 'model.0D5C.Acurite5n1PacketV2': u'Acurite-5n1', > 'wind_speed.0D5C.Acurite5n1PacketV2': 0.0, > 'msg_type.0D5C.Acurite5n1PacketV2': 49, 'rssi.0D5C.Acurite5n1PacketV2': > None, 'mod.0D5C.Acurite5n1PacketV2': None, > 'battery.0D5C.Acurite5n1PacketV2': 1, > 'sequence_num.0D5C.Acurite5n1PacketV2': 0, 'dateTime': 1602189472, > 'freq.0D5C.Acurite5n1PacketV2': None, 'usUnits': 1, > 'protocol.0D5C.Acurite5n1PacketV2': None} > parsed: {'rain_total.0D5C.Acurite5n1PacketV2': 19.46, > 'snr.0D5C.Acurite5n1PacketV2': None, 'noise.0D5C.Acurite5n1PacketV2': None, > 'channel.0D5C.Acurite5n1PacketV2': u'A', *'wind_dir.0D5C.Acurite5n1PacketV2': > 180.0*, 'model.0D5C.Acurite5n1PacketV2': u'Acurite-5n1', > 'wind_speed.0D5C.Acurite5n1PacketV2': 0.0, > 'msg_type.0D5C.Acurite5n1PacketV2': 49, 'rssi.0D5C.Acurite5n1PacketV2': > None, 'mod.0D5C.Acurite5n1PacketV2': None, > 'battery.0D5C.Acurite5n1PacketV2': 1, > 'sequence_num.0D5C.Acurite5n1PacketV2': 1, 'dateTime': 1602189472, > 'freq.0D5C.Acurite5n1PacketV2': None, 'usUnits': 1, > 'protocol.0D5C.Acurite5n1PacketV2': None} > parsed: {'rain_total.0D5C.Acurite5n1PacketV2': 19.46, > 'snr.0D5C.Acurite5n1PacketV2': None, 'noise.0D5C.Acurite5n1PacketV2': None, > 'channel.0D5C.Acurite5n1PacketV2': u'A', *'wind_dir.0D5C.Acurite5n1PacketV2': > 180.0,* 'model.0D5C.Acurite5n1PacketV2': u'Acurite-5n1', > 'wind_speed.0D5C.Acurite5n1PacketV2': 0.0, > 'msg_type.0D5C.Acurite5n1PacketV2': 49, 'rssi.0D5C.Acurite5n1PacketV2': > None, 'mod.0D5C.Acurite5n1PacketV2': None, > 'battery.0D5C.Acurite5n1PacketV2': 1, > 'sequence_num.0D5C.Acurite5n1PacketV2': 2, 'dateTime': 1602189472, > 'freq.0D5C.Acurite5n1PacketV2': None, 'usUnits': 1, > 'protocol.0D5C.Acurite5n1PacketV2': None} > > All looks good up to this point. But then running WeeWx, it does not parse > the wind_dir field. > > [sudo@weewx weewx]$ sudo weewxd > LOOP: 2020-10-08 16:50:02 EDT (1602190202) beaufort: 0, dateTime: > 1602190202, maxSolarRad: 383.8640062554796, outTempBatteryStatus: 1, rain: > 0.0, rainRate: 0.0, rain_total: 19.46, usUnits: 1, *windDir: None*, > windSpeed: 0.0 > LOOP: 2020-10-08 16:50:02 EDT (1602190202) beaufort: 0, dateTime: > 1602190202, maxSolarRad: 383.8640062554796, outTempBatteryStatus: 1, rain: > 0.0, rainRate: 0.0, rain_total: 19.46, usUnits: 1, *windDir: None*, > windSpeed: 0.0 > LOOP: 2020-10-08 16:50:02 EDT (1602190202) beaufort: 0, dateTime: > 1602190202, maxSolarRad: 383.8640062554796, outTempBatteryStatus: 1, rain: > 0.0, rainRate: 0.0, rain_total: 19.46, usUnits: 1, *windDir: None*, > windSpeed: 0.0 > REC: 2020-10-08 16:50:00 EDT (1602190200) appTemp: 83.78578056945588, > beaufort: 0, cloudbase: 2432.411212114173, dateTime: 1602190200, dewpoint: > 67.85699066669764, ET: None, extraHumid1: 55.0, extraHumid2: 62.0, > extraHumid3: 53.0, extraHumid4: 62.0, extraTemp1: 72.176, extraTemp2: > 70.16, extraTemp3: 69.80000000000001, extraTemp4: 71.78, heatindex: 77.2, > humidex: 90.70753324187874, interval: 5.0, maxSolarRad: 383.981212089455, > outHumidity: 73.0, outTemp: 77.2, outTempBatteryStatus: 1.0, rain: 0.0, > rainRate: 0.0, rain_total: 19.460000000000004, usUnits: 1, windchill: 77.2, > *windDir: > None*, windGust: 0.0, windGustDir: None, windrun: 0.0, windSpeed: 0.0 > > BUT - the debug packets do in fact show the wind_dir_deg being parsed! > > Oct 8 16:50:05 weewx weewx[688] DEBUG user.sdr: lines=[''{"time" : > "2020-10-08 20:50:02", "model" : "Acurite-5n1", "subtype" : 49, "id" : > 3420, "channel" : "A", "sequence_num" : 0, "battery_ok" : 1, > "wind_avg_km_h" : 0.000, *"wind_dir_deg" : 180.000,* "rain_in" : 19.460, > "mic" : "CHECKSUM"}\n', '{"time" : "2020-10-08 20:50:02", "model" : > "Acurite-5n1", "subtype" : 49, "id" : 3420, "channel" : "A", "sequence_num" > : 1, "battery_ok" : 1, "wind_avg_km_h" : 0.000, "wind_dir_deg" : 180.000, > "rain_in" : 19.460, "mic" : "CHECKSUM"}\n', '{"time" : "2020-10-08 > 20:50:02", "model" : "Acurite-5n1", "subtype" : 49, "id" : 3420, "channel" > : "A", "sequence_num" : 2, "battery_ok" : 1, "wind_avg_km_h" : 0.000, > "wind_dir_deg" : 180.000, "rain_in" : 19.460, "mic" : "CHECKSUM"}\n', > '{"time" : "2020-10-08 > Oct 8 16:50:05 weewx weewx[688] DEBUG user.sdr: packet={'windSpeed': 0.0, > *'windDir': > 180.0,* 'rain_total': 19.46, 'outTempBatteryStatus': 1, 'dateTime': > 1602190202, 'usUnits': 1} > Oct 8 16:50:05 weewx weewx[688] DEBUG user.sdr: packet={'windSpeed': 0.0, > *'windDir': > 180.0,* 'rain_total': 19.46, 'outTempBatteryStatus': 1, 'dateTime': > 1602190202, 'usUnits': 1} > Oct 8 16:50:05 weewx weewx[688] DEBUG user.sdr: packet={'windSpeed': 0.0, > *'windDir': > 180.0, *'rain_total': 19.46, 'outTempBatteryStatus': 1, 'dateTime': > 1602190202, 'usUnits': 1} > > Relevant WeeWx config file info which shows the sensor mappings: > > [SDR] > # This section is for the software-defined radio driver. > > # The driver to use > driver = user.sdr > log_unknown_sensors = True > log_unmapped_sensors = True > path = /usr/local/bin/ > cmd = rtl_433 -M utc -F json > [[sensor_map]] > outHumidity = humidity.0D5C.Acurite5n1PacketV2 > outTemp = temperature.0D5C.Acurite5n1PacketV2 > windSpeed = wind_speed.0D5C.Acurite5n1PacketV2 > *windDir = wind_dir.0D5C.Acurite5n1PacketV2* > rain_total = rain_total.0D5C.Acurite5n1PacketV2 > outTempBatteryStatus = battery.0D5C.Acurite5n1PacketV2 > > Any ideas as to why WeeWx refuses to properly parse this properly in the > loop packets? > -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/bf0791d1-353c-4653-a46e-3da9f047a730n%40googlegroups.com.
