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

Yes, that is correct.

Still seeing all browsers navigate together with this code.
Is there something else I am missing and need to tweak that you are aware of?
If you have time to comment. If not, thanks regardless.

Please share your code for review.

Ok. This is the code below in the sequence item.
I however gave up for now, as I have learnt a little about multi-calls which solved my issue for now in a different way..

action: fire-dom-event
browser_mod:
  service: browser_mod.navigate
  data:
    path: /apple-tv-swipe-1
1 Like

:megaphone: Browser Mod 3.0.0 released :megaphone:

Browser Mod 3.0.0 has been released.

:warning: BREAKING CHANGES

Home Assistant 2026.6.0 or great needed for Browser Mod 3.0.0. This is due to the settings panel using newer ha-row-item.

Also, the Global and Frontend settings are now separated out from the local Browser config panel. You can access the Global and Frontend settings panel using the cog settings icon in the Browser Mod integration in Devices & settings.

3 Likes

Maybe a bug - when I am editing the side panel options (order/hidden) in settings for the browser I am using the 'save' button doesn't always activate. It can take me re-arranging 1 menu option afterwards for the 'save' button to activate. I haven't tried every combo of deletion/rearrange to truly understand what is happening - but I think any single change (delete or rearrange) should activate the 'save' button.

Also - has the BM side panel link become irrelevant then?

Btw, your mod has been a lifesaver for me since HA removed the default dashboard option. So thank you so much!

Yes, confirming a bug as Browser Mod needs to initialize the dirty state of the dialog, a feature added to dialog-edit-sidebar in 2026.7.0 (all dialogs are getting dirty state feature which standardises preventing closing once dialog has been edited). Currently the first change won't make the dialog dirty meaning the Save button does not show and you would also be able to dimiss using escape etc.

No, still needed to control local Browser Mod config including Browser ID, Sync setting, Camera and WebRTC publishing settings. Basically teh admin only settings are now in the integration, with the rest remaining in the Frontend config panel.

UPDATE: Issue fixed in 3.0.1-beta.1

I'm trying to get a history graph card into a browser mod popup but it's failing to render the actual graph. Searching did bring me to this issue (802), but I understand there was a workaround fix since then so I'm at a loss.

I'm using fire-dom-event to call a script and pass it the browser id, then the script calls the browser_mod.popup action. This works great with every other popup I have configured (edit: and this one now).

The tap-action:

tap_action:
  action: fire-dom-event
  browser_mod:
    service: script.popup_washing_machine_cycle
    data:
      browser_id: THIS

The script:

script:
  popup_washing_machine_cycle:
    sequence:
      - action: browser_mod.popup
        data:
          dismissable: true
          initial_style: wide
          browser_id: "{{ browser_id }}"
          popup_styles:
            - style: centered
              include_styles:
                - wide
              styles: |
                ha-dialog {
                  --vertical-align-dialog: center !important;
                }
          content:
            type: history-graph
            entities:
              - entity: sensor.washing_machine_current_watts
            hours_to_show: 1.5
            grid_options:     # This is the problem
              columns: 12     # Don't do this
              rows: 4         # It'll lead to frustration

The result: (edit: if you add grid_option)

Any guidance regarding what I might be doing wrong would be greatly appreciated, thanks.

Since I went to the trouble of typing all this out before I figured out that using grid-options caused the graph to fail, I figured I'd leave it here for the next shmuck trying the same thing.

Any ideas as to why this happens? I mean the actual card renders with all of its parts except for the actual graph.

The graph is there but has 0 height. What is happening here is that when you specify rows in grid_options the history-graph card will set its height to 100%, delegting height to the grid section. Browser Mod does not use grid sections so the container that the history-graph is in will have no height so the graph has no height.

1 Like

Thanks for the info, lesson learned.

1 Like

It seems that i can't find where to delete registered device now... all i can do is disable it, but i'd like to remove it. It's not in old browser mod setting anymore, also not in new under devices...? It must be hidden somewhere (from me...)

you delete a device from the Browser Mod integration config panel. Same panel as before when it was part of Frontend, just now in integration.

If you have orphaned Browser Mod devices they can be cleaned up with browser_mod.deregister_browser. Put your known Browsers in an area and then use the service with area_exclude_id.

Hm... that's what i'm searching... it used to be an icon to remove entry, but not anymore... ?


Not for Browser Mod as it manages as one integration entity. Use the Cog to get to the Browser Mod integration panel (what used yo be on the Frontend Browser panel for admins).

1 Like

ahhhhhh.... stupid me... :nauseated_face: the only thing i didn't click....
Thanks a lot!

It’s the recent change with 3.0.0

Yeah, i did catch that part, but i didn't use it so far (since all works :smile: ). I've had a funny tablet crash yesterday, so it registered with "undefined" for a while before i re-registered it with correct name again. So i wanted to delete that "undefined" (i hate unused things to be left in HA)...

1 Like

I’m ā€œworkingā€ with themes again… and i wonder something about uix in themes:
this uix:

UIX Test:
  uix-theme: UIX Test
  uix-more-info: |
    :host {
      --ha-dialog-scrim-backdrop-filter: blur(5px); 
      --ha-dialog-surface-background: rgba(0,0,0,0.9);
      --ha-dialog-surface-backdrop-filter: blur(10px);
      --dialog-box-shadow: 0em 0em 2em white;
      --ha-dialog-border-radius: 2em;
      --ha-dialog-width-md: 90vw;
    }  

works if i select theme either as default HA theme or personal one - more-info dialogs are full width and background is blurred.

Then i make another similar theme, only WITHOUT full width:

UIX Test2:
  uix-theme: UIX Test2
  uix-more-info: |
    :host {
      --ha-dialog-scrim-backdrop-filter: blur(5px); 
      --ha-dialog-surface-background: rgba(0,0,0,0.9);
      --ha-dialog-surface-backdrop-filter: blur(10px);
      --dialog-box-shadow: 0em 0em 2em white;
      --ha-dialog-border-radius: 2em;
    }  

Now, if i set this theme in one view of dashboard only:

it doesn’t work: theme parts (any color changes etc…) are changed, but it seems that uix part is not read - more-info is still full-width, while it should be ā€œnarrowerā€ (normal).

Is that how it is or is there a solution for this?

What i’m trying to achieve is to have some dashboards ā€œmore-infoā€ in full-width, and some normal ones.

Most dialogs, including more-info and Browser Mod popups, are loaded in shadowRoot of <home-assistant> which is above view in DOM so will only ever get the main theme, not a view theme. So what you are experiencing is expected.

Two paths:

  1. If for built in more-info dialog styling you will need to augment your theme to use templates utlising the panel variable to adjust the style per panel. Use a good fallback technique like @Mariusthvdb does in his UIX theme.
  2. If this is specific to Browser Mod popups, then UIX theme: config variable will be able to assist, but Browser Mod needs to be updated to pass theme UIX config when applying UIX. I will build a Browser Mod beta with this change.

UPDATE: Browser Mod 3.0.3-beta.1 available which passes theme UIX config correctly.

1 Like

Yes, i meant for all more-info dialogs, not only browser-mod ones. But on first look Mariusthvdb’s solution seems a bit (too) complicated for me… I don’t have a clue where to put that (and how, to be honest…)

Thanks for clarification, at least i know where i’m at. It’s not that big deal to have ALL full-width, it’s just that some of dialogs are a bit annoying when full screen (like update info’s etc)…