I took a look at a problem open2300 user often faced: there was a difference between rain_total in the history and the current value.
Somewhere in the memory map there was a hint and I double checked my memory dump:
Description of Patch
rain_total_reset(..) in rw2300 needs to changed to rewrite 12 times 0 (zero) starting at 0x043A when reseting the memory. This is really the location in the memory where the WS23xx stores its offset for raintotal.
After rw2300.c is patched recompile at least minmax2300.
Installation of Patch
Add the following lines to rain_total_reset(..) in rw2300.c
// Set value to zero offset table
memset(&data_value, 0, sizeof(data_value));
if (write_safe(ws2300, address, number, WRITENIB, data_value, command) = number)
History of Patch
I'm not sure this is quite right. 0x043A is the value from the rain sensor. I'm not sure whether the station overwrites the first two values there, or whether it is incrementing them based on some accumulated number of rain "pulses" stored in the sensor. I do know that changing the batteries in the remote sensor causes these to reset to zero.
I think the correct fix is to the history programs to use 0x0440 as the basis for comparing the rain values.
Overwriting the third value at 0x0440 will make all your history values incorrect in reference to rain-total.
I've got some java code that attempts to handle this in my openjaws program (See http://openjaws.googlecode.com
), class au.com.lastweekend.ws2300.WS2300, email me if you are having difficulty finding it through the svn browser at that site.
- 02 Mar 2008
Yes. I have noticed some strange behavior. In fact the patch is rubbish, I suppose. It is still best to use RAIN_OFFSET.
- 08 Mar 2008