Screenlogicpy

Latest version: v0.10.1

Safety actively analyzes 715081 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 5

0.9.0

Breaking Changes:
- **Python 3.8 is no longer supported as of this release.** Minimum supported Python version is now 3.9.
_Future note: Support for Python 3.9 will be deprecated after the 0.9.x release series, after which Python 3.10 will be the minimum supported version._
- Updated types to python 3.9 generics typing
- **Major data refactor**
This release contains a major reorganization of the internal data `dict`, and in-turn the resulting json output. Changes include:
- Data reorganized by device and common group.
- Flags values get their own group.
- Multiple data keys renamed for correctness, clarity, or newly discovered functionality.
You can check out the new json format [here](https://github.com/dieselrabbit/screenlogicpy/blob/ec215e374f6783418995a10eccb9cd645053e400/notes/json_data.txt).

Changes:
- Use constants for all data dict keys.
- Use Enums for flags and int values

Added:
- `ScreenLogicGateway.get_data()` now supports returning subsets of data or individual values. `get_data()` accepts a "path" in the form of multiple parameters of keys to the desired data, and will return only that data.
- Shortcut methods `get_name()` and `get_value()` have also been added. These will return the value of the "name" or "value" key that exists - if it exists - within the data specified by the data "path".
- By default `get_data()`, `get_name()`, and `get_value()` will return `None` if the specified path or key is not found. Keyword arg `strict=True` can be specified to raise `KeyError` exception if the path or key is not found.

0.8.2

Breaking Change:
- `ScreenLogicWarning` is no longer raised on request or connection errors. See **Changes** below for details on what is raised when.

Changes:
- Reconnect on request failure
- screenlogicpy will now attempt to reconnect to the protocol adapter _once_ after a failure to complete a request (for any reason), after retrying the set number of times. If reconnected, screenlogicpy will attempt the request _once_ again.
- If reconnection or the second full request attempt fails, screenlogicpy will raise a full `ScreenLogicError` exception. This supports Home Assistant handling the communication failure accordingly.
- `ScreenLogicRequestError` is raised for failure in making a request to the protocol adapter.
- A full `ScreenLogicError` is raised immediately on any failure to connection to the protocol adapter.

Added:
- New exception classes
- `ScreenLogicException` Base exception class for screenlogicpy
- `ScreenLogicRequestError` raised specifically for failing to complete a request due to:
- Communication timeout
- Any error response from the protocol adapter

0.8.1

Fixes:
- Fixed crash when attempting to keep a client connection alive by pinging the protocol adapter

Changes:
- Updated testing support code

0.8.0

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.

0.7.2

Changes:
- Updated `INTERFACE_GROUP` with more known values.
- Changed `LIGHTS` from 3 -> 4
- Added `LIGHTS_COLOR` (3) and `DONT_SHOW` (5)
- Misc formatting and Debug logging updates.

**Full Changelog**: https://github.com/dieselrabbit/screenlogicpy/compare/v0.7.1...v0.7.2

0.7.1

Added:
- `state_type` (`SensorStateClass` in HA) `measurement` added to appropriate sensors.
- This supports proper statistics tracking in Home Assistant.
- Affected sensors:
- `sensors` : `air_temperature`, `ph`, `orp`, `saturation`, `salt_ppm`, `ph_supply_level`, `orp_supply_level`
- `bodies` `[body_num]` : `last_temperature`
- `pumps` `[pump_num]` : `currentWatts`, `currentRPM`, `currentGPM`
- `chemistry` : `current_ph`, `current_orp`, `ph_supply_level`, `orp_supply_level`, `saturation`, `ph_probe_water_temp`
- `scg` : `scg_salt_ppm`

Page 2 of 5

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.