Rain 8 or similar system

It appears that CQC is periodically accessing the Rain8Net valve, hence resetting the unit's timer. mcsSprinklers does not normally defeat the safety provisions designed into the Rain8Net. It will command a postion, confirm that the position was achieved, repeat if necessary and then have no communications with the valve it until the scheduled time off. It will periodically poll the counter/switch and this does not reset the timer if the user has something connected to this input. Some users still want the control at the host and a re-command of the valve position every minute and mcsSprinklers makes that option available. Similiar provisions also exist for pump control where the failure implications of a pump valve not turning on is more severe than the failure mode of a valve remaining on. mcsSprinklers operation is the same when running standalone or as a Homeseer plugin
So it appears as if the CQC driver stops polling the valves then it will work properly. But a point came up which is very valid and I'd have to agree point to a 'bug' or perhaps not the best design/implementation on the WGL side. If no polling of the valves are done then on the Pro you would lose 2 way status in the case of a zone turned on manually via an onboard button. It seems you would have to be polling to get that status. I am certainly not an expert on these devices but it seems to me a built in watchdog timer should not be affected/reset just by mere polling of the valve. It's disappointing because I sprung for the Rain8 (and Pro) to have all these features over just doing my own implementation with HAI or Elk relays like I did in the past and it seems the only thing I have out of it is surge protection which I could have gotten with Zap Control from T Mfg. I'm still hopeful this can all be worked out though.

DavidL - If you are reading this do you know if this is an issue with Mainlobbys implementation? That plugin does advertise 2 way status which from what I see would break the cutoff timers like it does in CQC?
 
The Rain8 firmware is properly desinged in my opinion. If an individual value is accessed then this affects the timers, but if the module or input port is accessed it does not. If you want to poll the device for status then poll the module and decode the eight valve statuses.
 
The Rain8 firmware is properly desinged in my opinion. If an individual value is accessed then this affects the timers, but if the module or input port is accessed it does not. If you want to poll the device for status then poll the module and decode the eight valve statuses.

I looked at the CQC driver code and when it periodically polls, it just issues a status request.
 
I intentionally set a Rain8Net EPROM timer to 4 minutes while the mcsSprinklers schedueld run time was much longer. Below is a caption of the IO log. It shows that after a command is provided {40 01 31} and periodically polling of the module {40 01 F0} is performed that the Rain8Net returns the expected ON status {40 01 01} until 4 minutes later {40 01 00} at which time it shows the valve OFF. This OFF status is acted upon by mcsSprinklers to turn the valve back ON since it was prematurely closed. It repeats the same pattern.



Rain8 Net(0) opened on 3

7/4/2010 3:39:22 PM | 4879687 | Log Cleared
7/4/2010 3:39:31 PM | 4888296 | NET(0) OUT | 40, 01, 31
7/4/2010 3:39:31 PM | 4888328 | NET IN | 40, 01, 31 Valve Command Acknowledge
7/4/2010 3:39:31 PM | 4888328 | NET(0) OUT | 40, 01, F0
7/4/2010 3:39:31 PM | 4888343 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:39:31 PM | 4888343 | NET(0) OUT | 40, 01, F0
7/4/2010 3:39:31 PM | 4888375 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:39:31 PM | 4888390 | NET(0) OUT | 40, 01, F0
7/4/2010 3:39:31 PM | 4888421 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:39:31 PM | 4888421 | NET(0) OUT | 40, 01, F0
7/4/2010 3:39:31 PM | 4888437 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:40:00 PM | 4916781 | NET(0) OUT | 40, 01, F0
7/4/2010 3:40:00 PM | 4916796 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:41:00 PM | 4976765 | NET(0) OUT | 40, 01, F0
7/4/2010 3:41:00 PM | 4976796 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:42:00 PM | 5036781 | NET(0) OUT | 40, 01, F0
7/4/2010 3:42:00 PM | 5036796 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:43:00 PM | 5096781 | NET(0) OUT | 40, 01, F0
7/4/2010 3:43:00 PM | 5096796 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:44:00 PM | 5156781 | NET(0) OUT | 40, 01, F0
7/4/2010 3:44:00 PM | 5156796 | NET IN | 40, 01, 00 Status Response
7/4/2010 3:44:00 PM | 5157093 | NET(0) OUT | 40, 01, F0
7/4/2010 3:44:00 PM | 5157109 | NET IN | 40, 01, 00 Status Response
7/4/2010 3:45:00 PM | 5216796 | NET(0) OUT | 40, 01, 31
7/4/2010 3:45:00 PM | 5216828 | NET IN | 40, 01, 31 Valve Command Acknowledge
7/4/2010 3:45:00 PM | 5216828 | NET(0) OUT | 40, 01, F0
7/4/2010 3:45:00 PM | 5216843 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:45:00 PM | 5216843 | NET(0) OUT | 40, 01, F0
7/4/2010 3:45:00 PM | 5216875 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:45:00 PM | 5216906 | NET(0) OUT | 40, 01, F0
7/4/2010 3:45:00 PM | 5216921 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:45:00 PM | 5216921 | NET(0) OUT | 40, 01, F0
7/4/2010 3:45:00 PM | 5216937 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:46:00 PM | 5276765 | NET(0) OUT | 40, 01, F0
7/4/2010 3:46:00 PM | 5276796 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:47:00 PM | 5336781 | NET(0) OUT | 40, 01, F0
7/4/2010 3:47:00 PM | 5336812 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:48:00 PM | 5396765 | NET(0) OUT | 40, 01, F0
7/4/2010 3:48:00 PM | 5396796 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:49:00 PM | 5456765 | NET(0) OUT | 40, 01, F0
7/4/2010 3:49:00 PM | 5456781 | NET IN | 40, 01, 00 Status Response
7/4/2010 3:49:00 PM | 5457062 | NET(0) OUT | 40, 01, F0
7/4/2010 3:49:00 PM | 5457093 | NET IN | 40, 01, 00 Status Response
7/4/2010 3:50:00 PM | 5516765 | NET(0) OUT | 40, 01, 31
7/4/2010 3:50:00 PM | 5516781 | NET IN | 40, 01, 31 Valve Command Acknowledge
7/4/2010 3:50:00 PM | 5516781 | NET(0) OUT | 40, 01, F0
7/4/2010 3:50:00 PM | 5516796 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:50:00 PM | 5516812 | NET(0) OUT | 40, 01, F0
7/4/2010 3:50:00 PM | 5516828 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:50:00 PM | 5516875 | NET(0) OUT | 40, 01, F0
7/4/2010 3:50:00 PM | 5516906 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:50:00 PM | 5516906 | NET(0) OUT | 40, 01, F0
7/4/2010 3:50:00 PM | 5516921 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:51:00 PM | 5576765 | NET(0) OUT | 40, 01, F0
7/4/2010 3:51:00 PM | 5576796 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:52:00 PM | 5636765 | NET(0) OUT | 40, 01, F0
7/4/2010 3:52:00 PM | 5636796 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:53:00 PM | 5696765 | NET(0) OUT | 40, 01, F0
7/4/2010 3:53:00 PM | 5696781 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:54:00 PM | 5756765 | NET(0) OUT | 40, 01, F0
7/4/2010 3:54:00 PM | 5756781 | NET IN | 40, 01, 00 Status Response
7/4/2010 3:54:00 PM | 5757062 | NET(0) OUT | 40, 01, F0
7/4/2010 3:54:00 PM | 5757078 | NET IN | 40, 01, 00 Status Response
7/4/2010 3:55:00 PM | 5816796 | NET(0) OUT | 40, 01, 31
7/4/2010 3:55:00 PM | 5816812 | NET IN | 40, 01, 31 Valve Command Acknowledge
7/4/2010 3:55:00 PM | 5816812 | NET(0) OUT | 40, 01, F0
7/4/2010 3:55:00 PM | 5816828 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:55:00 PM | 5816828 | NET(0) OUT | 40, 01, F0
7/4/2010 3:55:00 PM | 5816859 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:55:00 PM | 5816890 | NET(0) OUT | 40, 01, F0
7/4/2010 3:55:00 PM | 5816921 | NET IN | 40, 01, 01 Status Response
7/4/2010 3:55:00 PM | 5816921 | NET(0) OUT | 40, 01, F0
7/4/2010 3:55:00 PM | 5816937 | NET IN | 40, 01, 01 Status Response
 
I intentionally set a Rain8Net EPROM timer to 4 minutes while the mcsSprinklers schedueld run time was much longer. Below is a caption of the IO log. It shows that after a command is provided {40 01 31} and periodically polling of the module {40 01 F0} is performed that the Rain8Net returns the expected ON status {40 01 01} until 4 minutes later {40 01 00} at which time it shows the valve OFF. This OFF status is acted upon by mcsSprinklers to turn the valve back ON since it was prematurely closed. It repeats the same pattern.

Warren Lohoff at WGL suggested that the problem may be the frequency of polling. The CQC driver polls at 3 second intervals and that may be too fast to allow the background timer actions to kick in.

He said to try a 1 minute poll interval which is about what it appears mcsSprinklers is doing based on your logs.
 
I 'think' I modified the driver to poll every one minute and it seems to work but I'd probably feel better if a real developer did it officially. Thanks Michael and jkish for looking at it!
 
Back
Top