-
-
Notifications
You must be signed in to change notification settings - Fork 36k
Implement Device Tracker for surepetcare Pets
#157537
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Implement Device Tracker for surepetcare Pets
#157537
Conversation
This allows those who have added their Pets as "People" within Home Assistant to attach the device to them, opening up the use of cards that show presence information for a person rather than just a binary sensor.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍 |
|
Hey there @benleb, @Danielhiversen, mind taking a look at this pull request as it has been labeled with an integration ( Code owner commandsCode owners of
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds device tracker support for Sure Petcare pets, enabling users to track pet locations (inside/outside) and attach these trackers to "People" entities in Home Assistant for enhanced presence monitoring through person cards.
Key Changes
- Adds device_tracker platform to map pet locations to HOME/NOT_HOME states
- Implements state tracking based on Sure Petcare API location data (inside/outside/unknown)
- Exposes location details through extra state attributes (since, where)
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| homeassistant/components/surepetcare/device_tracker.py | New platform implementation that creates TrackerEntity instances for pets, mapping location data to device tracker states |
| homeassistant/components/surepetcare/init.py | Adds DEVICE_TRACKER to the list of supported platforms |
| tests/components/surepetcare/test_device_tracker.py | Comprehensive tests validating entity creation, state mapping, and attribute exposure for different location scenarios |
| tests/components/surepetcare/conftest.py | Updates mock config to include additional test pets (24681, 24682) |
| tests/components/surepetcare/init.py | Adds mock data for outdoor and unknown location pets to support comprehensive testing |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
@Danielhiversen / @benleb I'm aware of the duplication here in regards to the existing Binary Sensor and this new Device Tracker. It feels like the Binary Sensor would become redundant with this change, and likely could be marked as deprecated to be removed in a later version (to give people time to move to the Device Tracker) - would that be an acceptable approach here? I am unfamiliar with how HA would typically handle this, or even if it's an issue having both in place. FYI @lp55 as I believe you're taking some of the workload from Ben here now |
Proposed change
This allows those who have added their Pets as "People" within Home Assistant to attach the device to them, opening up the use of cards that show presence information for a person rather than just a binary sensor.
Type of change
Additional information
Checklist
ruff format homeassistant tests)If user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest.requirements_all.txt.Updated by running
python3 -m script.gen_requirements_all.To help with the load of incoming pull requests: