Self made wall touch panel project

Tags: #<Tag:0x00007f2fb1487668> #<Tag:0x00007f2fb1487460>

Since I built my second touch panel recently, I wanted to share my project and post some details about it.

One of my goals has been that it needs to be at least a 15" touch display and of course the price should be right. So first of all I took a look at some Android driven tablets with 15" display or above - I just found one suitable device on Amazon. But this one had some disadvantages, the biggest one the already outdated Android version. So I decided to do something differently and use a system, I can control and maintain.

First of all, some pictures of the final state with my different UI tabs (the wooden frame is not perfect, but nice enough for me at the moment).

Some details

I used following parts for this:

The overall costs have been around 250€ (~150€ the touch display, ~60€ the raspberry kit, other small parts). So for this price range, I’m more then happy about the outcome, mainly because I can maintain, update, change the system as I want and I’m not depending on the goodwill of some hardware manufacturer (e.g. Android upgrade …).

During building my house, I already made 2 square holes into my walls where some cables ended (power, KNX, CAT). So for my first touch monitor on the ground floor, I just mounted the display onto the VESA mount inside the opening and put the Pi in the back too. The wooden frame has been then mounted in the front, but this left some gap between the monitor and the frame and didn’t look that nice.

So for the second one, I disassembled the display and removed the case. Luckily the touch display had some mounting brackets where I could screw it to the frame.

So with this, I had no gap anymore and the frame fits perfectly to the display. The display itself is very light, so I could just mount the frame with the help of strong magnets to the wall (for easy access).

The used Pi is also mounted on the wall inside the opening. All I needed now, was to plug the cables in.

The touch interface

On the shown touch panel, I’m currently using FullPageOS ( and the displayed page is a self-made web interface (developed with the Angular framework This one is served via a docker container (nginx) on my Synology NAS. openHAB itself is also running inside a docker container on the same machine.

On my first touch display, I’m still running a Raspbian, since back then FullPageOS didn’t support the touch events that handy. At least I couldn’t get it to work properly. On this one I’m also having a Pi cam connected which is activated if I’m not at home - still have to test if this works under FullPageOS, so I could switch to this too.

The display itself can be turned on/off or restarted via mqtt events, triggered by various events in my household with the help of openHAB (e.g. motion detector, via smartphone, time based …). With this, the power consumption is not that high, especially as the touch display doesn’t consume that much energy anyway. I haven’t messured it, but regarding the datasheet it takes 7W which would be ~15€ per year if it would be on 24/7. With the display off (0.5W) it’s even lower since it is turned off in the night and if nobody is at home. Same goes for the Pi which has no high consumption either, unfortunately it has no WoL, so it needs to run all the time though.

So this is it. If someone wants to get more details I’m happy to answer them of course.


Wow, a 15" display is big! That looks really nice!

I agree with you that being able to control the updates and keep the software current is a big win! Using a “cheap” Android tablet will leave you running an old Android forever. If there wind up being exploitable bugs in it, the chance you’ll get them fixed is low. Hopefully you can firewall them off… but this you can update as needed!

Very nicely done!

The link to FullPageOs is neat, too. I hadn’t bumped into that one before!

I wonder if anyone here has used one of the “magic mirror” setups to host a touch panel?

1 Like

@Sheppard - great project and 15" is an awesome size - have been wanting to do something similar for a while. FullPageOS looks interesting.

@Laufeyjarson - I thought about adding a touch screen to the bottom right hand side of my current MM, but finger prints are really noticeable on the mirror. At present I have a 21" screen standing up long ways but only on the left side of the mirror although did contemplate adding touch screen on the bottom right. Personally though I would keep the MagicMirror as is (in my case, I’m going to upgrade to a larger LCD screen maybe 29" or more later on to fit more modules on screen) and having the touch panel kept totally separate (I also built a front door lock/unlock RF to WIFI device which sits behind the mirror now as well, as the mirror sits in the front entrance, it’s conveniently close to the front door so well within RF range, allowing me to lock or unlock my front door from OpenHAB)

Anyways, I’d personally keep the touch screen totally separate from Magic Mirror due to finger prints being very visible on the glass!

(the mic and speaker are because it has Alexa built in)

EDIT: Highly recommend this method of hanging the mirror, as it’s very heavy and the french cleat is one of the strongest ways of mounting something on a wall…


That magic mirror display setup looks sweet, gives me some ideas for my future setup!

UI looks quite nice on the wall mounted screen. Yay for being able to control openHAB through the Web API.

@Laufeyjarson I have a magic mirror myself too (see Smart Mirror and OpenHAB). But this one has no touch. As @chimera already wrote - the fingerprints would be too visible and I actually don’t know if the touch would even work (depending on the technology the touchpanel is working on).

@chimera what kind of speakers are you using? Tried to put some behind my touchpanel to have some audio feedback, but couldn’t find small ones which don’t have that disturbing static noise via the audio cable.

@Cossey working with the Web API took me some time, but in the end it works. Only the feedback is currently not what I would prefer - at the moment I’m listening on the events. My plan is to look more into this and optimize it if there is time.

Here are some additional screens of the UI.

So currently, I can control the basics like shutters and lights, as well as some additional devices like power sockets (bathroom heaters, water pump …). I also added some CCTV stuff and it switches to a special screen if someone rings the bell (shows the front camera with some additional options like opening the garden door remotely). The audio/music tab shown here is triggering predefined playlists on my Sonos speakers which works really well. Especially my two young kids love this and they turn on their favorite music or audio book. After some idle time, the screen switches back to the time/weather tab automatically.

There are so many other things on my list to add as well as it is an ongoing project (e.g. other status informations, RGB control, …), but as usual not really much time left at the moment. :slight_smile:


I found a Logitech z205 speaker on (the Kiwi version of eBay :slight_smile:) for about $10. It’s USB powered, and works perfect with the Raspberry Pi.

You’ve done a great job on the Touch panel! Screenshots look terrific.

If you power it via PoE you can do it, e.g. Unifi can toggle PoE via CLI.

Thanks for the hint with the PoE-HAT. Haven’t know that yet.

Hi Sheppard, could you share your Angular project with us please? I’m considering doing the same in Vue, but have sufficient Angular knowledge to work out how you’ve implemented it.

Short note about wether to use touch displays or not.
If using mirror, touch displays is not going to work. Like Wolfgang says, fingerprints is a huge issue, (ofcouse… It´s a mirror).
Using mirror, you could go for voice control insted of touch. That make sense to me.
Using touch displays can be supplied with voice control as well.

My display (whenever I get to that part) will be a 24" inch monitor without touch, with voice controlled (Google Assistant), build into a frame like sheppard´s first message.

I do have a few concerns for my future monitor build.

Atm I´m running a test using a Rpi3B connected to a 24 inch monitor through HDMI (with resolution 1920 x 1080). It seems to be VERY slow when using habpanel and SVG floorplans. I really dont think the Rpi3B is capable of running this in a fast and smooth way. Using my workstation for the same panel, it´s very fast and smooth. So this is an issue of the Rpi 3B I believe. Maybe an Rpi4 will do. Otherweise I´ll have to find somethig as small as the Rpi but alot faster. (Odroid C2 perhaps).

I´m going for voice control (Google Assistant). I guess the best option would be to build in a Google Home mini into the frame to get the visible led respons as well. Unfortunatly it means that the frame width will be rather big. I havn´t figured this one out yet.

I will try to clean the code as much as possible and upload it to a github repo. But currently it is not that well documented and don’t expect that to happen in the next days. Unfortunately my holidays are over and my spare time besides work, wife and two little kids is rare. :slight_smile:

But as I said, I could clean it up probably faster and push it without much additional documentation. The code itself should be readable enough to work with it. At least I hope so. :smiley:



Thanks for sharing. I’m about to start a similar project also with a big screen. Did you consider using android via emteria.OS? My idea is to have two apps running:

  • first a full screen browser with MM working with OH via MQTT
  • the official Sonos app so I can browse and control all the Sonos devices in the house.


The French cleat is how I mounted my magic mirror too! Not sure if I have any photos readily available, but your cable management is much nicer than mine!

One thing I added to my mirror that I love is the Google Assistant API. I’m using it just to parse the voice command and return it as a string. From there I parse the string, and use the OpenHAB rest API to run commands. No touch screen necessary!

I use Alexa the MMM-Alexa-Skill and MMM-Alexa (or maybe the mmm-awesome-Alexa, can’t recall) module. Only because I have 6 x Amazon devices around the house already so keeps it all the same. I also use MMM-Mqtt module for feeding various information I get for OpenHAB, on the mirror too.

Check out Google AIY Voice and Orange Assist for two ways to get Google Assistant on RPis. There are plenty of other options. From personal experience, I can say the microphones in the AIY Voice kit are fantastic. For those who like Alexa, it’s possible to run her on RPi too.

Just an additional suggestion… you might want to try mic arrays such as ones similar to respeaker. They are able to pickup commands better in noisy conditions

Hmm I thought Google AIY was discontinued?
Second, it doesnt provide the four visuel leds which the mini and the home got, right? It may not be that important with the leds, but it´ll be a nice feature to have it.

The original one that required an RPi 3 was discontinued. But they still sell a smaller version that comes with a RPi 0W. Adafruit still has them in stock, I’m sure they can be found elsewhere.

For the leds, you can wire up your own if you want/need that. It has one LED, built into the button, that blinks and pulses to indicate what it’s doing and you can add more LEDs and script them as you will. I added a MAX7219 Display that scrolls what the script is doing.

The thing to realize with the AIY is it’s more like a project kit, not a fully fledged Google Assistant. You are expected to customize it and add to it but it isn’t a full fledged Google Assistant (e.g. you can’t play music or listen to the news through it, it doesn’t appear as a chromecast, etc.) but you can issue commands to OH, ask questions, run GA routines and the sorts of stuff you might want to in a custom display like this.

Lucky’s Orange Assist is a more fully fledged Google Assistant, but I’ve not managed to get it to work yet so I don’t know it’s limitations (if any). I think it can do stuff like play music though and it may even appear as a Chromecast and can be joined to groups. You are also on the hook to buy the microphone array.

I like the idea of having a small unit. I hate you´re display though :smiley: It wouldnt work in our enviroment. But I get the idea of having such a display for other use… Thats why the rather discrete four leds of the mini/home would be awesome in our enviroment/house…

I´m not sure if I could accept a non-full working Assistant… It´s a bit ackward from my original project, which is based on the Google Assistant connection, and where I used it alot. It would seem as a poor compromise to use then.
The Orange Assistant do sound like a better compromise. I have looked at it a coupple of times, but find it highly complicated when reading the turtorial :frowning:

From what I’ve read the fan on the PoE-HAT is rather noisy.