Library & CLI to interact with the Sure Petcare API. surepy lets you monitor and control the Pet Door/Cat Flap Connect 🚪 and the Pet Feeder Connect 🍽 by Sure Petcare.
surepy features:
🔑 get an api token with your account credentials
🚪 lock/unlock a door or flap
🐾 get the location of pets & devices
🐈 get the state and more attributes of pets & devices
🕰️ get historic data & events of pets & devices
📬 get a list of (past) notifications
surepy is available via pypi.org
python3 -m pip install --upgrade surepy
# or
pip install --upgrade surepythere is also a small cli available
$ surepy --help
Usage: surepy [OPTIONS] COMMAND [ARGS]...
surepy cli 🐾
https://github.com/benleb/surepy
Options:
--version show surepy version
-j, --json enable json api response output
-t, --token TEXT api token
--help Show this message and exit.
Commands:
devices get devices
locking lock control
notification get notifications
pets get pets
position set pet position
report get pet/household report
token get a tokenthe cli is mainly intended for developing & debugging purposes and probably has bugs - be careful 🐾
importasynciofromosimportenvironfrompprintimportpprintfromtypingimportDict, ListfromsurepyimportSurepyfromsurepy.entitiesimportSurepyEntityfromsurepy.entities.devicesimportSurepyDevicefromsurepy.entities.petimportPetasyncdefmain():
# # user/password authentication (gets a token in background)# surepy = Surepy(email=user, password=password)# token authentication (token supplied via SUREPY_TOKEN env var)token=environ.get("SUREPY_TOKEN")
surepy=Surepy(auth_token=token)
# list with all petspets: List[Pet] =awaitsurepy.get_pets()
forpetinpets:
print(f"\n\n{pet.name}: {pet.state} | {pet.location}\n")
pprint(pet.raw_data())
print(f"\n\n - - - - - - - - - - - - - - - - - - - -\n\n")
# all entities as id-indexed dictentities: Dict[int, SurepyEntity] =awaitsurepy.get_entities()
# list with alldevicesdevices: List[SurepyDevice] =awaitsurepy.get_devices()
fordeviceindevices:
print(f"{device.name=} | {device.serial=} | {device.battery_level=}")
print(f"{device.type=} | {device.unique_id=} | {device.id=}")
print(f"{entities[device.parent_id].full_name=} | {entities[device.parent_id] =}\n")
asyncio.run(main())Sorry for the bad naming and resulting confusion and chaos 🙄 To "fix" this, I renamed surepetcarebeta to sureha.
| Name | Repo | Type | Description | Need Help? |
|---|---|---|---|---|
| surepy 🐾 | github.com/benleb/surepy | Python Library | Library to interact with the API of Sure Petcare. Also provides Classes for the various Sure Petcare Devicess. Use this if you write an own python tool/app and want to interact with the Sure Petcare API | Issues |
| surepetcare | github.com/home-assistant/core | Home Assistant Integration | Official Home Assistant Integration for the Sure Petcare Devices like Doors, Flaps, Feeders, ... | Issues, HA Forum |
| sureha | github.com/benleb/sureha | Home Assistant Integration | Home Assistant Integration developed in my own repo without reviews from the HA Team. This can be installed via HACS and is something like a preview integration for advanced users. Usually this provides more (experimental) features and faster fixes but lacks the code quality (reviews) and such from HA | Issues |
| pethublocal | github.com/plambrechtsen/pethublocal | Home Assistant Integration | Home Assistant Integration developed by @plambrechtsen which works completely independent from Sure Petcare. Check outs his repo for more information! | Issues, HA Forum |
- Sure Petcare integration in Home Assistant
Feel free to add you project!
- Thanks to all the people who provided information about devices I do not own myself, thanks!
- Thanks to @rcastberg for hist previous work on the Sure Petcare API (github.com/rcastberg/sure_petcare)
- Thanks to @wei for the header image generator (github.com/wei/socialify)
Ben Lebherz: cat lover 🐾 developer & maintainer - @benleb | @ben_leb
This project is licensed under the MIT License - see the LICENSE file for details