merbanan / rtl_433

Program to decode radio transmissions from devices on the ISM bands (and other frequencies)
GNU General Public License v2.0
6.04k stars 1.31k forks source link

Ambient Weather being decoded as 2 devices #1220

Open slvrscoobie opened 4 years ago

slvrscoobie commented 4 years ago

Hi! Im having trouble with my weewx, and found that it might be partly due to the parsing not working correctly. I have a WS2902a Array that for almost a year has been decoded as a WH65Packet. Today I changed the batteries in the array as I was have trouble connecting to it (but only it) and in watching the tail log I saw this : Dec 2 15:05:54 raspberrypi weewx[2556]: sdr: MainThread: lines=[u'{"time" : "2019-12-02 20:05:51", "model" : "Fine Offset WH65B", "id" : 10, "battery" : "OK", "temperature_C" : 0.500, "humidity" : 97, "wind_dir_deg" : 262, "wind_speed_ms" : 0.255, "gust_speed_ms" : 0.510, "rainfall_mm" : 1515.618, "uv" : 22, "uvi" : 0, "light_lux" : 2464.000, "mic" : "CRC"}\n'] Dec 2 15:06:07 raspberrypi weewx[2556]: sdr: MainThread: lines=[] Dec 2 15:06:10 raspberrypi weewx[2556]: sdr: MainThread: lines=[u'{"time" : "2019-12-02 20:06:07", "model" : "Fine Offset WH24", "id" : 10, "battery" : "OK", "temperature_C" : 0.500, "humidity" : 97, "wind_dir_deg" : 302, "wind_speed_ms" : 1.260, "gust_speed_ms" : 2.240, "rainfall_mm" : 1790.100, "uv" : 22, "uvi" : 0, "light_lux" : 2464.000, "mic" : "CRC"}\n'] Dec 2 15:06:10 raspberrypi weewx[2556]: sdr: MainThread: packet={'UV': 0.0, 'outHumidity': 97.0, 'light': 2464.0, 'outTempBatteryStatus': 0, 'dateTime': 1575317167, 'windDir': 302.0, 'outTemp': 0.5, 'windSpeed': 1.26, 'rain_total': 1790.1, 'usUnits': 17} so Ive been watching and it seems to bounce between the two, at random. Im happy to have it registering, but now theres a new problem lol and since i cant register two im trying to figure out why its flip-flopping

slvrscoobie commented 4 years ago

parsed: {'humidity.10.FOWH24Packet': 97.0, 'uv_index.10.FOWH24Packet': 0.0, 'light.10.FOWH24Packet': 2418.0, 'dateTime': 1575317711, 'rain_total.10.FOWH24Packet': 1790.1, 'temperature.10.FOWH24Packet': 0.5, 'wind_gust.10.FOWH24Packet': 1.12, 'battery.10.FOWH24Packet': 0, 'wind_dir.10.FOWH24Packet': 293.0, 'usUnits': 17, 'wind_speed.10.FOWH24Packet': 0.7} out:[u'{"time" : "2019-12-02 20:15:25", "model" : "AmbientWeather-WH31E", "id" : 161, "channel" : 3, "battery" : "OK", "temperature_C" : 5.200, "humidity" : 57, "data" : "7f00000000", "mic" : "CRC", "mod" : "ASK", "freq" : 0.000, "rssi" : 0.000, "snr" : 0.000, "noise" : 0.000}\n', u'{"time" : "2019-12-02 20:15:27", "model" : "Fine Offset WH24", "id" : 10, "battery" : "OK", "temperature_C" : 0.500, "humidity" : 97, "wind_dir_deg" : 342, "wind_speed_ms" : 0.420, "gust_speed_ms" : 1.120, "rainfall_mm" : 1790.100, "uv" : 22, "uvi" : 0, "light_lux" : 2464.000, "mic" : "CRC", "mod" : "ASK", "freq" : 0.000, "rssi" : 0.000, "snr" : 0.000, "noise" : 0.000}\n', u'{"time" : "2019-12-02 20:15:30", "model" : "AmbientWeather-WH31E", "id" : 211, "channel" : 1, "battery" : "OK", "temperature_C" : 1.000, "humidity" : 95, "data" : "ce00000000", "mic" : "CRC", "mod" : "ASK", "freq" : 0.000, "rssi" : 0.000, "snr" : 0.000, "noise" : 0.000}\n', u'{"time" : "2019-12-02 20:15:30", "model" : "AmbientWeather-WH31E", "id" : 211, "channel" : 1, "battery" : "OK", "temperature_C" : 1.000, "humidity" : 95, "data" : "ce00000000", "mic" : "CRC", "mod" : "ASK", "freq" : 0.000, "rssi" : 0.000, "snr" : 0.000, "noise" : 0.000}\n'] parsed: {'channel.161.AmbientWH31EPacket': 3, 'snr.161.AmbientWH31EPacket': 0.0, 'battery.161.AmbientWH31EPacket': 0, 'dateTime': 1575317725, 'temperature.161.AmbientWH31EPacket': 5.2, 'humidity.161.AmbientWH31EPacket': 57.0, 'noise.161.AmbientWH31EPacket': 0.0, 'rssi.161.AmbientWH31EPacket': 0, 'usUnits': 17} parsed: {'humidity.10.FOWH24Packet': 97.0, 'uv_index.10.FOWH24Packet': 0.0, 'light.10.FOWH24Packet': 2464.0, 'dateTime': 1575317727, 'rain_total.10.FOWH24Packet': 1790.1, 'temperature.10.FOWH24Packet': 0.5, 'wind_gust.10.FOWH24Packet': 1.12, 'battery.10.FOWH24Packet': 0, 'wind_dir.10.FOWH24Packet': 342.0, 'usUnits': 17, 'wind_speed.10.FOWH24Packet': 0.42} parsed: {'channel.211.AmbientWH31EPacket': 1, 'snr.211.AmbientWH31EPacket': 0.0, 'noise.211.AmbientWH31EPacket': 0.0, 'dateTime': 1575317730, 'rssi.211.AmbientWH31EPacket': 0, 'battery.211.AmbientWH31EPacket': 0, 'temperature.211.AmbientWH31EPacket': 1.0, 'humidity.211.AmbientWH31EPacket': 95.0, 'usUnits': 17} parsed: {'channel.211.AmbientWH31EPacket': 1, 'snr.211.AmbientWH31EPacket': 0.0, 'noise.211.AmbientWH31EPacket': 0.0, 'dateTime': 1575317730, 'rssi.211.AmbientWH31EPacket': 0, 'battery.211.AmbientWH31EPacket': 0, 'temperature.211.AmbientWH31EPacket': 1.0, 'humidity.211.AmbientWH31EPacket': 95.0, 'usUnits': 17} out:[u'{"time" : "2019-12-02 20:15:43", "model" : "Fine Offset WH65B", "id" : 10, "battery" : "OK", "temperature_C" : 0.500, "humidity" : 97, "wind_dir_deg" : 16, "wind_speed_ms" : 0.446, "gust_speed_ms" : 1.020, "rainfall_mm" : 1515.618, "uv" : 21, "uvi" : 0, "light_lux" : 2418.000, "mic" : "CRC", "mod" : "ASK", "freq" : 0.000, "rssi" : 0.000, "snr" : 0.000, "noise" : 0.000}\n'] parsed: {'rain_total.10.FOWH65BPacket': 1515.618, 'uv.10.FOWH65BPacket': 21.0, 'wind_dir.10.FOWH65BPacket': 16.0, 'uv_index.10.FOWH65BPacket': 0.0, 'light.10.FOWH65BPacket': 2418.0, 'battery.10.FOWH65BPacket': 0, 'wind_gust.10.FOWH65BPacket': 1.02, 'temperature.10.FOWH65BPacket': 0.5, 'dateTime': 1575317743, 'humidity.10.FOWH65BPacket': 97.0, 'usUnits': 17, 'wind_speed.10.FOWH65BPacket': 0.446} out:[u'{"time" : "2019-12-02 20:15:57", "model" : "AmbientWeather-WH31E", "id" : 160, "channel" : 7, "battery" : "OK", "temperature_C" : 20.200, "humidity" : 45, "data" : "4d00000000", "mic" : "CRC", "mod" : "ASK", "freq" : 0.000, "rssi" : 0.000, "snr" : 0.000, "noise" : 0.000}\n', u'{"time" : "2019-12-02 20:15:57", "model" : "AmbientWeather-WH31E", "id" : 160, "channel" : 7, "battery" : "OK", "temperature_C" : 20.200, "humidity" : 45, "data" : "4d00000000", "mic" : "CRC", "mod" : "ASK", "freq" : 0.000, "rssi" : 0.000, "snr" : 0.000, "noise" : 0.000}\n', u'{"time" : "2019-12-02 20:15:59", "model" : "Fine Offset WH24", "id" : 10, "battery" : "OK", "temperature_C" : 0.500, "humidity" : 97, "wind_dir_deg" : 76, "wind_speed_ms" : 1.820, "gust_speed_ms" : 2.240, "rainfall_mm" : 1790.100, "uv" : 21, "uvi" : 0, "light_lux" : 2418.000, "mic" : "CRC", "mod" : "ASK", "freq" : 0.000, "rssi" : 0.000, "snr" : 0.000, "noise" : 0.000}\n', u'{"time" : "2019-12-02 20:16:00", "model" : "AmbientWeather-WH31E", "id" : 116, "channel" : 2, "battery" : "OK", "temperature_C" : 5.300, "humidity" : 80, "data" : "0000000000", "mic" : "CRC", "mod" : "ASK", "freq" : 0.000, "rssi" : 0.000, "snr" : 0.000, "noise" : 0.000}\n', u'{"time" : "2019-12-02 20:16:00", "model" : "AmbientWeather-WH31E", "id" : 116, "channel" : 2, "battery" : "OK", "temperature_C" : 5.300, "humidity" : 80, "data" : "0000000000", "mic" : "CRC", "mod" : "ASK", "freq" : 0.000, "rssi" : 0.000, "snr" : 0.000, "noise" : 0.000}\n'] parsed: {'battery.160.AmbientWH31EPacket': 0, 'rssi.160.AmbientWH31EPacket': 0, 'humidity.160.AmbientWH31EPacket': 45.0, 'temperature.160.AmbientWH31EPacket': 20.2, 'channel.160.AmbientWH31EPacket': 7, 'snr.160.AmbientWH31EPacket': 0.0, 'noise.160.AmbientWH31EPacket': 0.0, 'dateTime': 1575317757, 'usUnits': 17} parsed: {'battery.160.AmbientWH31EPacket': 0, 'rssi.160.AmbientWH31EPacket': 0, 'humidity.160.AmbientWH31EPacket': 45.0, 'temperature.160.AmbientWH31EPacket': 20.2, 'channel.160.AmbientWH31EPacket': 7, 'snr.160.AmbientWH31EPacket': 0.0, 'noise.160.AmbientWH31EPacket': 0.0, 'dateTime': 1575317757, 'usUnits': 17} parsed: {'humidity.10.FOWH24Packet': 97.0, 'uv_index.10.FOWH24Packet': 0.0, 'light.10.FOWH24Packet': 2418.0, 'dateTime': 1575317759, 'rain_total.10.FOWH24Packet': 1790.1, 'temperature.10.FOWH24Packet': 0.5, 'wind_gust.10.FOWH24Packet': 2.24, 'battery.10.FOWH24Packet': 0, 'wind_dir.10.FOWH24Packet': 76.0, 'usUnits': 17, 'wind_speed.10.FOWH24Packet': 1.82} parsed: {'snr.116.AmbientWH31EPacket': 0.0, 'noise.116.AmbientWH31EPacket': 0.0, 'battery.116.AmbientWH31EPacket': 0, 'rssi.116.AmbientWH31EPacket': 0, 'dateTime': 1575317760, 'humidity.116.AmbientWH31EPacket': 80.0, 'usUnits': 17, 'channel.116.AmbientWH31EPacket': 2, 'temperature.116.AmbientWH31EPacket': 5.3} parsed: {'snr.116.AmbientWH31EPacket': 0.0, 'noise.116.AmbientWH31EPacket': 0.0, 'battery.116.AmbientWH31EPacket': 0, 'rssi.116.AmbientWH31EPacket': 0, 'dateTime': 1575317760, 'humidity.116.AmbientWH31EPacket': 80.0, 'usUnits': 17, 'channel.116.AmbientWH31EPacket': 2, 'temperature.116.AmbientWH31EPacket': 5.3} out:[u'{"time" : "2019-12-02 20:16:06", "model" : "AmbientWeather-WH31E", "id" : 40, "channel" : 4, "battery" : "OK", "temperature_C" : 2.900, "humidity" : 81, "data" : "5d00000000", "mic" : "CRC", "mod" : "ASK", "freq" : 0.000, "rssi" : 0.000, "snr" : 0.000, "noise" : 0.000}\n'] parsed: {'snr.40.AmbientWH31EPacket': 0.0, 'noise.40.AmbientWH31EPacket': 0.0, 'channel.40.AmbientWH31EPacket': 4, 'dateTime': 1575317766, 'temperature.40.AmbientWH31EPacket': 2.9, 'humidity.40.AmbientWH31EPacket': 81.0, 'battery.40.AmbientWH31EPacket': 0, 'rssi.40.AmbientWH31EPacket': 0, 'usUnits': 17} out:[u'{"time" : "2019-12-02 20:16:15", "model" : "Fine Offset WH24", "id" : 10, "battery" : "OK", "temperature_C" : 0.500, "humidity" : 97, "wind_dir_deg" : 48, "wind_speed_ms" : 1.540, "gust_speed_ms" : 2.240, "rainfall_mm" : 1790.100, "uv" : 21, "uvi" : 0, "light_lux" : 2464.000, "mic" : "CRC", "mod" : "ASK", "freq" : 0.000, "rssi" : 0.000, "snr" : 0.000, "noise" : 0.000}\n'] parsed: {'humidity.10.FOWH24Packet': 97.0, 'uv_index.10.FOWH24Packet': 0.0, 'light.10.FOWH24Packet': 2464.0, 'dateTime': 1575317775, 'rain_total.10.FOWH24Packet': 1790.1, 'temperature.10.FOWH24Packet': 0.5, 'wind_gust.10.FOWH24Packet': 2.24, 'battery.10.FOWH24Packet': 0, 'wind_dir.10.FOWH24Packet': 48.0, 'usUnits': 17, 'wind_speed.10.FOWH24Packet': 1.54}

zuckschwerdt commented 4 years ago

Please capture a few samples (rtl_433 -S all) and upload here as zip.

slvrscoobie commented 4 years ago

g014_914975M_1000k.cu8.zip I saved a couple. I saw it decode as both WH65 and WH24 a few times before I cancelled. Thanks!!!!

slvrscoobie commented 4 years ago

Added some more files with json data here so you know what you're looking at (if you didnt already)

sudo rtl_433 -f 914979000 -S all rtl_433 version unknown 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 "/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"...

Consider using "-M newmodel" to transition to new model keys. This will become the default someday.
A table of changes and discussion is at https://github.com/merbanan/rtl_433/pull/986.

Registered 112 out of 141 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-104 108-116 119 121 124-128 131-141 ] rtl_433: warning: 104 "Wireless M-Bus, Mode C&T, 100kbps (-f 868950000 -s 1200000)" does not support CSV output usb_claim_interface error -6 Detached kernel driver Found Rafael Micro R820T tuner Exact sample rate is: 1000000.026491 Hz [R82XX] PLL not locked! Sample rate set to 1000000 S/s. Tuner gain set to Auto. Tuned to 914.979MHz. Saving signal to file g001_914.979M_1000k.cu8 (86290 samples, 262144 bytes) Saving signal to file g002_914.979M_1000k.cu8 (86287 samples, 262144 bytes)


time : 2019-12-12 16:38:31 model : Fine Offset WH65B ID : 10 Battery : OK Temperature: -1.0 C Humidity : 59 % Wind direction: 287 Wind speed: 0.0 m/s Gust speed: 0.0 m/s Rainfall : 1572.3 mm UV : 3 UVI : 0 Light : 0.0 lux Integrity : CRC Saving signal to file g003_914.979M_1000k.cu8 (44844 samples, 131072 bytes) Saving signal to file g004_914.979M_1000k.cu8 (86280 samples, 262144 bytes) Saving signal to file g005_914.979M_1000k.cu8 (86336 samples, 262144 bytes) Saving signal to file g006_914.979M_1000k.cu8 (61316 samples, 131072 bytes)


time : 2019-12-12 16:38:47 model : Fine Offset WH24 ID : 10 Battery : OK Temperature: -1.0 C Humidity : 58 % Wind direction: 287 Wind speed: 0.0 m/s Gust speed: 0.0 m/s Rainfall : 1857.0 mm UV : 2 UVI : 0 Light : 0.0 lux Integrity : CRC Saving signal to file g007_914.979M_1000k.cu8 (44833 samples, 131072 bytes) Saving signal to file g008_914.979M_1000k.cu8 (48631 samples, 131072 bytes) *** Saving signal to file g009_914.979M_1000k.cu8 (49786 samples, 131072 bytes)


time : 2019-12-12 16:38:52 model : AmbientWeather-WH31E id : 94 Channel : 8 Battery : OK Temperature: -17.1 C Humidity : 62 % Extra Data: 0900000000 Integrity : CRC Saving signal to file g010_914.979M_1000k.cu8 (208385 samples, 524288 bytes) Saving signal to file g011_914.979M_1000k.cu8 (78740 samples, 262144 bytes) *** Saving signal to file g012_914.979M_1000k.cu8 (35298 samples, 131072 bytes)


time : 2019-12-12 16:39:03 model : Fine Offset WH24 ID : 10 Battery : OK Temperature: -1.0 C Humidity : 58 % Wind direction: 287 Wind speed: 0.0 m/s Gust speed: 0.0 m/s Rainfall : 1857.0 mm UV : 3 UVI : 0 Light : 0.0 lux Integrity : CRC Saving signal to file g013_914.979M_1000k.cu8 (44822 samples, 131072 bytes) Saving signal to file g014_914.979M_1000k.cu8 (86351 samples, 262144 bytes) Saving signal to file g015_914.979M_1000k.cu8 (49814 samples, 131072 bytes) Saving signal to file g016_914.979M_1000k.cu8 (44316 samples, 131072 bytes) *** Saving signal to file g017_914.979M_1000k.cu8 (44841 samples, 131072 bytes)


time : 2019-12-12 16:39:28 model : AmbientWeather-WH31E id : 160 Channel : 7 Battery : OK Temperature: 20.3 C Humidity : 55 % Extra Data: bc00000000 Integrity : CRC


time : 2019-12-12 16:39:28 model : AmbientWeather-WH31E id : 160 Channel : 7 Battery : OK Temperature: 20.3 C Humidity : 55 % Extra Data: bc00000000 Integrity : CRC Saving signal to file g018_914.979M_1000k.cu8 (86227 samples, 262144 bytes) Saving signal to file g019_914.979M_1000k.cu8 (86288 samples, 262144 bytes) *** Saving signal to file g020_914.979M_1000k.cu8 (86285 samples, 262144 bytes)


time : 2019-12-12 16:39:34 model : AmbientWeather-WH31E id : 116 Channel : 2 Battery : OK Temperature: 7.0 C Humidity : 82 % Extra Data: f400000000 Integrity : CRC


time : 2019-12-12 16:39:34 model : AmbientWeather-WH31E id : 116 Channel : 2 Battery : OK Temperature: 7.0 C Humidity : 82 % Extra Data: f400000000 Integrity : CRC Saving signal to file g021_914.979M_1000k.cu8 (86220 samples, 262144 bytes) Saving signal to file g022_914.979M_1000k.cu8 (44835 samples, 131072 bytes) Saving signal to file g023_914.979M_1000k.cu8 (49800 samples, 131072 bytes) Saving signal to file g024_914.979M_1000k.cu8 (49778 samples, 131072 bytes) Saving signal to file g025_914.979M_1000k.cu8 (86279 samples, 262144 bytes) Saving signal to file g026_914.979M_1000k.cu8 (35297 samples, 131072 bytes) Saving signal to file g027_914.979M_1000k.cu8 (161262 samples, 393216 bytes) Saving signal to file g028_914.979M_1000k.cu8 (47269 samples, 131072 bytes)


time : 2019-12-12 16:39:51 model : Fine Offset WH65B ID : 10 Battery : OK Temperature: -1.1 C Humidity : 60 % Wind direction: 287 Wind speed: 0.0 m/s Gust speed: 0.0 m/s Rainfall : 1572.3 mm UV : 3 UVI : 0 Light : 0.0 lux Integrity : CRC Saving signal to file g029_914.979M_1000k.cu8 (44835 samples, 131072 bytes) Saving signal to file g030_914.979M_1000k.cu8 (86347 samples, 262144 bytes) *** Saving signal to file g031_914.979M_1000k.cu8 (41274 samples, 131072 bytes) pulse_FSK_detect(): Maximum number of pulses reached!


time : 2019-12-12 16:40:00 model : AmbientWeather-WH31E id : 94 Channel : 8 Battery : OK Temperature: -17.1 C Humidity : 61 % Extra Data: db00000000 Integrity : CRC *** Saving signal to file g032_914.979M_1000k.cu8 (89134 samples, 262144 bytes)


time : 2019-12-12 16:40:07 model : Fine Offset WH24 ID : 10 Battery : OK Temperature: -1.1 C Humidity : 61 % Wind direction: 287 Wind speed: 0.0 m/s Gust speed: 0.0 m/s Rainfall : 1857.0 mm UV : 3 UVI : 0 Light : 0.0 lux Integrity : CRC Saving signal to file g033_914.979M_1000k.cu8 (44833 samples, 131072 bytes) Saving signal to file g034_914.979M_1000k.cu8 (86353 samples, 262144 bytes) g001_914.979M_1000k_12_12_19.zip

ryan-kramer commented 4 years ago

Just did a side-by-side with 19.08-157 and 18.12-207 Very obvious difference, it seems like almost every other packet is decoded as WH24. (19 also seems inconsistent with decoding it in general, it will sometimes miss the packet entirely while 18 picks it up.

(output from two different pi's running concurrently)

root@weatherpi2:~# rtl_433 -M utc -F json -R 78 -f 915m -d0 rtl_433 version 19.08-157-g4cab9ff branch master at 202001271734 inputs file rtl_tcp RTL-SDR Found Rafael Micro R820T tuner

{"time" : "2020-02-02 00:58:46", "model" : "Fine Offset WH24", "id" : 128, "battery" : "OK", "temperature_C" : 8.800, "humidity" : 53, "wind_dir_deg" : 281, "wind_speed_ms" : 13.860, "gust_speed_ms" : 19.040, "rainfall_mm" : 846.900, "uv" : 2, "uvi" : 0, "light_lux" : 0.000, "mic" : "CRC"} {"time" : "2020-02-02 00:59:02", "model" : "Fine Offset WH65B", "id" : 128, "battery" : "OK", "temperature_C" : 8.800, "humidity" : 52, "wind_dir_deg" : 258, "wind_speed_ms" : 7.395, "gust_speed_ms" : 8.670, "rainfall_mm" : 717.042, "uv" : 2, "uvi" : 0, "light_lux" : 0.000, "mic" : "CRC"} {"time" : "2020-02-02 00:59:34", "model" : "Fine Offset WH24", "id" : 128, "battery" : "OK", "temperature_C" : 8.800, "humidity" : 52, "wind_dir_deg" : 275, "wind_speed_ms" : 15.540, "gust_speed_ms" : 19.040, "rainfall_mm" : 846.900, "uv" : 1, "uvi" : 0, "light_lux" : 0.000, "mic" : "CRC"} {"time" : "2020-02-02 00:59:50", "model" : "Fine Offset WH65B", "id" : 128, "battery" : "OK", "temperature_C" : 8.800, "humidity" : 52, "wind_dir_deg" : 269, "wind_speed_ms" : 7.459, "gust_speed_ms" : 8.670, "rainfall_mm" : 717.042, "uv" : 2, "uvi" : 0, "light_lux" : 0.000, "mic" : "CRC


root@weatherpi:~# rtl_433 -M utc -F json -R 78 -f 915m -d0 rtl_433 version 18.12-207-g82d0f55 branch master at 201905061642 inputs file rtl_tcp RTL-SDR Found Rafael Micro R820T tuner

{"time" : "2020-02-02 00:58:46", "model" : "Fine Offset WH65B", "id" : 128, "temperature_C" : 8.800, "humidity" : 53, "wind_dir_deg" : 281, "wind_speed_ms" : 6.311, "gust_speed_ms" : 8.670, "rainfall_mm" : 717.042, "uv" : 2, "uvi" : 0, "light_lux" : 0.000, "battery" : "OK", "mic" : "CRC"} {"time" : "2020-02-02 00:59:02", "model" : "Fine Offset WH65B", "id" : 128, "temperature_C" : 8.800, "humidity" : 52, "wind_dir_deg" : 258, "wind_speed_ms" : 7.395, "gust_speed_ms" : 8.670, "rainfall_mm" : 717.042, "uv" : 2, "uvi" : 0, "light_lux" : 0.000, "battery" : "OK", "mic" : "CRC"} {"time" : "2020-02-02 00:59:18", "model" : "Fine Offset WH65B", "id" : 128, "temperature_C" : 8.800, "humidity" : 52, "wind_dir_deg" : 273, "wind_speed_ms" : 5.865, "gust_speed_ms" : 8.160, "rainfall_mm" : 717.042, "uv" : 1, "uvi" : 0, "light_lux" : 0.000, "battery" : "OK", "mic" : "CRC"} {"time" : "2020-02-02 00:59:34", "model" : "Fine Offset WH65B", "id" : 128, "temperature_C" : 8.800, "humidity" : 52, "wind_dir_deg" : 275, "wind_speed_ms" : 7.076, "gust_speed_ms" : 8.670, "rainfall_mm" : 717.042, "uv" : 1, "uvi" : 0, "light_lux" : 0.000, "battery" : "OK", "mic" : "CRC"} {"time" : "2020-02-02 00:59:50", "model" : "Fine Offset WH65B", "id" : 128, "temperature_C" : 8.800, "humidity" : 52, "wind_dir_deg" : 269, "wind_speed_ms" : 7.459, "gust_speed_ms" : 8.670, "rainfall_mm" : 717.042, "uv" : 2, "uvi" : 0, "light_lux" : 0.000, "battery" : "OK", "mic" : "CRC"}

ryan-kramer commented 4 years ago

one more quick test, built 18.12-207 on weatherpi2 (the pi that had 19 above), just to eliminate any hardware differences. Works as expected, picks up 100% of packets and decodes as WH65B

root@weatherpi2:~# rtl_433 -M utc -F json -R 78 -f 915m -d0 rtl_433 version 18.12-207-g82d0f55 branch master at 201905061642 inputs file rtl_tcp RTL-SDR {"time" : "2020-02-02 01:08:38", "model" : "Fine Offset WH65B", "id" : 128, "temperature_C" : 8.200, "humidity" : 57, "wind_dir_deg" : 275, "wind_speed_ms" : 7.012, "gust_speed_ms" : 7.650, "rainfall_mm" : 717.042, "uv" : 2, "uvi" : 0, "light_lux" : 0.000, "battery" : "OK", "mic" : "CRC"} {"time" : "2020-02-02 01:08:54", "model" : "Fine Offset WH65B", "id" : 128, "temperature_C" : 8.000, "humidity" : 58, "wind_dir_deg" : 274, "wind_speed_ms" : 7.076, "gust_speed_ms" : 7.650, "rainfall_mm" : 717.042, "uv" : 2, "uvi" : 0, "light_lux" : 0.000, "battery" : "OK", "mic" : "CRC"} {"time" : "2020-02-02 01:09:10", "model" : "Fine Offset WH65B", "id" : 128, "temperature_C" : 7.900, "humidity" : 58, "wind_dir_deg" : 277, "wind_speed_ms" : 7.076, "gust_speed_ms" : 7.650, "rainfall_mm" : 717.042, "uv" : 2, "uvi" : 0, "light_lux" : 0.000, "battery" : "OK", "mic" : "CRC"} {"time" : "2020-02-02 01:09:26", "model" : "Fine Offset WH65B", "id" : 128, "temperature_C" : 7.800, "humidity" : 57, "wind_dir_deg" : 282, "wind_speed_ms" : 6.885, "gust_speed_ms" : 7.650, "rainfall_mm" : 717.042, "uv" : 2, "uvi" : 0, "light_lux" : 0.000, "battery" : "OK", "mic" : "CRC"} {"time" : "2020-02-02 01:09:42", "model" : "Fine Offset WH65B", "id" : 128, "temperature_C" : 7.700, "humidity" : 57, "wind_dir_deg" : 257, "wind_speed_ms" : 6.375, "gust_speed_ms" : 7.140, "rainfall_mm" : 717.042, "uv" : 1, "uvi" : 0, "light_lux" : 0.000, "battery" : "OK", "mic" : "CRC"}

zuckschwerdt commented 4 years ago

Did you try -Y classic?

ryan-kramer commented 4 years ago

Just tried classic, it no longer shows WH24 model, but it still drops packets. 3 captures, all 3 missed at least one if not multiple packets. Maybe just luck of the draw, but it is fairly consistent at dropping the second packet. not every time but most. (the pi is about 10 feet away from the station, and v18 never drops a 16 second interval)

root@weatherpi2:~/rtl_433/build/src# ./rtl_433 -Y classic -M utc -F json -R 78 -f 915m -d0 rtl_433 version 19.08-184-g401008d branch master at 202002021734 inputs file rtl_tcp RTL-SDR {"time" : "2020-02-02 17:14:15", {"time" : "2020-02-02 17:14:31", -MISSING DATA HERE- {"time" : "2020-02-02 17:15:03", {"time" : "2020-02-02 17:15:19", -MISSING DATA HERE- -MISSING DATA HERE- {"time" : "2020-02-02 17:16:07",

root@weatherpi2:~/rtl_433/build/src# ./rtl_433 -Y classic -M utc -F json -f 915m -d0 rtl_433 version 19.08-184-g401008d branch master at 202002021734 inputs file rtl_tcp RTL-SDR {"time" : "2020-02-02 17:16:23", -MISSING DATA HERE- {"time" : "2020-02-02 17:16:55", {"time" : "2020-02-02 17:17:11", {"time" : "2020-02-02 17:17:27", {"time" : "2020-02-02 17:17:43", {"time" : "2020-02-02 17:17:59",

root@weatherpi2:~/rtl_433/build/src# ./rtl_433 -Y classic -M utc -F json -f 915m -d0 rtl_433 version 19.08-184-g401008d branch master at 202002021734 inputs file rtl_tcp RTL-SDR {"time" : "2020-02-02 17:18:15", -MISSING DATA HERE- {"time" : "2020-02-02 17:18:47", {"time" : "2020-02-02 17:19:03", {"time" : "2020-02-02 17:19:19", "

ryan-kramer commented 4 years ago

Just for the fun of it, forced the detection code to default to WH65B and it works consistently without dropping. So something isn't quite happy in that.

// Classification heuristics if (bitbuffer->bits_per_row[0] - bit_offset - sizeof(b) * 8 < 8) if (bit_offset < 61) model = MODEL_WH65B; // nominal 3 bits postamble else model = MODEL_WH65B;

zuckschwerdt commented 4 years ago

Good find. If you happen to record samples where the classification would fail we can maybe look into improving it. Otherwise we could perhaps offer an override. Best case though would be an improved understanding what fails or could fail and then make it more robust overall.

slvrscoobie commented 4 years ago

So what should I do - you're saying built 18.12-207 works perfectly? how would I get that build if I only have the WH65

zuckschwerdt commented 4 years ago

That's a custom change (made locally and then rebuild the program). We still don't know why the WH65 sometimes looks like a WH24. Usually the WH65B sends the same data with a slightly longer preamble and postamble. That might be missing or not picked up in some transmissions.

slvrscoobie commented 4 years ago

do my recordings above offer any insights? how could I build the other version, or set in the override? Im also having to use frequencies far 'off' from what I would expect, such as 914.69mhz in stead of 915m...

zuckschwerdt commented 4 years ago

In your last zip of samples the g033_914.979M_1000k.cu8 decodes as WH24 (using -Y minmax, the default for -f 914.979M) but when using -Y classic it shows as WH65B as expected. I guess using -Y classic will "just work", but we might need to explore why the demod from minmax is different.

slvrscoobie commented 4 years ago

Ill try it once I get my signal back, it worked a bit this AM but now Im having trouble with it finding the WH65 at all

zuckschwerdt commented 4 years ago

Can you try CubicSDR, Gqrx, or SDRangel to visualize the live spectrum and find the signal there?

slvrscoobie commented 4 years ago

ive tried but Im not exactly sure how to use them, in the sense that I see blips, but when I center the freq on them it does no better at picking up

zuckschwerdt commented 4 years ago

exactly centering isn't the best option, you likely only want to get near the signal, say 50k off.

wauswaus commented 3 years ago

hey all I'm also a new owner of a weather station and also experience that the W65B is detected as being a WH24 for about a third of the time.

I'm running the RTL_433 in Home Assistant (using https://github.com/pbkhrv/rtl_433-hass-addons/tree/main/rtl_433) and I am quite new in using the whole rtl library. What is now the easiest way to get this fixed?

[edit] The device is sending on 868Mhz. I tried the classic setting but unfortunately then the amount of messages I see in the logging decreases significantly (once every 3 minutes or so).

merbanan commented 3 years ago

@wauswaus use -S known and get some signals that are decoded correctly and some that are decoded incorrectly. That way we can debug the issue in a proper way.

merbanan commented 3 years ago

@zuckschwerdt I think we need a command line option like the no-wh5. Does that sound like a good solution. The heuristics can only go so far. We should remove it and then add the command line option.

wauswaus commented 3 years ago

Well I tuned my frequency a bit and tried again the classic pulse_detect setting and she purrs like a kitten :) I have made logs with the pulse_detect set to auto and there all the received messages where decoded as coming from a WH64 while it is a WH65B. I also made logs with the pulse detect set to classic and there it all goes fine.

If you need me to provide more logs, please let me know.

good logs with classic pulse detect.zip WH65 decoded as WH24 using auto pulse detect.zip

slvrscoobie commented 3 years ago

How do you do the classic vs auto pulse detect?

wauswaus commented 3 years ago

I have a .conf file. In this file there is the following:

# as command line option:
#   [-Y auto | classic | minmax] FSK pulse detector mode.
pulse_detect auto

There you can set the values "classic" or "auto" (no clue what minmax does). Via command line you would use the -Y option.

wauswaus commented 2 years ago

It appears that my config wont run in classic mode anymore. Running the latest version (rtl_433 version 21.05). Config file has: sample_rate 1024k pulse_detect classic

in the log it says "New defaults active, use "-Y classic -s 250k" for the old defaults!" when I use sample_rate 250k it still comes up with "New defaults active, use "-Y classic -s 250k" for the old defaults!"

Result is that it reduces the number of good decodes considerably .

What todo?

zuckschwerdt commented 2 years ago

"New defaults" is triggered when you set a frequency (-f) above 800M. Order is important, you can return to -Y classic if you have that option later (in the conf or on the command line). Ignore the message then.

gdt commented 11 months ago

@slvrscoobie Where are we on this issue? Is it still valid with today's git master?

slvrscoobie commented 11 months ago

Ive left it on -Classic for a while and do have random decodes as the other device, but on -classic its been better, probably about 75-85% decoded as the correct device. If you're willing to investigate, I can update and send more data

gdt commented 11 months ago

TBH I am ticket gardening; I don't remotely have time to dig into your issue. A report from fresh code is useful; I don't expect anyone to want to debug about old code. And, the new code might fix your issue - I have no idea, but there's a lot of progress over time. Better yet is if you could dig in, fix and send a PR.

lachesis commented 3 months ago

I am having this problem too, with the same hardware, and the latest version of rtl_433.

Oddly, whenever I record the data with -S all then replay it with -r, it decodes correctly 100% of the time, even when the same packet decoded incorrectly before.

command:

sudo /usr/local/bin/rtl_433 -f 915000000 -Fkv -R 78 -A -S unknown >> wstation.log 2>&1

output (from wstation.log):

*** Saving signal to file g199_915M_1000k.cu8 (42780 samples, 131072 bytes)
Detected FSK package    2024-05-24 14:08:41
Analyzing pulses...
Total count:  157,  width: 12.00 ms             (12000 S)
Pulse width distribution:
 [ 0] count:    1,  width:    0 us [0;0]        (   0 S)
 [ 1] count:    1,  width:    3 us [3;3]        (   3 S)
 [ 2] count:    3,  width:    4 us [4;4]        (   4 S)
 [ 3] count:   54,  width:    1 us [1;1]        (   1 S)
 [ 4] count:   38,  width:   57 us [48;69]      (  57 S)
 [ 5] count:   10,  width:   26 us [21;31]      (  26 S)
 [ 6] count:   10,  width:   36 us [33;42]      (  36 S)
 [ 7] count:    6,  width:    9 us [8;11]       (   9 S)
 [ 8] count:    5,  width:    5 us [5;5]        (   5 S)
 [ 9] count:    5,  width:   15 us [14;17]      (  15 S)
 [10] count:    3,  width:   79 us [73;83]      (  79 S)
 [11] count:    7,  width:    2 us [2;2]        (   2 S)
 [12] count:    5,  width:  164 us [143;175]    ( 164 S)
 [13] count:    4,  width:  225 us [220;232]    ( 225 S)
 [14] count:    3,  width:  118 us [115;124]    ( 118 S)
 [15] count:    2,  width:    7 us [7;7]        (   7 S)
Gap width distribution:
 [ 0] count:   12,  width:    2 us [2;2]        (   2 S)
 [ 1] count:   39,  width:   57 us [46;70]      (  57 S)
 [ 2] count:    9,  width:    9 us [9;11]       (   9 S)
 [ 3] count:    5,  width:    5 us [5;6]        (   5 S)
 [ 4] count:   28,  width:    1 us [1;1]        (   1 S)
 [ 5] count:    8,  width:   38 us [35;43]      (  38 S)
 [ 6] count:    8,  width:   19 us [17;22]      (  19 S)
 [ 7] count:    9,  width:  193 us [164;231]    ( 193 S)
 [ 8] count:    9,  width:  116 us [94;137]     ( 116 S)
 [ 9] count:    4,  width:   81 us [76;91]      (  81 S)
 [10] count:    4,  width:   29 us [28;30]      (  29 S)
 [11] count:    7,  width:   13 us [13;14]      (  13 S)
 [12] count:    1,  width:  350 us [350;350]    ( 350 S)
 [13] count:    7,  width:    4 us [4;4]        (   4 S)
 [14] count:    5,  width:    7 us [7;7]        (   7 S)
Pulse period distribution:
 [ 0] count:    2,  width:    2 us [2;2]        (   2 S)
 [ 1] count:   12,  width:    5 us [5;6]        (   5 S)
 [ 2] count:    6,  width:    3 us [3;3]        (   3 S)
 [ 3] count:   29,  width:  110 us [92;130]     ( 110 S)
 [ 4] count:   14,  width:   11 us [10;13]      (  11 S)
 [ 5] count:   13,  width:   27 us [22;32]      (  27 S)
 [ 6] count:   14,  width:   39 us [33;49]      (  39 S)
 [ 7] count:   20,  width:   74 us [60;87]      (  74 S)
 [ 8] count:   12,  width:  216 us [181;271]    ( 216 S)
 [ 9] count:    8,  width:  166 us [144;175]    ( 166 S)
 [10] count:    4,  width:  318 us [289;347]    ( 318 S)
 [11] count:   10,  width:   17 us [15;20]      (  17 S)
 [12] count:    1,  width:  465 us [465;465]    ( 465 S)
 [13] count:    5,  width:    7 us [7;8]        (   7 S)
 [14] count:    4,  width:   57 us [52;59]      (  57 S)
Pulse timing distribution:
 [ 0] count:    1,  width:    0 us [0;0]        (   0 S)
 [ 1] count:    3,  width:    3 us [3;3]        (   3 S)
 [ 2] count:   10,  width:    4 us [4;4]        (   4 S)
 [ 3] count:   82,  width:    1 us [1;1]        (   1 S)
 [ 4] count:   77,  width:   57 us [46;70]      (  57 S)
 [ 5] count:   16,  width:   26 us [21;31]      (  26 S)
 [ 6] count:   18,  width:   37 us [33;43]      (  37 S)
 [ 7] count:   15,  width:    9 us [8;11]       (   9 S)
 [ 8] count:   10,  width:    5 us [5;6]        (   5 S)
 [ 9] count:   14,  width:   14 us [13;17]      (  14 S)
 [10] count:    9,  width:   84 us [73;99]      (  84 S)
 [11] count:   19,  width:    2 us [2;2]        (   2 S)
 [12] count:   12,  width:  168 us [137;196]    ( 168 S)
 [13] count:    7,  width:  226 us [219;232]    ( 226 S)
 [14] count:    9,  width:  119 us [115;129]    ( 119 S)
 [15] count:    7,  width:    7 us [7;7]        (   7 S)
Level estimates [high, low]:  15898,    427
RSSI: -0.1 dB SNR: 15.7 dB Noise: -15.8 dB
Frequency offsets [F1, F2]:   -2856,    611     (-43.6 kHz, +9.3 kHz)
Guessing modulation: No clue...

(then a few different signals, up to g205)
(all seen as either OOK or FSK with 1-2 pulses)
(probably noise, or maybe a bad decode between this and the last?)
(finally...)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

time      : 2024-05-24 14:08:57
model     : Fineoffset-WH24
ID        : 195
Battery   : 1
Temperature: 25.6 C
Humidity  : 74 %
Wind direction: 191
Wind speed: 1.4 m/s
Gust speed: 2.2 m/s
Rainfall  : 4472.1 mm
UV        : 2314
UVI       : 5
Light     : 78647.0 lux
Integrity : CRC

Replay command:

/usr/local/bin/rtl_433 -R78 -r g200_915M_1000k.cu8 -vvvv -Fkv

Output (stderr):

rtl_433 version 23.11-121-g86abae05 branch master at 202405232359 inputs file rtl_tcp RTL-SDR
[Protocols] Registered 1 out of 257 device decoding protocols
[Input] Test mode active. Reading samples from file: g200_915M_1000k.cu8
[Input] Input format "CU8 IQ (2ch uint8)"
[Baseband] low pass filter for 1000000 Hz at cutoff 100000 Hz, 10.0 us
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : @0.037105s
model     : Fineoffset-WH65B                       ID        : 195
Battery   : 1            Temperature: 25.6 C       Humidity  : 74 %          Wind direction: 207       Wind speed: 0.7 m/s
Gust speed: 1.0 m/s      Rainfall  : 3786.4 mm     UV        : 2301          UVI       : 5             Light     : 78430.0 lux
Integrity : CRC
Pulse data: 61 pulses
[  0] Pulse:    0, Gap:   58, Period:   58
[  1] Pulse:   57, Gap:   57, Period:  114
[  2] Pulse:   58, Gap:   59, Period:  117
[  3] Pulse:   59, Gap:   57, Period:  116
[  4] Pulse:   57, Gap:   60, Period:  117
[  5] Pulse:   56, Gap:   59, Period:  115
[  6] Pulse:   58, Gap:   58, Period:  116
[  7] Pulse:   59, Gap:   58, Period:  117
[  8] Pulse:   55, Gap:   58, Period:  113
[  9] Pulse:   59, Gap:   59, Period:  118
[ 10] Pulse:   56, Gap:   59, Period:  115
[ 11] Pulse:   58, Gap:   59, Period:  117
[ 12] Pulse:   56, Gap:   59, Period:  115
[ 13] Pulse:   58, Gap:   58, Period:  116
[ 14] Pulse:   57, Gap:   61, Period:  118
[ 15] Pulse:   55, Gap:   58, Period:  113
[ 16] Pulse:   58, Gap:   59, Period:  117
[ 17] Pulse:   58, Gap:   58, Period:  116
[ 18] Pulse:   57, Gap:   58, Period:  115
[ 19] Pulse:   60, Gap:   57, Period:  117
[ 20] Pulse:   57, Gap:   58, Period:  115
[ 21] Pulse:   59, Gap:   59, Period:  118
[ 22] Pulse:   54, Gap:  175, Period:  229
[ 23] Pulse:   58, Gap:   59, Period:  117
[ 24] Pulse:  114, Gap:   60, Period:  174
[ 25] Pulse:  173, Gap:   57, Period:  230
[ 26] Pulse:   59, Gap:   58, Period:  117
[ 27] Pulse:   58, Gap:  231, Period:  289
[ 28] Pulse:   61, Gap:  113, Period:  174
[ 29] Pulse:   60, Gap:  116, Period:  176
[ 30] Pulse:  114, Gap:  233, Period:  347
[ 31] Pulse:  232, Gap:  114, Period:  346
[ 32] Pulse:  232, Gap:  348, Period:  580
[ 33] Pulse:   57, Gap:   61, Period:  118
[ 34] Pulse:   55, Gap:  117, Period:  172
[ 35] Pulse:   58, Gap:  290, Period:  348
[ 36] Pulse:   59, Gap:  113, Period:  172
[ 37] Pulse:   59, Gap:   59, Period:  118
[ 38] Pulse:   57, Gap:  292, Period:  349
[ 39] Pulse:   55, Gap:   59, Period:  114
[ 40] Pulse:  116, Gap:  349, Period:  465
[ 41] Pulse:   56, Gap:  175, Period:  231
[ 42] Pulse:  174, Gap:   58, Period:  232
[ 43] Pulse:   57, Gap:  174, Period:  231
[ 44] Pulse:  174, Gap:   60, Period:  234
[ 45] Pulse:  116, Gap:  231, Period:  347
[ 46] Pulse:   56, Gap:  174, Period:  230
[ 47] Pulse:  350, Gap:   56, Period:  406
[ 48] Pulse:   59, Gap:  231, Period:  290
[ 49] Pulse:   60, Gap:   57, Period:  117
[ 50] Pulse:  347, Gap:   56, Period:  403
[ 51] Pulse:  232, Gap:   61, Period:  293
[ 52] Pulse:   56, Gap:   58, Period:  114
[ 53] Pulse:  117, Gap:  233, Period:  350
[ 54] Pulse:   55, Gap:   59, Period:  114
[ 55] Pulse:   58, Gap:  115, Period:  173
[ 56] Pulse:  292, Gap:  338, Period:  630
[ 57] Pulse:   57, Gap:  213, Period:  270
[ 58] Pulse:   31, Gap:  100, Period:  131
[ 59] Pulse:   43, Gap:   59, Period:  102
[ 60] Pulse:   21, Gap:    0, Period:   21
[Input] Test mode file issued 1 packets

I have not played with frequency or -r / -s options yet. I am considering just forking rtl_433 and fixing the value to always be WH65b as I do not have a WH24 to decode.

I have attached the log "wstation.log" as well as cu8 files from 198 to 209 inclusive.

wh65-bug.zip

zuckschwerdt commented 3 months ago

This is strange, both protocols have the same timing and message checksum, but the WH24 has a first byte (model code) of 24 and none of the Ambient Weather type share that code. No Ambient Weather message should start with 24 and the decoders check that.

Do you see both decodes at the same time? Or do they alternate in some way? Are you sure this is not some neighbours device?

Is there a chance to record a sample file?

zuckschwerdt commented 3 months ago

For a log: run the decoders verbose to also get the raw data they receive with -vv