- ignore query string in check_login_errors(). This should fix a bug where the task was logged out but not correctly being identified
- remove unnecessary warning in alarm status check
- add arm night
- refactor update_alarm_from_etree()
- bump to newer user agent
- skip sync check if it will back off
- fix linter issue in _initialize_sites
- add more detail to "invalid sync check" error logging
- don't exit sync check task on service temporarily unavailable or invalid login
- don't use empty site id for logins
- catch site is None on logout to prevent "have you logged in" errors
- speed improvements via aiohttp-zlib-ng
Performance improvements including:
- switch from BeautifulSoup to lxml for faster parsing
- optimize zone parsing to only update zones which have changed
- change wait_for_update() to pass the changed zones/alarm state to caller
- don't raise not logged in exception when sync check task logs out
- change full logout interval to approximately every 6 hours
- change yarl dependencies
- change aiohttp dependencies
- add yarl as dependency
- add timing loggin for zone/site updates
- do full logout once per day
- have keepalive task wait for sync check task to sleep before logging out
- add exceptions and exception handling
- make code more robust for error handling
- refactor code into smaller objects
- add testing framework
- add poetry
- fix more zone html parsing due to changes in Pulse v27
- fix zone html parsing due to changes in Pulse v27
- revert sync check logic to check against last check value. this should hopefully fix the problem of HA alarm status not updating
- use exponential backoff for gateway updates if offline instead of constant 90 seconds
- add jitter to relogin interval
- add quick_relogin/async_quick_relogin to do a quick relogin without requerying devices, exiting tasks
- add more alarm testing in example client
- change default poll interval to 2 seconds
- update pyproject.toml
- change source location to github/rlippmann from github/rsnodgrass
- fix gateway attributes not updating
- remove dependency on python_dateutils
- add timestamp to example-client logging
- pylint fixes
- set min relogin interval
- set max keepalive interval
- remove poll_interval from pyADTPulse constructor
- expose public methods in ADTPulseConnection object
- bug fixes
- relogin support
- device dataclasses
- async support
- background refresh
- bug fixes
- added ability to override the ADT API host (example: Canada endpoint portal-ca.adtpulse.com)
- bug fixes and improvements
- initial release with minimal error/failure handling