Dynamically change the current tab/dashboard based on conditions

I have a few tablets I use for dashboards around the house. Most of the time, I want them to show a default layout for controlling lights, showing sensor values, etc.

But if someone is at the door, I want that tablet to switch to an entirely different view.

Or, I want my phone to launch the “Daytime” view by default during the day, but then switch to the “Bedtime” view when I go to bed.

I can conditionally hide/unhide an individual card, but I can’t do that to a whole view (to my knowledge)

Set up an automation to trigger browser_mod.navigate (with browser_mod) to redirect you to the desired tab. You can’t hide the tab dynamically as far as I know though you could hide the entire tab bar with custom-header.

Though I agree something like this should be a core feature, Custom Header can conditionally hide tabs/views and change the default tab using Jinja templates. As Brian mentioned, if HA is already open Browser_Mod can automatically switch to that tab.

1 Like

Thanks y’all!

I’m aware of browser_mod but just haven’t gotten around to it yet. Didn’t realize Custom Header could do it too! I’ll take a look at both options.

But yeah, like you said, still feels like it ought to become a core feature considering dashboarding is such a core use-case for HA.

Hi, I had about the same challenge and found a good solution

This gives you the opportunity to redirect the tab (for specific users) based on the (changing) state of an entity. Works good for me.

I even found a way to make the tabs to change automatically every minute or 30 sec. …
I just set up two helper timers and an automation which starts timer 2 each time timer 1 finishes (to get the automation running I have to start it automatically once with the default action ‚timer_start‘ for timer 1 )
I added the tab-redirect-card to the first tab, making it to flip to tab 2 once timer 1 changes to idle and added the tab-Redirect-card to the second tab, making it flip to tab 1 once timer 2 changes to idle.

Very convenient, would love to see something like this embedded into core