šŸ”¹ Browser_mod - turn your browser into a controllable device, and a media_player

How do I install browsermod on a cca 1 year old installation of HaOS (core is 2024.10.4) and which version would you suggest? I’m sure all users are not on the bleeding edge.

bleeding edge?

I think you can catch up a fair way and still be far from the bleeding edge…

Being that far behind only makes your HA life worse.

Well still, would be nice to know, since all other integrations and custom components that I use work stable I’d like to know how to try and install this one. Possible to give me some hints, if I’m still holding up on updgrading the core?

Well, most likely nobody knows when and which breaking changes took place on HA or Browser_Mod to not support this specific version anymore.
Maybe beside the Browser_Mod dev himself by most likely also investing a good amount of time looking through change log and whatelse.

But asking him to do that just so you don’t have to spend time to update wouldn’t be a that nice move. :wink:

So as long as he doesn’t drop in, saying he can answer this off the top of his head, I see 2 possibilites for you:

  • Install the latest one and see if you run into any problems
  • Look at Browser_Mod on Github → Releases and search which version was the current release shortly after HA 2024.10.4 was released. Chances are high, that this won’t make any problems, as this would be on your system if you had Browser_Mod already installed when you updated your system the last time.

I would most likely choose the last one.

1 Like

I am trying to use brodwer_mod in a script. What this script is supposed to do is:
change to different dashboard
wait 10 seconds
change dashboard

I have written the script, but does not seem to do anything.

sequence:
  - action: browser_mod.navigate
    metadata: {}
    data:
      path: /lovelace-system/camera-images/0
  - delay:
      hours: 0
      minutes: 0
      seconds: 3
      milliseconds: 0
  - action: browser_mod.navigate
    metadata: {}
    data:
      path: /lovelace-system/wall-pannel/home-control
alias: Flip Dashboards
description: ""

can anyone see what I did wrong?

As of today v2.6.0 on 2025.8. As of next week 2.6.1 on 2025.10. Anything else is not supported in any way.

  1. Browser Mod keeps lean by using Hone Assistant Components. When they change, Browser Mod gets locked to those Hone Assistant versions.

  2. Many refactors along the way to fix many long standing issues. Too many to list and note. Styling changes in 2.6.0 being the latest.

How are you running the script? What does the trace say? Are your Browers registered? If you have no Browsers registered they won’t run commands. Try running a navigate from Developer tools tragetting a known Browser.

I tested a similar script ran from script editor and works fine.

Forgot to register browser mod. When I run the script the first page it goes to is:
http://10.10.10.75:8123/lovelace/zigbee
… Never mind. What ended up working is the following script:

sequence:
  - action: browser_mod.navigate
    metadata: {}
    data:
      path: /camera-images/0
  - delay:
      hours: 0
      minutes: 0
      seconds: 3
      milliseconds: 0
  - action: browser_mod.navigate
    metadata: {}
    data:
      path: /wall-pannel/home-control
alias: Flip Dashboards
description: ""

Did not work until I too off the preface of ā€˜lovelace’ Is that correct, or my system is just a little off?

/lovelace/ is usually for default dashboard and its views. Other dashboards have whatever url you have assigned.

For a wall touchscreen (no android), I installed browser_mod and my browserid is browser_mod_touchscreen.
This is the only browser where I use the register and got the device.

I would like to see a badge entity only if I’m on that browser.
How can I retrieve the browserid and use in visibility of the card (or via other way) ?

You can’t do this directly as inbuilt Frontend visibility is based on entity states on Home Assistant server, not any client state except for user.

A few options based on other custom elements:

  1. Use state-switch with DeviceID.
  2. Use card-mod with templates which support Browser ID as a jinja template variable.
  3. Use button-card which has javascript templates. To get Browser ID in javascript use window.browser_mod.browserID.
1 Like

:mag_right: Teaser… :grey_question: :question:

Browser Mod Tile and Badge allowing you to show Browser Mod entities on your Dashboard without needing to know the entity or the Browser ID. :scream_cat:

Video on Google Drive for those wanting to see the preview. Coming in 2.7.0 (2.6.1 will be released this week with a few tweaks including chasing hass UI tab changes… yet again…).

7 Likes

I have been using Browser Mod successfully for a coule of years to control the access of 2 external groups of users: each group has their own username & login and each get to see only one dashboard. Until recently it worked great but now a few people are only seeing the default (ā€œoverviewā€?) dashboard when they login (and as I don’t allow them access to the sidebar they get stuck on a blank screen). It sounds the same as is being discussed on github Default dashboard keeps resetting to Overview Ā· Issue #18626 Ā· home-assistant/frontend Ā· GitHub but I don’t understand why Browser Mod has stopped being able to re-direct each group to their own dashboard.
If this is insurmountable, how can I put a button on the otherwise blank default dashboard so they can at least escape to their own dashboard?

If the Browser ID is lost, which is likely due to the same as default dashboard getting lost, being localStorage getting cleared, you will need to reset the Browser ID.

With 2.5.3 you can use browser_mod.change_browser_id service to fix this quite readily. The documentation has an action example usinng a Browser Call to use an interactive popup to change/reset Browser ID. The dropdown includes known Browser IDs.

Another suggestion that will take out one step(*) of the process of a ā€˜Default dashboard’ is to migrate from using the Default dashboard Frontend setting to a Default action and script to navigate to Dashboard based on user. Default action has the variable browser_entities available. You can have your script call browser_mod.navigate with different paths.

If you need any further assistant let me know.

(*) When using Dashboard Frontend setting, Browser Mod has to write it localStorage for Home Assistant to read. So when your Browser ID is lost, and are resetting you will need another refresh to have Default dashboard working again. That is why I recommend Default action as that will act after first refresh of resetting Browser ID.

1 Like

Thanks. It sounds like we were just lucky this hasn’t happened sooner. I had thought that this was under the control of the default dashboard setting in browser mod.
So my default dashboard is empty. I would be really grateful if you could give me some idea of how to give it the behaviour you describe. I’ve used state_switch based on user id in the distant past, but need help switching to the correct dashboard. Thank you for your help.

I did some testing. While there can be more complex solutions required, since you already have separate users, you can easily set a different Default action for each user with the action like that below. The best part of using Default action with user, is that the Browser does not need to be registered for this to work, so when the Browser ID is lost, this will still work. If the user devices don’t need any other sort of targetting for Browser Mod, you can not worry about registering these devices at all!

- action: browser_mod.navigate
  data:
    path: /dashboard-test/test-view-2

Thank you. I’m not sure what to do with this. My default dash board just contains this in the raw configuration editor views: [] and this is not an area I have ever programmed before. Also, how does your snippet know which user is sent to which dashboard? I’m sorry to need more hand holding.

Hi, what I am describing is the Default action Browser Mod Frontend setting. This can be different for different users. So you would change navigation path when you setup a Default action for a user. If you have Default dashboard Frontend setting for users you should remove these.

No need to do anything with your empty Home Assistant default dashboard.

Hope this helps.

1 Like

Thank you so much, it seems to have done the trick.

1 Like

After the most recent updates, Browser_mod behaves improperly on iOS Home Assistant Companion App.

On a browser (Edge on Windows 11), Browser_mod continues to behave properly without modification of the YAML:

However, on the iOS Companion App, the popup card is no longer ā€œclassicā€ sized (even after updating the YAML from size: classic to initial_style: classic). Additionally, I could previously close the popup by clicking outside the popup. Now I have to use the ā€œĆ—ā€ to close the popup. It seems that the iOS Companion App (but not the browser) treats the popup as a webpage or tab and that to close the popup without clicking on Ɨ, one needs to navigate away:

Here is the YAML for the script; what do I need to update?

sequence:
  - data:
      content:
        type: custom:stack-in-card
        mode: vertical
        card_mod:
          style:
            .: |
              ha-card {
                backdrop-filter: blur(4px);
                border-radius: 15px;
              }                
        cards:
          - entity: alarm_control_panel.panel
            states:
              - arm_home
              - arm_away
            type: alarm-panel
            name: " "
      show_header_toggle: false
      state_color: true
      title: Alarm
      size: classic
    action: browser_mod.popup"
mode: single
icon: mdi:shield-home
description: ""