Hack: DIY Arduino Smart Home Control Panel Uses OpenHAB & MQTT

We always admired the amazing hardware and software that DIY home automators can put together and Mat Smiths project to build his ultimate home control panel is a great example.

Mat is designing and building an Arduino based controller to deploy around his next home. The system uses an inexpensive OLED display and a rotary encoder that will be mounted in custom laser cut brushed stainless steel wall plates along with a capacitive touch sensor to wake it all up

The controller communicates with Mat’s OpenHAB home automation server via MQTT and can be programmed to monitor and control pretty much any systems around the home – such as entertainment, heating or curtains / blinds.

Here’s Mat’s latest update on the project. Make sure to check out his videos below too.

The spec for the ultimate home control panel

A number of months ago I became obsessed with the idea of controlling my room lighting using knobs in the wall. Crazy, I know 😉

Seriously though, most lighting automation systems do not use rotary controllers (i.e. knobs), but rather you have to keep your finger on a button until the desired light level is reached. Isn’t that so 1990s? Knobs are the way forward. Worse still, many only let you select “scenes” without even controlling individual light level. So I set about making my own digitally controlled lightswitch. The process has been one of research and learning new skills. Soon enough I stumbled upon the ultimate way for things within the home to communicate with other things: MQTT.

Here are my design goals for the ultimate home control panel for each room.

Aesthetics

Use physical buttons and lights NOT touchscreen. I find touchscreens great for web browsing but when I want to control lights and volume I need an accuracy and responsiveness that can only come from;

  • Tactile switches with visual feedback
  • Rotary controller knobs
  • Display screen showing levels as percentage (i.e. numbers) for fine adjustment

Look Sexy. DIY metal faceplates with push buttons conjure-up images of 1970s style control panels. Disabled toilets. Hobby aeroplane remotes. I’m going with brushed stainless steel faceplates with no visible screws, smaller LED-integrated tactile buttons, matching brushed steel knob.

Use numbers on the display. In the increased sexification of home automation, things have become too touchy-feely. Having controlled lights and music from my iPad, I get annoyed if you press in slightly the wrong place, or need to make that super-fine adjustment. Also I get annoyed by the ubiquitous slider and the lack of information it provides the user.

Installation

  • The faceplate must run at low voltage, requiring no special electrical certification
  • Connected with ethernet (CAT5, 6, or 7)
  • Powered over the same ethernet cable
  • Fit within a back-box readily available in shops: 47mm depth max

Arduino, MQTT & OpenHAB Powered DIY Smart Home Control Panel

Function

  • Use “Scene” buttons to quickly select the lighting mood in a room
  • Dim individual lights in a room to create your own scene
  • Quickly cycle between different lights in a room
  • Control music volume and see what’s playing (track title and artist)
  • Similar to light scenes, there should be audio “favourites” (i.e. radio channels, playlists, shuffle mode for a given genre, etc.)

Scalability

  • The unit is designed for a range of functions, but can be expanded later to incorporate more. e.g. lighting and audio modes have their special uses and displays. As it’s based on Arduino, the sketch can be updated by USB later.
  • “Thing” settings (i.e. how many lights in a room, the name of a light in the room, the name of a scene for a given room) should be queried from a server and downloaded to volatile memory at startup. These things are not stored in the unit.
  • We should be able to press an “update” button to pick-up the latest settings. Home automation installers and users change their minds all the time!

Interface

  • “WAF” is an offensive phrase used in #homeautomation talk. It stands for “wife adoption factor”. Maybe “GAF” – grandparent adoption factor? No – that’s swapping one prejudice for another. “HAF” will do nicely – human adoption factor. The controller must be the perfect balance between powerful and usable. I don’t mean “powerful for the geek, usable for the granny”. I mean “equally powerful and usable for both”.
  • This means: consistency of display and immediate access to primary functions. No menus, no prompts! Placement of buttons should be intuitive.
  • All light should cease when it hasn’t been touched for a while. No lights in the middle of the night!

The solution I’ve settled for is a “mode cycle” one. Like old digital watches. The mode button is set apart from other buttons and placed near the icon displaying the current mode. All other physical controls depend on the mode in question, and their function is intuitive given the placement. Consistency comes from the unit defaulting back to a “primary” mode after x seconds of not being touched. The display dims appropriately.

No products found.

Here’s Mat’s previous video from August 2014…

Here’s the latest demo of the progress so far from this month…

Reproduced from original post by kind permission of Mat Smith. Follow along on Mat’s on-going DIY home automation journey at hazymat.co.uk

hazymat.co.uk  :  MQTT.org  :  openHAB.org

Last update on 2024-03-14 / Affiliate links / Images from Amazon Product Advertising API

1 Comment on "Hack: DIY Arduino Smart Home Control Panel Uses OpenHAB & MQTT"

  1. That actually looks really excellent. Custom cut faceplates will make for a seriously clean build. I’d definitely be interested in some build notes or code snippets when they’re available as I’m working on something similar.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.