Skip to content

Conversation

@itsjustdeepred
Copy link

@itsjustdeepred itsjustdeepred commented Jan 2, 2026

Breaking change

No breaking changes. This PR maintains full backward compatibility with existing YAML configurations.

Proposed change

Add GUI-based configuration flow to OPNsense integration, allowing users to:

  • Configure the integration via the UI instead of YAML
  • Select which network interfaces to monitor for device tracking
  • Select specific devices (by MAC address) to track
  • Reconfigure settings without removing and re-adding the integration
  • Automatically remove entities when deselected during reconfiguration

The implementation includes:

  • A multi-step config flow with interface and device selection
  • A data update coordinator for efficient data fetching
  • Support for reconfiguration of existing entries
  • Comprehensive test coverage

This enhancement improves the user experience by eliminating the need for manual YAML configuration while maintaining full backward compatibility.

Type of change

  • Dependency upgrade
  • Bugfix (non-breaking change which fixes an issue)
  • New integration (thank you!)
  • New feature (which adds functionality to an existing integration)
  • Deprecation (breaking change to happen in the future)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Additional information

  • This PR fixes or closes issue:
  • This PR is related to issue:
  • Link to documentation pull request:
  • Link to developer documentation pull request:
  • Link to frontend pull request:

Checklist

  • I understand the code I am submitting and can explain how it works.
  • The code change is tested and works locally.
  • Local tests pass. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist
  • I have followed the perfect PR recommendations
  • The code has been formatted using Ruff (ruff format homeassistant tests)
  • Tests have been added to verify that the new code works.
  • Any generated code has been carefully reviewed for correctness and compliance with project standards.

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.

To help with the load of incoming pull requests:

- Add GUI-based configuration flow with interface and device selection
- Add data update coordinator for efficient data fetching
- Support reconfiguration of interfaces and tracked devices
- Automatically remove entities when deselected during reconfiguration
- Add comprehensive test coverage for config flow
@home-assistant home-assistant bot added cla-needed config-flow This integration migrates to the UI by adding a config flow has-tests integration: opnsense new-feature labels Jan 2, 2026
Copy link

@home-assistant home-assistant bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @itsjustdeepred

It seems you haven't yet signed a CLA. Please do so here.

Once you do that we will be able to review and accept this pull request.

Thanks!

@home-assistant home-assistant bot marked this pull request as draft January 2, 2026 23:07
@home-assistant
Copy link

home-assistant bot commented Jan 2, 2026

Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍

Learn more about our pull request process.

@home-assistant
Copy link

home-assistant bot commented Jan 2, 2026

Hey there @mtreinish, mind taking a look at this pull request as it has been labeled with an integration (opnsense) you are listed as a code owner for? Thanks!

Code owner commands

Code owners of opnsense can trigger bot actions by commenting:

  • @home-assistant close Closes the pull request.
  • @home-assistant rename Awesome new title Renames the pull request.
  • @home-assistant reopen Reopen the pull request.
  • @home-assistant unassign opnsense Removes the current integration label and assignees on the pull request, add the integration domain after the command.
  • @home-assistant add-label needs-more-information Add a label (needs-more-information, problem in dependency, problem in custom component) to the pull request.
  • @home-assistant remove-label needs-more-information Remove a label (needs-more-information, problem in dependency, problem in custom component) on the pull request.

Copy link
Contributor

@NoRi2909 NoRi2909 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few quick notes from a translator's perspective.

Main point to also use sentence-casing for title strings in HA.

itsjustdeepred and others added 4 commits January 3, 2026 19:57
Co-authored-by: Norbert Rittel <norbert@rittel.de>
Co-authored-by: Norbert Rittel <norbert@rittel.de>
Co-authored-by: Norbert Rittel <norbert@rittel.de>
Co-authored-by: Norbert Rittel <norbert@rittel.de>
@itsjustdeepred
Copy link
Author

A few quick notes from a translator's perspective.

Main point to also use sentence-casing for title strings in HA.

I totally agree with you, it makes prefect sense! Thanks for your contribution

@erwindouna
Copy link
Contributor

Thanks for submitting your PR! Just checking, but isn't this a possible duplicate of: #151121?

@itsjustdeepred
Copy link
Author

Thanks for submitting your PR! Just checking, but isn't this a possible duplicate of: #151121?

I'm afraid it acqually is, this one looks a bit more customizable, not only interface selection but also device selection too, the current integration just adds all of the devices as trackers and it's a bit counter intuitive IMO.

My bad for not checking for duplicates before submitting the PR.

@erwindouna
Copy link
Contributor

It's a pity you put all this work into it. Maybe you can help the first sugnmitter with a useful review? :)

…er provided' message

- Remove check that prevented recreating existing entities during setup
- All entities are now recreated during reload, not just new or offline ones
- This ensures Home Assistant recognizes all entities as still being provided
…tdeepred/core into opnsense-config-flow-improvements
@itsjustdeepred
Copy link
Author

That’s a fair point! However, given that the other PR has been quiet for a few months, I went ahead and implemented the device selection logic I was looking for. I’m actually using it right now via HACS (https://github.com/itsjustdeepred/opnsense-hacs) and it works like a charm. I think it adds some value that #151121 is currently missing, so I'd love to keep this version on the table if possible.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants