Skip to content

v0.8.0

Compare
Choose a tag to compare
@dieselrabbit dieselrabbit released this 06 Mar 00:09
· 93 commits to master since this release
0cd1967

Breaking Change:

  • Passing host connection parameters to the ScreenLogicGateway constructor was deprecated in v0.7.0 and has now been removed. Consuming code should use async_connect() instead.

Changes:

  • Support for Python 3.8 and 3.9 is being phased out.
    • Home Assistant - this library's target audience - only supports that last two major releases of Python and has already removed support for Python 3.8 and 3.9. It is expected that support for Python 3.10 in Home Assistant will also be deprecated when Python 3.12 releases.
    • The next "major"(minor in semantic versioning) release of screenlogicpy (v0.9.0) will remove support for Python 3.8, with 3.9 to follow the next "major" release after that.
  • .requests.utility.getString() will now return a decoded and trimmed str value. Anyone using getString() in their own code (ie. custom message decoding) no longer need to call .decode("utf-8").strip("\0") themselves on the return.
  • Color update message decoding was moved into requests\lights.py
  • Order of release notes will now list breaking changes first, followed by general changes, then additions.
  • Various cleanup, typing, code improvements
  • Documentation updates

Added:

  • Added support for retrying requests in the event of a timeout (no response within 5 seconds) or if the protocol adapter returns an error code (too many requests at once seems to be able to cause the protocol adapter to return error code 31).
    • The number of times screenlogicpy with attempt to send or resend a message defaults to 2. This can be changed by:
      • Passing a new value in the max_retries parameter during gateway instantiation
      • By using gateway.set_max_retries(new_value)
    • The new value can be None or 1-5. Calling set_max_retries() with no value will reset to the default of 2.
  • Support for a unique client_id per instance of screenlogicpy.
    • A random id will be used or the client_id parameter can be specified at gateway creation to use a custom one.