System integrity and home automation

What IS the problem ?
Whether it is the HVAC controller, the hardwired alarm system, the 
home automation controller, or just one of the lamp modules, 
sometime IT IS GOING TO FAIL.

Obviously, quality pays off by lowering the probability of failure.  
However, even those devices which cost the most and are scrupulously 
maintained still do fail.    ( like at Kennedy Space Center ).

Regardless of the amount of money you put into your system, you 
cannot have absolute reliability without an alert and caring human 
included as an integral part of your system.

Whether that person is you or a paid guard, you cannot assume that 
your system is functioning properly unless you periodically verify it 
personally.

With the addition of a computer into the equation, we now have 
another controller which can test the reasonableness of the other 
systems and augment their behavior.

We can also very carefully craft a system which has 'holes' in its logic.  
You can make things which you think are perfectly reasonable, but have 
operational or logical problems.  And the controller can 'hang' or fail.

The more complex a system you create, the more difficult it is to verify.  
Think about how you want your system to behave, how you want to 
expand it, and re-think it often.

What's the probability?

Although it would be possible to spend enough time calculating the 
probability of failure of any complete system, it would be very costly.  
There are too many variables.

Because the devices are usually inexpensive, most users just replace 
them and never say anything.  This makes it difficult for device 
manufacturers to publish any MTBF figures.

The best thing that can be said about X-10 world is that they have sold 
many millions of devices and that there is a large community of 
advocates who use and install them.  If they were really flakey, there 
wouldn't be a market.

The probability is that you will find some devices which are dead on 
arrival or die soon, and some which last for 10 years or more through 
lightning and rain.

Generally, if a device performs for the (warranted) first year, it will 
probably last for a very long time.  If it's going to die, it will likely 
do so early in its life.

How do you build a reasonably reliable system?

Buy quality devices.
Although almost all of the X-10 compliant devices are manufactured 
in the same Chinese factory, there are differences in the production 
specifications for each of the private labels.

These differences are generally not published, but it is known that 
they involve such things as component quality and how well each 
unit is tested.

In general, you should expect that brand names which are known to 
be better quality will be better tested.  Any 'bargain' devices you buy 
probably are known to have come from 'weak' batches.

This does not mean that the better quality devices won't fail, nor that 
a 'bargain' module won't work for 10 years.  Buy the bargains if you must,
but buy several at a time.  Odds are that some of them will be real keepers.

Use existing controllers for specific subsystems.
Many homes already have a HVAC system which is reliable and simple.

Many homes already have a standalone burglar system, and most of these have 
some type of monitoring $ervice.

Although you can eliminate all of these functions with your home 
automation system (XTension); by doing so you would be creating a 
'single point of failure' in your system.

By orchestrating all of the above into a single system, you can 
improve the probability that your system will survive Murphey's 
Laws.  
ie:  More devices = more potential failures, but if you are really interested 
in integrity, you want to know when anything in the system fails.  
Use the systems you have already.  Monitor them and announce what you can 
about any significant changes.

Don't be disturbed by too many alarms.

You certainly don't want the system to be annoying, but you surely
want the system to be "a little bit more critical than it needs to be",
rather than a little bit "less"...  It follows that you are going to have
to put up with some 'false alarms'.

Pay attention to your system: 
(Don't get caught by the "boy who cried 'Wolf!' " syndrome.)

Centralize the monitor function-(Work with the existing controls.)

The home automation system can provide the central control and 
monitor function.  With simple X-10 input/output devices you can 
both sense behavior of those subsystems and issue simple commands 
to them.

By integrating these subsystems into your home automation system, 
you can watch and log their behavior and even interact with them.

Ok, How ? 

A common output device from X-10 is the 'Universal Module'.
Connect two wires from the screwposts of this module to any system
which is triggered by a 'contact closure'.  You can then send X-10 
ON/OFF commands from (XTension) which are received by the Universal
Module and translated into a contact close/open. Your HVAC or alarm 
system can then detect the change and react accordingly.

A common input (sensor) device is the 'PowerFlash' from X-10.
By connecting the input screwposts of the module to the low-voltage 
output of your HVAC system, you will get a X-10 ON/OFF message 
whenever the blower cycles (for example).

You might want multiple sensors if you have multiple zones etc.
The same can be done with the outputs of your alarm system.  Most 
systems will provide some simple signal which indicates that alarms 
have occurred or that the system has been disabled.

You can expand your home burglar system by having the home 
automation system monitor add-on sensors and conditionally send
commands from XTension to the alarm system to 'set panic mode' etc.

You can do the same with your HVAC system, adding duct 
controls, booster fans and set-back controls.

Redundant home automation computers
If you have two or more computers, then you can have redundant 
systems.  You also need two X-10 controllers.

Set up one to assume that it is the master, and the other to assume 
that it is the backup.

The backup always monitors the behavior of the master, and if the 
master fails, the backup can take itself out of 'monitor' mode and take 
over control of the system.

The backup would then try to restart the master, and on discovering 
that the master is again in control, the backup would put itself again 
into 'monitor' mode.

All of the above can be done easily with the Macintosh, AppleTalk, 
and XTension.

Good thoughtful 'feedback'
You must incorporate 'feedback' into your system such that whenever 
you issue commands, you should always 'see' some response, regardless 
of the current state of the system.

For example, you're going to bed and the lights are already off.  You 
signal that you are going to sleep, and the system has failed or fails 
to receive your signal.  

If you don't see a lamp come on and go off, or something then how 
do you know that you should go to sleep yet?

You can easily create scripts which always 'toggle' a lamp next to 
you whenever you issue such commands.

You should always 'see' some response from every command that 
you give to the system.

Avoid setting addresses of units such that they are controlled directly 
from switches.  

Always have the computer control things, and you will always 
have good acknowledgement of proper system health.

For example, set a lamp to A1.  When you want to control the 
lamp, you use address A2 (or P3, it doesn't matter).  You provide 
scripts which respond to commands for A2, by controlling the lamp 
on A1.  ( XTension lets you give reasonable names to these units )

Battery-backup
Some elements of the system can continue to function through 
'brown-outs', but ultimately on longer outages, the batteries will 
deplete.

Because brown-outs are more likely, the use of a battery is specially 
worthwhile.

Your home automation system can detect long term outages and can 
perform any necessary scripts for notification, log the event, and then 
shut down softly.

Use of a battery-backed powerbook is both a blessing and a pain.  
Although some can suffer very long power outages, it is very difficult 
to restart one after it has 'hung'.

If you use a laptop, make it the backup controller.  

Thus if the master is not battery-backed, and is plugged in to a X-10 
appliance module, the standby machine can turn off the master if 
the power is on and the master is not responding to normal 
checkpoints.

If the standby detects that the master has 'hung', but the power is still on, 
then it takes over control of the system and attempts to restart the master.

Once the master has assumed control, the standby resumes its monitor 
mode.

If the standby detects a power fail, it assumes that the master has failed 
also.  It continues to monitor the status of the power.

When power is restored, the 'backup' immediately assumes control of the system 
and then looks for the master to complete initialization.  After which the backup
assumes its normal monitor role.

All of the above can be done easily with the Macintosh, AppleTalk, 
and XTension.

Simplicity versus bother
No solution should create a problem greater than the problem it is 
supposed to solve.

Don't create a system which is so complex that it becomes a bother to 
maintain.

The more complex the system, the more prone it is to failure.  The 
greatest chance for 'failure' is that the system is in-completely 
contructed.  

Although you can create very complex and solid systems, it takes 
thought and testing.  Don't scrimp.

Frequent system checks by a caring human
You should have a procedure that you perform frequently which 
verifies the proper behavior of all critical units.

Prompt maintenance of any failed device or program
Don't let the system deteriorate, it will become a liability.

If something can't be fixed promptly, it should be disabled so that it 
doesn't become a confusion to the rest of the system.

Keep spares handy.  
Really, you like the system, keep it up.


Summary
Buy better quality devices
Use multiple autonomous controllers
Use redundant home automation controllers
Battery-backup
Check the system often
Incorporate feedback in your system
Be aware and tolerant of controller speeds and wireless 
'inconsistencies'.
Maintain everything in top condition