0.9.14 (2026-02-27)
Release highlights:
Support for Ring Intercom Video
Merged pull requests:
- Support new device Ring Intercom Video #493 (@majd)
- WebRTC Answer Fix for Firefox and Device Addition #491 (@JackieGCodes)
0.9.13 (2024-11-26)
Release highlights:
Support for the new 2024 Battery Doorbell. Many thanks @dan5py!
Merged pull requests:
- Support new Battery Doorbell device #474 (@dan5py)
0.9.12 (2024-11-12)
Release highlights:
- Fix for Ring Elite motion and ding events
- Add
is_updateto ring events to enable filtering duplicates
Implemented enhancements:
- Add is_update flag to ring events for updated events #467 (@sdb9696)
Fixed bugs:
- Add new push notification intercom unlock #464 (@sdb9696)
- Fix doorbell elite missing capabilities #463 (@sdb9696)
Project maintenance:
- Update websockets dependency for >=13 #469 (@sdb9696)
0.9.9 (2024-11-06)
Release highlights:
- Support for asynchronous webrtc offers with trickle ice candidates
Implemented enhancements:
- Enable async webrtc offers with trickle ICE candidates #460 (@sdb9696)
0.9.8 (2024-10-18)
Release highlights:
- Breaking - Devices no longer automatically refresh after calling setters. Consumers should call
async_refresh_devicesto get updated values. This allows consumers to wait for the api to properly reflect changes before reporting them back. - Fixes floodcam light switches - Ring servers suddenly require
PUTrequests to provide null json values.
Breaking change pull requests:
- Do not refresh devices after calling setters #454 (@sdb9696)
Implemented enhancements:
- Add light command to cli #457 (@sdb9696)
Fixed bugs:
0.9.7 (2024-10-04)
Release highlights:
- Type checking will now raise errors when using deprecated attributes
Breaking change pull requests:
- Do not expose deprecated attributes to type checkers #451 (@sdb9696)
Implemented enhancements:
- Enable keep alive for webrtc stream #450 (@sdb9696)
Documentation updates:
- Update README.rst #444 (@jamesflores)
Project maintenance:
- Migrate workflows to setup-uv github action #449 (@sdb9696)
0.9.6 (2024-09-26)
Release highlights:
- Fix for a critical issue due to the ring authorisation api changing. All previous versions of this library will no longer work.
Implemented enhancements:
- Event listener capability enabled by default #445 (@sdb9696)
Fixed bugs:
- Send client_id with oauth fetch tokens request #446 (@sdb9696)
0.9.5 (2024-09-19)
Release highlights:
- New CLI commands
- Enhancement to the experimental WebRTC stream feature
Implemented enhancements:
- Enable multiple webrtc sessions per device #440 (@sdb9696)
- Add cli command to open door on intercom #438 (@sdb9696)
- Add in-home chime support to CLI #427 (@briangoldstein)
Fixed bugs:
- Fix max. volume of Ring Chime device. #439 (@daniel-k)
- Fix cli listen command on windows #437 (@sdb9696)
Project maintenance:
- Fix testpypi publish workflow to skip duplicates #441 (@sdb9696)
- Tweak the CI to use variables for project names #435 (@sdb9696)
- Fix publish workflow action #434 (@sdb9696)
- Upgrade artifact upload/download github actions #433 (@sdb9696)
Closed issues:
- pyproject include = ["LICENSE", "CONTRIBUTING.rst"...] #324
0.9.4 (2024-09-05)
Release highlights:
- Migrate from poetry to uv for package management
- Bugfixes for in-home-chime
Implemented enhancements:
- Add WebRTC live streaming session generation #348 (@sdb9696)
Fixed bugs:
- Fix in-home chime duration setter #428 (@briangoldstein)
Documentation updates:
- Fix broken links in readme #426 (@briangoldstein)
Project maintenance:
- Migrate to uv and add testpypi publishing #430 (@sdb9696)
0.9.3 (2024-09-02)
Release highlights:
- The python-ring-doorbell code repository has moved to https://github.com/python-ring-doorbell/python-ring-doorbell
- Fix for enabling in-home chimes - Many thanks @briangoldstein!
Fixed bugs:
- Fix active listen alert counter #423 (@sdb9696)
- Fix method to enable in-home doorbell chime #419 (@briangoldstein)
Documentation updates:
- Update supported python version in readme #422 (@sdb9696)
Project maintenance:
- Migrate repo to python-ring-doorbell github organisation #421 (@sdb9696)
- Remove anyio from dependencies #420 (@dotlambda)
0.9.2 (2024-08-29)
Release highlights:
- Fixes the broken event listener by migrating to the new
firebase-messaginglibrary to support FCM HTTP v1 api - breaking - the
RingEventListenerwill only support async queries. Hencestartandstopare now async defs
Fixed bugs:
- Fix event listener #416 (@sdb9696)
0.9.1 (2024-08-23)
Hotfix for missing typing_extensions dependency
Fixed bugs:
- Fix missing typing_extensions dependency #413 (@sdb9696)
Project maintenance:
- Update contributing docs to remove tox step #411 (@sdb9696)
- Update and add code checkers #410 (@sdb9696)
0.9.0 (2024-08-21)
Release highlights:
- Async support for the library
- Removed python 3.8 support
Breaking changes:
- Synchronous api calls are now deprecated. For example calling
Ring.update_data()will emit a deprecation warning to useawait Ring.async_update_data()which should be run within an event loop viaasyncio.run(). Seetest.pyfor an example. - Calling the deprecated sync api methods from inside a running event loop is not supported. This is unlikely to affect many consumers as the norm if running in an event loop is to make synchronous api calls from an executor thread.
- Python 3.8 is no longer officially supported and could break in future releases.
Breaking change pull requests:
- Drop python3.8 support and enable python3.13 in the CI #398 (@sdb9696)
Implemented enhancements:
- Make library fully async #361 (@sdb9696)
Fixed bugs:
- Small change to modify the timestamp #378 (@AndrewMohawk)
Project maintenance:
- Update instructions for releasing and migrate changelog #407 (@sdb9696)
- Add .vscode folder to gitignore #397 (@sdb9696)
- Update dependencies #396 (@sdb9696)
- Reduce lock and stale workflow frequency #388 (@sdb9696)
0.8.12 (2024-06-27)
Merged pull requests:
- Fix license value in pyproject.toml for better compliance with accepted values #386 (@joostlek)
- Fix stale workflow exclude list #377 (@sdb9696)
- Fix lock and stale workflows #376 (@sdb9696)
- Add stale and lock github workflows #375 (@sdb9696)
- Update dependencies in lock file and pre-commit #374 (@sdb9696)
- Enable windows, macos and pypy in the CI #373 (@sdb9696)
- Update CI to cache pipx poetry app install #372 (@sdb9696)
0.8.11 (2024-04-09)
Merged pull requests:
- Fix get_device missing authorized doorbots #368 (@sdb9696)
0.8.10 (2024-04-04)
Release highlights:
- py.typed added to library for type checkers
Merged pull requests:
- Update RingDevices class for better typing support and add py.typed #366 (@sdb9696)
- Enable more ruff rules #365 (@joostlek)
- Bump ruff to 0.3.5 #364 (@joostlek)
0.8.9 (2024-04-02)
Merged pull requests:
- Fix issue with third party devices returned in the group other #362 (@sdb9696)
- Save gcm credentials in the cli as default #360 (@sdb9696)
- Add typing and mypy checking #359 (@sdb9696)
- Fix readme example and add to test.py #358 (@sdb9696)
- Update CI to use environment caches #355 (@sdb9696)
0.8.8 (2024-03-18)
Merged pull requests:
- Bump cryptography from 41.0.6 to 42.0.0 #343 (@dependabot[bot])
- Handle Intercom unlock event #341 (@sdb9696)
- Add history to Ring Intercom #340 (@cosimomeli)
0.8.7 (2024-02-06)
Release highlights:
- Support for Ring Intercoms. Many thanks to @rautsch & @andrew-rinato for initial PRs and special thanks to @cosimomeli for getting this over the line!
Merged pull requests:
- Add history to has_capability check #342 (@sdb9696)
- Upgrade CI poetry version to 1.7.1 #338 (@sdb9696)
- Fix changelog link #337 (@sdb9696)
- Migrate to ruff #336 (@sdb9696)
- Make changelog autogenerated as part of CI #335 (@sdb9696)
- Fix coverage over-reporting by uploading xml report #333 (@sdb9696)
- Use coveralls github action #332 (@sdb9696)
- Updated Intercom Support (2024) #330 (@cosimomeli)
- Bump jinja2 from 3.1.2 to 3.1.3 #327 (@dependabot[bot])
- Remove exec permissions of ring_doorbell/cli.py #323 (@cpina)
- Bump cryptography from 41.0.5 to 41.0.6 #313 (@dependabot[bot])
0.8.6 (2024-01-25)
Breaking change:
- Breaking change to the listen subpackage api to allow the listener be configurable.
Merged pull requests:
- Allow ring listener to be configurable #329 (@sdb9696)
- Thank note for Debian package #326 (@tchellomello)
0.8.5 (2023-12-21)
Merged pull requests:
- Fix history timeformat and bump to 0.8.5 #320 (@sdb9696)
0.8.4 (2023-12-12)
Merged pull requests:
- Add Spotlight Cam Pro and enable motion detection for Stickup Cam #316 (@sdb9696)
0.8.3 (2023-11-27)
Merged pull requests:
- Fix auth when token invalid & rename device_id parameters #311 (@sdb9696)
- fix typo in the documentation #284 (@ghost)
0.8.2 (2023-11-24)
Merged pull requests:
- Add ring devices and bump version to 0.8.2 #310 (@sdb9696)
0.8.1 (2023-11-15)
Merged pull requests:
0.8.0 (2023-11-08)
Merged pull requests:
- Add custom exceptions and encapsulate oauth error handling #304 (@sdb9696)
0.7.7 (2023-10-31)
Merged pull requests:
- Improve stability and capabilities of realtime event listener #300 (@sdb9696)
0.7.6 (2023-10-25)
Merged pull requests:
- Fix anyio dependency preventing ha install #298 (@sdb9696)
0.7.5 (2023-10-25)
Merged pull requests:
- Add event listener for getting realtime dings #296 (@sdb9696)
- Add cli commands: devices, groups, dings and history #293 (@sdb9696)
- Add motion detection cli command and improve formatting of show command #292 (@sdb9696)
- Add tests for cli and fix issues with videos #290 (@sdb9696)
0.7.4 (2023-09-27)
Merged pull requests:
- Fix and update cli #288 (@sdb9696)
- Update to pyproject.toml, poetry, and update docs to use yaml config #287 (@sdb9696)
0.7.3 (2023-09-11)
Merged pull requests:
- 0.7.3 release #285 (@sdb9696)
- Add motion detection enabled switch #282 (@sdb9696)
- Fix ci to use up to date python versions and include pre-commit-config #281 (@sdb9696)
- Add support for Floodlight Cam Pro #280 (@twasilczyk)
0.7.2 (2021-12-18)
Merged pull requests:
- Recognize cocoa_floodlight as a floodlight kind #255 (@mwren)
0.7.1 (2021-08-26)
Merged pull requests:
- fix memory growth when calling url_recording #253 (@prwood80)
- [dist] Fix coveralls build issue #238 (@decompil3d)
- [dist] Disable Travis now that GH Actions is setup #236 (@decompil3d)
- get_snapshot() logic to be compliant with legacy #234 (@tchellomello)
- [dist] Use GitHub Actions #233 (@decompil3d)
- [feat] Add support for Light Groups #231 (@decompil3d)
- fix: prevent multiple device entries for "Python" in the Ring app when using this library #228 (@riptidewave93)
- Fix live streaming json #225 (@JoeDaddy7105)
- Fix Build Errors #224 (@JoeDaddy7105)
- Fixed RingDoorBell.get_snapshot() and added download #218 (@NSEvent)
- Fix get snapshot based on comments #196 (@dshokouhi)
- Return None if no battery installed #185 (@balloob)
0.7.0 (2021-02-05)
0.6.2 (2020-11-21)
0.6.1 (2020-09-28)
Merged pull requests:
- Add latest device kinds #207 (@jsetton)
- Pushes new documentation to (http://python-ring-doorbell.readthedocs.io/\) #194 (@tchellomello)
- Drop python 2.7/3.5. Updated readme and test.py examples #192 (@steve-gombos)
0.6.0 (2020-01-14)
Major breaking change:
Ring APIs offer 1 endpoint with all device info. 1 with all health for doorbells etc. The API used to make a request from each device to the "all device" endpoint and fetch its own data.
With the new approach we now just fetch the data once and each device will fetch that data. This significantly reduces the number of requests.
See updated test.py on usage.
Changes:
- Pass a user agent to the auth class to identify your project (at request from Ring)
- For most updates, just call
ring.update_all(). If you want health data (wifi stuff), calldevice.update_health_data()on each device - Renamed
device.id->device.device_id,device.account_id->device.idto follow API naming. - Call
ring.update_all()at least once before querying for devices - Querying devices now is a function
ring.devices()instead of propertyring.devices - Removed
ring.chimes,ring.doorbells,ring.stickup_cams - Cleaned up tests with pytest fixtures
- Run Black on code to silence hound.
Merged pull requests:
- Refactor data handling #184 (@balloob)
0.5.0 (2020-01-12)
Breaking Change:
The Auth class no longer takes an otp_callback but now takes an otp_code. It raises MissingTokenError if otp_code is required. See the updated example.
Implemented enhancements:
- Removed otp_callback #180 (@steve-gombos)
Merged pull requests:
- Increased timeout from 5 to 10 seconds #179 (@cyberjunky)
0.4.0 (2020-01-11)
Major breaking change:
This release is a major breaking change to clean up the auth and follow proper OAuth2. Big thanks to @steve-gombos for this.
All authentication is now done inside Auth. The first time you need username, password and optionally an 2-factor auth callback function. After that you have a token and that can be used.
The old cache file is no longer in use and can be removed.
Example usage in test.py.
Implemented enhancements:
- Auth and ring class refactor #175 (@steve-gombos)
- Implemented timeouts for HTTP requests methods #165 (@tchellomello)
- Support for device model name property and has capability method #116 (@jsetton)
Merged pull requests:
- Blocked user agent temp fix #176 (@steve-gombos)
- Fixed logic and simplified module imports #168 (@tchellomello)
- Fixes for #162 #163 (@ZachBenz)
- Make consistent requirements.txt and setup.py #158 (@tchellomello)
- Fixed requirements.xt #155 (@tchellomello)
- fix R1705: Unnecessary elif after return (no-else-return) #151 (@xernaj)
- Fix for Issue #146 #149 (@ZachBenz)
- Fix/oauth fail due to blocked user agent #143 (@xernaj)
- Add additional device kinds for new products #137 (@jsetton)
- Add a couple of device kinds #135 (@dshokouhi)
- Fixed pylint and test errors #115 (@tchellomello)
- support of externally powered new stickup cam #109 (@steveww)
- Add support for downloading snapshot from doorbell #108 (@MorganBulkeley)
- Support for Spotlight Battery cameras with multiple battery bays #106 (@evanjd)
0.2.9 (2020-01-03)
Implemented enhancements:
- add timeout to requests #164
Closed issues:
- 3000 DNS queries a minute #160
0.2.8 (2019-12-27)
0.2.6 (2019-12-27)
0.2.5 (2019-12-20)
0.2.3 (2019-03-05)
Implemented enhancements:
- Feature Request: Add a model property to identify the different products #112
Closed issues:
- MSG_GENERIC_FAIL #114
0.2.2 (2018-10-29)
0.2.1 (2018-06-15)
0.2.0 (2018-05-16)
Closed issues:
- Push Notification Token #61
Merged pull requests:
- only save token to disk if reuse session is true #81 (@andrewkress)
0.1.9 (2017-11-29)
Implemented enhancements:
- Create a generic update() call which updates all devices under top-level Ring object #74
- Created generic update method for all devices on Ring top-parent object #75 (@tchellomello)
0.1.8 (2017-11-22)
0.1.7 (2017-11-14)
Implemented enhancements:
- Doorbell history does not return all events #63
- Allows
older_thanparameter to history() method #69 (@tchellomello)
Merged pull requests:
- Update README.rst #66 (@ntalekt)
0.1.6 (2017-10-19)
Implemented enhancements:
0.1.5 (2017-10-17)
Implemented enhancements:
- Split source code into different files #54
- Fix __init__ methods #49
- How to get RSSI? #47
- House keeping: split source code into different files #55 (@tchellomello)
- Refactored unittests #53 (@tchellomello)
- Implemented health parameters reporting (wifi, wifi_rssi) #50 (@tchellomello)
Merged pull requests:
- add wifi connection status property #48 (@keeth)
- chime: Support playing motion test sound #46 (@vickyg3)
- adds support for stickup & floodlight cams #44 (@jlippold)
0.1.4 (2017-04-30)
Merged pull requests:
- 0.1.4 #42 (@tchellomello)
v0.1.3 (2017-03-31)
0.1.2 (2017-03-20)
Implemented enhancements:
- Feature request: Change Chime ring #19
- Allows to filter history by event kind: 'motion', 'on_demand', 'ding' #20 (@tchellomello)
Merged pull requests:
- Extended unittest coverage to check_alerts #30 (@tchellomello)
- Added new example #27 (@tchellomello)
- Update README.rst #26 (@tchellomello)
- Rebasing master from dev #25 (@tchellomello)
- Added basic structure for docs #24 (@tchellomello)
- Unittests #22 (@tchellomello)
- Introduced check_alerts() method #17 (@tchellomello)
0.1.1 (2017-03-09)
Merged pull requests:
- v0.1.1 #18 (@tchellomello)
0.1.0 (2017-02-25)
Breaking change:
The code was refactored to allow to manipulate the objects in a better way.
Implemented enhancements:
- Refactored project to make it more Pythonish and transparent #14 (@tchellomello)
0.0.4 (2017-02-15)
Merged pull requests:
- 0.0.4 #12 (@tchellomello)
0.0.3 (2017-02-15)
Merged pull requests:
0.0.2 (2017-02-15)
0.0.1 (2017-02-12)
Merged pull requests:
- Merging from dev #5 (@tchellomello)
- Implemented travis, tox tests #4 (@tchellomello)
- Refactored and updated documentation #2 (@tchellomello)
- Make flake8 happy #1 (@tchellomello)
* This Changelog was automatically generated by github_changelog_generator