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 weewx-user+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/0cf32e85-6112-4aa8-bf22-42dbc11b0921n%40googlegroups.com.