I cannot see any other communication from vis that is different from acu-link.
There are R1 and R2 requests, and R3 requests in mode 3 with the 0x201 setup command.
I can't see any data returned by the 0x201 command; it seems to return two bytes of zero.
Experimentally, if the station starts in a good state, and I issue 0x0103 commands, it returns successive 33-byte lines of data until eventually it times out during a request. Continued 0x0103 commands continue to time out.
Sending an 0x201 command resets it so that further 0x0103 commands return data, until there is no more and it times out as before. Unless 12 minutes has passed, there won't be any more actual weather data.
I have figured out most of the R3 data - or at least, the historical weather data that matches the CSV returned by acu_link. I thought it was simple enough, that after an initial header that each 33-byte record returned corresponded to weather data for one 12-minute interval. But it's not quite that. The data appears to be in 33-byte chunks, true, but it's offset from the records as read. Mostly it's offset by about 8 bytes, but sometimes by about 15. That means the rain data is in the "next" line.
Starting from the top, there's about 17*33 bytes of variable-length header that I have not decoded at all. Then there's a magic marker "ff aa 55", then at a fixed offset a 16-bit value that is proportional to the number of data records to be downloaded
(N = (x-768)/257). Then there are that many 33-byte weather data records, which as I say are not aligned with the USB records, most recent first. Then a final record which includes a timestamp.
The timestamp does not seem to include a seconds field, yet CSV data from acu_link does. Also, the times do not line up exactly - it may be that the most recent record is from 12 minutes ago although the timestamp seems to match the current time. Also, the clock on my weather station may be off; I have not checked. For VIS, as I recall it was recommended to set the clock slightly slow, or at least not in advance of the computer time, to avoid unspecified problems.
I have not yet cleaned up my code into one single program. There's one to read R3 data and make a hex data dump, and another to read the data dump. That also works to read transmogrified data from e.g. "tshark -x -V -r xxx.pcap" and possibly debug data from VIS.
They are in Perl because that's what I'm familiar with.
rd-acurite-log.R3.pl - read the hex data and write whitespace-separated records for gnuplot
rd-acurite.R3.pl - read the R3 data and write hex
rd-tx-usb.pl - convert tshark output
Andrew