Home Assistant Community

HA SwitchPlate - DIY LCD Touchscreen wall switch replacement


Had the same problem I think

Have you the got
hasp_plate01_00_backlightbysun.yaml in your Packages folder

that dims the back light base on the sun

what happen to me was I turn it off in HA the next day I turn it on in HA
but the screen did not turn on then I change the Diming Slider to 100% and it came back on

think it code me a little bug (most likely a user problem) go to try to recreate it tho



Okay so replugged the plate in and restarted HA. All the automations from the plate01 package came back up defaulted to off so I turned them all back on, then I triggered FirstTimeSetup again and it seems to be working fine now. But I didn’t change anything. I’ll let it go again tonight and see how its doing in the morning.



@luma Great Work! Thanks a lot. This project is awesome. I got the panel up and running in no time.

I have one question though Can it somehow display non-ascii characters? for example °C ?

1 Like


The panel can receive °, but Home Assistant has serious problems sending single-byte ascii characters. I raised an issue on this a while back that remains open. At some point I’m going to have to dig back into this and maybe implement some godawful hack because I want ° to work.

The 'ascii' codec can't encode character '\xb0' in position 0: ordinal not in range(128) message appears to be the root cause here. High-ASCII (128-255) values seem to cause problems w/ Hass’s MQTT stack.



Thanks. I see…

I have one other question. The current TFT file contains several pages but only three are selectable via the theree pages on the bottom. I was thinking it would be nice if every page button could cycle through a few pages.

so for example I have the scenes page on the first page button.If i now have two or three scene pages it would be nice if that first page button could cycle through the scene pages.

It is possible to do via automations. Just wanted to know if anybody has thought on hoot best do that or already has something like this implemented…

Also I would like some switches. Currently all the pages only have dimmers or buttons. Has someone implemented a switch (I guess another automation)?



Yes someone implemented this previously. The left button automation deferments the current active page number by 1 and the right button increments the current active page number by 1 instead of just setting the page number. The middle button could be a “home” button. Then use the button labels as you like to put arrows ( < and > ) or a plus and minus ( + and - ).



HASP v0.28

Some major updates here in all 3 software components. We now have full update capabilities for both ESP and LCD via browser upload or HTTP download from GitHub (or elsewhere).

Arduino code updates

  • LCD firmware updates fixed (finally!). Added web upload through browser and fixed downloads from GitHub.
  • Updated version.json to include LCD versioning
  • Better device startup handling to avoid flood of activity at boot
  • Change mqttSensorTopic to be on it’s own topic to address Hass JSON parsing errors
  • Fix prompt for password on ESP firmware updates when no password assigned
  • Added handling of dangling LWT messages if the device has rebooted quickly

Nextion LCD updates

  • Added global variable p[0].b[2].val to track LCD version
  • Minor change to background color for better contrast
  • Added QR code on page0 for use with WiFi autoconfig (or anything else you can think of)

Home Assistant automation updates

  • Update clock for 12 hour time
  • Modify plate01 status sensor to address Hass JSON parsing errors
  • Update calendar to omit day (so just Month Date), set for auto-font size, and only fire at midnight
  • Add light toggle page 3, demonstrating two-state buttons to switch on/off single lights or groups.



Thanks. For the suggestion.

However I was looking for something different.
3 buttons on the bottom. eg. Lights, Status, Media

When I press lights each click cycles through different lights related pages
When I press status each click cycles through different status pages
When I press Media each click cycles through different media player pages

What do you think?



@squirtbrnr has outlined the approach above. This is something that I think is valuable but is also hard to generalize for all users. As such, I’ll leave that as an exercise for the user. The automations provided are meant to be customized, and learning to do so is how you can make the HASP work in your own environment for your own use case.

Ask and you shall receive! Version 0.28 now includes a page of toggles on page 3.



Then you might want to check out post 140. Post 215 is what I was describing earlier. You might need a lot of input numbers and a lot more page automations…



Not impossible but it would take some doing. You can modify the HMI to add more 4-button pages (currently there are 3 pages like that), but to do so you would need to select some other page to delete as we’re near the limit of RAM on that device. Alternately, you could use the same page for each of the “lights” pages but cycle the text displayed on each button or something like that.

Again, this project is meant to be customized for your own use. Expect to dig into the automations to meet your own needs.



Ooo! I want to see if you and I did the automation the same way. I’ve had these button toggles implemented for a while with status feedback too.

1 Like


I get that it is meant to be customised. I just wanted to get some ideas and feedback on them especially in case somebody already did that.

I’m not entirely sure if this is the best idea of navigation in any case. Thats why I wanted feedback before writing all those automations.

Especially the need to restart Home assistant makes that a tiresome exercise. My restarts now take almost 5 min each :frowning:

Thanks for the suggestions anyways…

1 Like


Man I hear that - I’ve stood up a dev instance of Hass for working on this due to the restarts of my prod instance taking forever. Thanks for all the feedback and input, these sorts of comments are what helps me guide my own development and I appreciate you working through it!



Wow some great additions here. Great work @luma just trying to find a UK mounting solution now.

1 Like


I have a few more suggestions:

Alarm Clock (would be nice to be able to set is by using something like the Alarm page)

long press for dimming - I think this would have to be implemented directly in the Arduino code…



This is interesting and might be doable. Let me stew on that for a bit.

Can you explain in more detail how this might work from an interaction standpoint? I’m not sure if I get exactly how this would play out.



Alarm Clock would be very cool. Could build these into a nice little bed side table alarm clock with a snooze button and input_select to set the time or a slider.

Was looking at doing this with hafloorplan on a Fire tablet with sensors showing temperature of my daughter’s bedroom.



The alarm clock I started… basically modifying the alarm page. Type four numbers if they evaluate to a correct time they will be set. To activate you press the time on the status page. Then instead of the temperature it will show the alarm time. When the alarm rings another page with options will be shown. Snooze, off, etc.

As for the dimming i was inspired by one button dimmer. You press and while you press the light gets brighter. You press a second time and the light dims. Short tap: off (or on) to previous value.



The switches are nice. But I suppose it would be better to do the status changes in the Arduino code or even in the Nextion itself now the state update on the display is very slow. I think it makes for a clumsy experience. Maybe it’s better to stick to buttons if this cannot be solved somehow.