I did confirm that the SNR varied with temperature, with both daily and long-term cycles, assuming from thermal expansion/contraction in the lines and connections. I also observed dropouts when it rained.
The strangest thing was that there was also a hard 12-hour cycle: every morning and evening, at the same times, the SNR would suddenly drop (in the morning) and go up (in the evening) by several dB. I never figured out what it was, but I always guessed it was some equipment turning on or off that caused interference on the line.
One of the coolest parts actually was simply using GNU `date` to parse dates in natural language, so I could run something like `plotmodem 2 months ago to 1 month ago` to graph the data from the previous month, or `plotmodem 2 weeks` to see the last 2 weeks of data. I used `date` to convert natural-language dates to a standard format which I then parsed out of the CSV files with grep.
If it uses http basic auth, it's even easier: http://docs.python-requests.org/en/master/user/authenticatio...
Requests is a fantastic library.
My cable modem provides a status page with info about signal to noise ratio and other stats. I planned on adding more details to the script by scrapping from that page, but it requires a login first and I've never taken the time to learn how to manage that kind of state, as I do most scripty/webby things with raw requests from python's urllib.request module, like a plebian.