HA SwitchPlate HASPone: DIY In-Wall Touchscreen Home Assistant Controller

Silly me :flushed:, thanks luma!

The plate is running smooth and super fast now!
But I was wondering how can I scroll through different pagesā€¦ I can scroll on lovelace card but on the plate I have only 3 (scenes, status and lights)ā€¦ any idea how to get other pages as well?

The default automations have 3 page select buttons, which you can assign. There have been others who have built page-scrolling solutions, but I havenā€™t rolled that approach into the main project on purpose.

My goal here is to create a ā€œquick hitā€ control interface. If you want to do something complicated, a 2.4" screen isnā€™t likely to be the best place for that to happen. With HASP, every interaction should be no more than two screen presses (one to directly select the screen if needed, then another to select the action). I think of it more like a smart light switch control, with a fast-response set of interactions that you commonly execute in the room youā€™ve installed it in.

But none of that it set in stone! The reason HASP uses automations (instead of a python component) is that every bit of this interaction is controlled by Home Assistant using techniques that are accessible to a user who understands automations. You can create your own workflow!

1 Like

I like the idea of a ā€œquick hitā€ interface. But with the current design, that is impossible. How do you get to the alarm panel for example? A basic menu system would be a good addition to achieve this quick hit interface goal.

Great question @edboston!

If youā€™ve run the deployhasp.sh process, and pasted the lovelace JSON that it gave you into your lovelace config, you should have the option to assign each of the 3 page buttons at the bottom to a specific page.

In the screenshot below, Iā€™ve setup Page Button 3 to have the text ā€œalarmā€ in the ā€œNoto Sans32ā€ font. I also moved the page slider to page 7.

So now, on the bottom of every page, the far-right button (page button 3) will have the text ā€œalarmā€, and when pressed, will bring the user to page 7.

One other thing I should add: if you have a ā€œread-onlyā€ page displaying information to the user that doesnā€™t require interaction, you can use the ā€œdefault pageā€ example to squeeze in an additional user-selectable page.

For example, you can have your ā€œdefaultā€ page showing information like a clock, calendar, weather, etc. Set that as the default page with a 15sec idle timeout. That screen will be shown on the HASP while idle. When you approach the screen, you select one of the 3 page buttons, then perform whatever interaction you were looking to accomplish. 15 seconds later, HASP will flip back to the informational screen.

The upside is that you can assign 3 pages of interactive controls while having a 4th page shown while idle. The downside is that every interaction now requires two button presses.

For the next release that demo automation will include some Lovelace code to provide a UI for that function, it currently looks like this:

image

2 Likes

This still doesnā€™t address the problem of accessing more than those 3 pages. So with this solution, I gain access to the alarm page, but lose access to the page that was there.

Iā€™m am just suggesting that some sort of menu system would be good. For example, change one of the 3 buttons to go to a page that has all the pages listed. On my HASP, I changed the first item (scenes as shown on your screen shots) to menu and it selects page 6. Page 6 was blank if I remember correctly and has 8 buttons. I put each page as one of those buttons so with two clicks, I can go to any of the pages.

I think your idea is great! It creates a situation where one would have the same number of clicks to get to a page and accomplishes the menu interface using the existing project. Assign page 6 to a button, call it ā€œmenuā€ or whatever, and have each button select a different screen. A user would have to press the menu button, then press the desired page, and then finally select their interaction with 3 button presses.

The remaining two page buttons can still be utilized, so that common interactions can still be accessed w/ two button presses. Setup your most common page with the ā€œdefault pageā€ example demonstrated above, and that page will always be available when you approach the device and you can perform those actions with a single click.

I do make page 0 (WiFi) settings available from the menu. I have it so pressing that page returns you to the menu.

1 Like

Wanting to implement this haptic feedback. I think I messed up when I bought the motors. Seems that the internet is chock full of the two wire variety and I was enamored by the form factor of them. https://www.amazon.com/DZS-Elec-Button-type-Electronics-Appliances/dp/B07PHRX7QH/ref=cm_cr_arp_d_product_top?ie=UTF8
Iā€™m guessing that I need to have one that has the vcc, grnd, and data to get this to work huh. Like this one
https://www.amazon.com/Vibration-Motor-Module-Vibrating-Arduino/dp/B07PKDQ2S4/ref=sr_1_19?dchild=1&keywords=arduino+vibrating+motor&qid=1609982875&sr=8-19

Correct, you will need something to drive the motor, in general itā€™s not a great idea to try and do so from a digital IO pin. The unit you linked appears to include a simple driver circuit and should be suitable.

Wondering if this would fit in a gutted Wink Relayā€¦?

@luma Maybe itā€™s time to roll another release soon?

When setting up HASP with the 0.40 release, half of page 2 isnā€™t working anymore, and this was fixed back in May last year? (ref: nws -> home for weather) :wink:

Iā€™m sure thereā€™s plenty of other fixes too. Iā€™m wondering if itā€™s better for me to just base my system on your dev branch at this point, before I get into too much customization?

I am currently working through some substantial changes in the automation packages, but am not yet at a point to decide if theyā€™re worth the fuss and itā€™ll be a little bit yet before anything is released.

Not sure how this information changes your decision making hereā€¦

Hah, ā€œsubstantialā€ is a relative term.

I guess Iā€™ll stick with 0.40 for now, and rather take the migration hit later. I did run the migrate-hasp-109.sh script, so It Works For Meā„¢ right now.

In the meantime, hereā€™s a peek at whatā€™s cookinā€™:

2 Likes

Nice! And I see youā€™ve integrated the overlay icons into the text?

In that situation, yes. The icons can be used directly in any text you display, hereā€™s how to make that happen.

Overlay is a different story. On the page 2 automations, I wanted more flexibility with the icons including the ability to have the icons on the left w/ the text on the right, and for the icons to be a different size than the text. In that situation, things are trickier as Iā€™m manually painting the icons on top of the buttons, and then re-painting them whenever something happens that changes the button because that removes the icon I originally put there. Just a quirk of working with Nextion.

The problem on that one is that Home Assistant no longer offers a general-use weather component that can be configured via configuration.yaml. Part of the work being done in dev is to address that by way of a lovelace interface that allows you to select any of your current weather providers and it will populate the screen with information from the selected provider.

Currently, it looks like this:
image

Ah brilliant, that would be great!

Yes, saw the discussion on weather.home not necessarily being there by default. I think it is with HASS.io (I just installed one last week, it was there already), but I can imagine that other install approaches donā€™t.

Btw, Iā€™ve been thinking a bit about dynamic buttons at the bottom of the HASP.
For example, the default is [scenes, status, lights]

Digression, I prefer to have [status] as a default screen, so Iā€™ll probably switch out the middle one to HVAC, so letā€™s say [scenes, HVAC, lights]

When you press [lights], the [lights] button could change to [dimmers]. That way, a single press gets you to the on/off for the 3 lights, while [dimmers] could get you into the finer controls of the same lights, for example. Itā€™s not a menu, but a more detailed or advanced view, for example.
[HVAC] could change to [AC UP], indicating that a second press of the middle page button would take me to the upstairs HVAC, while (I know) the first page is the downstairs HVAC since the HASP is located downstairs.

[scenes] could cycle to others maybe?

Alas, Iā€™m suggesting a way to easily define a ā€œcycleā€ of pages per page button:

  • B1: 1, 6
  • B2: 9, 10
  • B3: 3, 4
  • default page: 2

I know youā€™re not a fan of menus or multiple clicks, but I think this approach keeps your current feel, but allows for flexibility and easy ā€œmenu divingā€ for those that would like it?

What do you think?

1 Like

This is also the same solution I came up with. Going to keep lots of room-specific scenes on the primary 2 pages of each HASP display, but then have a common set of things Iā€™d access less often that would be consistent across all of my HASP devices.