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.

Reply via email to