Low cost remote I/O?

ecborgoyn

Active Member
I just completed a DHW and radiant heating system upgrade and am exploring some automation options. I'd like my future HA system to be able to monitor water temps and control a few pumps.

Along with the plumbing upgrade I installed a bunch of 'ports' in various places so that I may install temp probes in the future. I'll be able to monitor storage tank temp, temp coming from the thermostatic mixing valve, temp of the radiant loop from the HX, etc, etc. These temp probes will either be thermocouples or 1-wire temp devices (in thermowells if necessary).

I know, I should first get a HA system in place and then connect the devices.... But I like the engineering design part of the exercise too. And I'd like to think about the remote I/O system as I put together my DHW/Radiant pump relay control. e.g. would the remote i/o provide dry contacts or voltage outputs??

Also, I'm updating the control system to allow a HA system to control various pumps (via relays). For example: Since the primary side of the radiant system heat exchanger uses the DHW tank I'd like to have a timer run the pump periodically even during the summer. This is necessary to prevent things like Legionella... Currently I manually run the pumps in the summer when I think about it.....

Anyway.... I'm looking into options for 'remote i/o' subsystems. I read about the CAI Webcontrol device. It looks interesting.... Is it robust? Any problems with it 'crashing' and putting my pumps into some bad state? What about devices like the 'Click PLC'? And some 1-wire relay boards.

What do folks use for low cost, but robust remote i/o? I suppose I'm thinking of a ethernet link but even willing to consider 232/485/etc. It would ultimately be controlled by some HA controller.
 
I think the CAI Webcontrol is a very good option. Other options I would consider are the ADI Ocelot (dated, but rock solid) and a custom Arduino based solution.
 
I am thinking of using Arduino. There is existing code that look useful - IOduino and Firmata.

A bit on IOduino:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1280840431

Firmata:
http://firmata.org/wiki/Main_Page

There do seem to be some perl modules to use firmata. I found
permata and Device::Firmata

ioduino has less functionality but also a simpler protocol. There are a few more specific applications like the wifi radio project on mightyohm.com to provide additional inspiration and ideas.
 
Thanks for the excellent pointers to the Arduino, and Ocelot stuff. Some good lunch-time reading. I'm learning a lot...

I was wondering if folks were using the Arduino for HA applications. I've not used it personally, but people around the office have used the platform for robotics stuff. I'm a bit concerned that It's little more than a toy.

My purpose for the thread is to discuss platforms like the Arduino, CAI WebControl, etc. their robustness, and use in mission-critical applications. I'm less concerned with applications non critical such as measuring temps just because it's interesting and fun to do so. And even lighting control applications are not critical in the strict sense (you might argue security lighting). But when I have a device controlling relays that control pumps/circulators that ultimately control room temperature and energy use I get more concerned about robustness, availability, etc, etc. I don't want to return home from vacation to find that my heating system was running constantly for a week, and it's July (FYI, I live near Pittsburgh, PA). (Granted that my day-job was at one point building nuclear power plant computer-based control/protection systems).

On the subject of robustness my plan is a somewhat fail-safe design. I'd be happy if/when the controller device fails that the outputs assume a known state. For example if the controller outputs are voltage levels, I'd like to have the outputs OFF on a reset or failure. Do devices like the Arduino etc. implement a hardware 'deadman'?? This would reset or shutdown the processor and outputs if the firmware crashes or misbehaves in some fashion. Is this concept implemented? Some microcontrollers have the timers and logic, but the board must implement the shutdown/reset logic.

So I guess I'm surveying to see what I might use for low cost NON mission critical apps and mission critical apps. Plus I don't mind writing code for system integration.

For my DHW and radiant heating system, for now I'll be installing some RIB relays for 120V pump/circulator controls and deferring on a specific controller as I learn more.

Any other thoughts on the subject??
 
What you call a deadman is, I think, the same as commonly called watchdog timer in micros. I did find a link for using the watchdog on Arduino:
http://tushev.org/articles/electronics/48-arduino-and-watchdog-timer

But I would still be hesitant to use this for "mission critical" applications. A watchdog time does not magically fix everthing. If the code is not done properly you can still have misoperation. For things like space heating and cooling it would be fairly easy to use a traditional thermostat to take over if the temperature got outside a set range. Set the range wide enough that it would never take over unless the automation system failed.
 
Absolutely, a watchdog timer is another name for a deadman timer...

I fully understand that a watchdog timer is NOT the Holy Grail, but only one component of a robust solution. The watchdog only protects from (and perhaps recovers from) some failures where the s/w and h/w either stop running, or stop running correctly (in such a way that the watchdog timer is not updated correctly and periodically). Quality s/w and perhaps h/w redundancy are other elements of a robust system. A watchdog timer is just the first step... A dead or confused automation system should cause a fallback to a reduced functionality system (thermostat for instance).
 
Back
Top