Buttons As Sensors

There are lots of buttons around the average home but in the smart home most of them can become sensors as well as control interfaces. A button typically has on stable states, which is off. A button is momentarily on when pressed.

We also have switches in our smart home but these typically have two stable states, on and off. We also have some that are momentary on-off-on switches but that's another story.

Whilst we aim for a zero-touch user experience as much as possible, switches and buttons provide another way to do things and sometimes manual control is more convenient. A good example of this is the buttons next to our bed, which can easily be reached quickly.

The only real challenges with buttons are:

It is a good idea to provide some clear indication that a smart button has been pressed. This may be obvious, depending on what it actually does but, one technique we use is to provide an audible beep when smart buttons are pressed.

Models

We use common models for all the sensors and all the types of sensors connected to our Home Control System. Combined with technology abstraction this means that any sensor added inherits all the capabilities supported by each model and our smart home. Buttons are no exception and every one connected becomes instantly very smart. They can all generate or generate voice announcements if required or trigger an alarm.

The way we model buttons means that they can be physical buttons or software buttons (in an app or web interface) or both. This gives us a huge amount of flexibility and means that one logical button can have many physical implementations. It also means that every physical button can also exist as a software button, which makes it very easy to test things.

Our model for switches supports really easy configuration to enable them to pretty much anything, including providing occupancy information into our contextual smart home and running scenes.

Wired

For the best possible reliability and performance, our preference is to use wired switches where ever possible for physical buttons. They require no batteries and also have very low latency. Low latency results in the best possible user experience. When you press a button or switch, you really want an instant response!

When we connect buttons to Arduino processors, we prefer to use interrupts to detect button presses, as this provides a much faster response.

Example: 

Our initial approach to automation of our bathroom heated towel rail was based on allowing anyone to turn it on, simply by pressing a smart button. Our contextual smart home will then extend the time the towel rail is on by a set time (typically 30 minutes).

Wireless

In some instances it is not possible to run wires, so we use wireless Z-Wave buttons and switches.

Pendant or wrist worn alarm buttons are also a good example of wireless buttons used in telecare or assisted living.

Momentary Switches

Momentary push switches can also be considered as buttons and we use them to control lighting, dimmable lighting, blinds and curtains.

It is important that their function is obvious and intuitive, so coloured push switches make a lot of sense. A green push button in our current home will typically trigger fresh air for example.

Keypads & Keyfobs

Keypads are essentially a collection of buttons from a sensor point of view. Each an every one could be configured to do something unique in the smart home. Similarly, we can also configure buttons that appear in other user interfaces, such as apps on Smartphones and even within web pages.

This Aeotec Z-Wave keyfob is a good example of a collection of wireless button sensors. Although it appears to have only 4 buttons it actually has the ability to act as 8. Each can be easily configured to control devices, run , etc. Each one also provides proximity information into our contextual smart home as the keyfob is only used within our home.

We have https://dreamgreenhouse.com/projects/remotes/aeotec.phpproject on the Aeotec keyfob.

Some Use Cases

Our front door bell is an example of a button being used as a sensor. When it is pressed, the door bell rings as expected. Our smart home sees that the door bell has been pressed and this provides occupancy information, meaning the porch zone is now occupied. Occupancy is a trigger for a porch light , meaning the porch light turn on if it is also dark outside. The door bell also triggers a security camera. All this is easily configured for one simple press of a button! :-)

We have panic buttons beside our bed and near the front door.

We have a button to provide fresh air in our bathrooms and toilets. These extend the time the extractor fans are on by 15 minutes.

We have a button that extends the time the hot water heating is on for 30 minutes. This is useful when one of the family wakes up late or comes in from the gym or doing sports and requires a shower.

We use buttons to control heated towel rails which are linked to a controller, to enable adaptive schedules. The button is clearly labelled so that it's function is obvious. When it is pressed the controller extends the time the heated towel rail is on by 30 minutes (typically). Our smart home also sees that the button has been pressed and this provides occupancy information, meaning the bathroom is now occupied. Bathroom occupancy can result in many automated actions. These are appliances that are hard to automate beyond a basic schedule because you don't know if the towels on them are wet or have been hung outside on the line to dry.

We have a button that triggers the 'guests arriving' scene. This scene does a number of things to make our home more welcoming to guests.

We have a button that triggers the 'perimeter check' scene. This scene is manually triggered if we hear something unexpected at night. Our contextual smart home can also trigger it automatically if it sees any suspicious behaviour. It does a lot of things! This includes turning external lights on our drive, in the garden, along paths, etc. It also checks for recent movement and triggers external cameras to capture media at the highest quality. Our contextual smart home then reports back with its assessment of the situation.

Touchless buttons are often used to activate toilet flushing. A small infra-red proximity sensor is used to enable a button that does not physically need to be touched.

Further Reading