Recent Releases of econnect-python
econnect-python - 0.12.0
What's Changed
Features
- Main unit disconnections are detected and
DeviceDisconnectedErrorexception is raised (https://github.com/palazzem/econnect-python/pull/147, https://github.com/palazzem/econnect-python/pull/148) - Add support for Python 3.12 (https://github.com/palazzem/econnect-python/pull/150)
Read the full changeset and the release milestone.
- Python
Published by palazzem over 1 year ago
econnect-python - 0.11.0
What's Changed
Features
- Add
client.query(q.PANEL)API to retrieve panel details (https://github.com/palazzem/econnect-python/pull/140) lock()accepts an optionaluserIdto support models that require both theuserIdand thecode(https://github.com/palazzem/econnect-python/pull/142)
Bugfixes
- Added debug logs for arm/disarm/lock/unlock actions to simplify the triaging (https://github.com/palazzem/econnect-python/pull/144)
Read the full changeset and the release milestone.
- Python
Published by palazzem about 2 years ago
econnect-python - 0.10.0
What's Changed
Bugfixes
- (https://github.com/palazzem/econnect-python/pull/137):
InvalidSectorandInvalidInputexceptions are replaced byCommandError. This exception is raised when the client fails to arm/disarm the system, or make any time of change. When the system fails, the client logs an error including the response from the API. This solves the issue of assuming what type of error it was.
Testing / Development
- (https://github.com/palazzem/econnect-python/pull/136):
pre-commithooks are updated to their latest versions
Read the full changeset and the release milestone.
- Python
Published by palazzem about 2 years ago
econnect-python - 0.9.2
What's Changed
Bugfixes
- Raise
InvalidTokenif the token expires while using thelock()method (https://github.com/palazzem/econnect-python/pull/134)
Read the full changeset and the release milestone.
- Python
Published by palazzem about 2 years ago
econnect-python - 0.9.1
What's Changed
Bugfixes
- Prevent a
KeyErrorwhen inputs, outputs and/or sectors strings are not synchronized with the cloud (https://github.com/palazzem/econnect-python/pull/132)
Read the full changeset and the release milestone.
- Python
Published by palazzem about 2 years ago
econnect-python - 0.9.0
What's Changed
Features
- Add
query.OUTPUTSto collect outputs status (https://github.com/palazzem/econnect-python/pull/127) - Add client API to activate or deactivate a given output (https://github.com/palazzem/econnect-python/pull/129)
- Parse additional API fields when
q.OUTPUTSquery is done. This change removes unused keys fromq.SECTORSquery (https://github.com/palazzem/econnect-python/pull/130)
Bugfixes
- Arm and disarm multiple sectors with a single request instead of making one request per sector (https://github.com/palazzem/econnect-python/pull/128)
Read the full changeset and the release milestone.
- Python
Published by palazzem about 2 years ago
econnect-python - 0.8.1
What's Changed
Bugfixes
- Add
last_idwhile polling alerts to get real-time updates (https://github.com/palazzem/econnect-python/pull/125)
Read the full changeset and the release milestone.
- Python
Published by palazzem over 2 years ago
econnect-python - 0.8.0
What's Changed
Client/API
- Add
query.ALERTSto query the system via a unified API. You can now query any data just by usingquery()(https://github.com/palazzem/econnect-python/pull/118) - Response for
query.ALERTSqueries is now the same asINPUTSandSECTORS(https://github.com/palazzem/econnect-python/pull/119) - Delete unused
_filter_datafunction (https://github.com/palazzem/econnect-python/pull/120)
Testing Improvements
- Coveralls reports the actual code coverage (https://github.com/palazzem/econnect-python/pull/123)
Breaking Changes
client. get_status()is replaced byclient.query(q.ALERTS)- The response from
client.query(q.ALERTS)is different from before, so you should update your code in case you use it: ```python # Before response = {'alarm_led': 0}
After
response = {0: {"name": "alarm_led", "status": False}} ```
New Contributors
We'd like to extend our gratitude to our new contributors that made their first contribution 🎉 - @xtimmy86x
Read the full changeset and the release milestone.
- Python
Published by palazzem over 2 years ago
econnect-python - 0.7.0
What's Changed
Client/API
- feat(client): implement
get_status()to retrieve the main unit anomalies/alarms/tampering (https://github.com/palazzem/econnect-python/pull/116)
Read the full changeset and the release milestone.
- Python
Published by palazzem over 2 years ago
econnect-python - 0.6.0
What's Changed
Client/API
- feat: IESS Metronet systems are now supported! You can check the documentation to see how to query the right endpoint. (https://github.com/palazzem/econnect-python/pull/111)
Breaking Changes
- refactor!: remove
AlarmDevicecomponent. The device is now available in the Home Assistant Integration. (https://github.com/palazzem/econnect-python/pull/113)
Read the full changeset and the release milestone.
- Python
Published by palazzem over 2 years ago
econnect-python - 0.5.1
What's Changed
Client/API
- fix(client): sector/input name defaults to
Unknownif the main unit is out of sync with the cloud (https://github.com/palazzem/econnect-python/pull/101) - feat(client): add DEBUG logging to
ElmoClient(https://github.com/palazzem/econnect-python/pull/99)
Breaking Changes
- feat!: drop support for EOL Python versions; the project currently support Python 3.8 -> 3.11 (https://github.com/palazzem/econnect-python/pull/94)
Dependencies and Packaging
- Updated development dependencies (https://github.com/palazzem/econnect-python/pull/70)
- refactor!: merge 'v0.4.0' release into 'main' (https://github.com/palazzem/econnect-python/pull/90)
- refactor!: migrate the whole project to
pyproject.tomlproject definition (https://github.com/palazzem/econnect-python/pull/92) - tools: use pre-commit hooks to run linters and static analyzers (https://github.com/palazzem/econnect-python/pull/93)
- package: ensure project name is
econnect-python;pytestPython PATH issrc(https://github.com/palazzem/econnect-python/pull/106)
Testing Improvements
- tests: encapsulate mock calls inside tests and provide a new client for integrations tests (https://github.com/palazzem/econnect-python/pull/96)
- refactor!:
AlarmDeviceuses integration test client to ensureupdate()compatibility with the new API (https://github.com/palazzem/econnect-python/pull/97)
Read the full changeset and the release milestone.
- Python
Published by palazzem over 2 years ago
econnect-python - 0.5.0
Outdated Build
Regrettably, due to a misconfigured builder, we released a version of the package that did not import the project correctly. This issue has been addressed, and we have rolled out a new 0.5.1 version containing the same changes but with the correct build.
To prevent the distribution of this flawed version, we are removing this release from PyPi. If you're interested in understanding the adjustments made to rectify the issue, please refer to our builder change (#107).
What's Changed
Client/API
- fix(client): sector/input name defaults to
Unknownif the main unit is out of sync with the cloud (https://github.com/palazzem/econnect-python/pull/101) - feat(client): add DEBUG logging to
ElmoClient(https://github.com/palazzem/econnect-python/pull/99)
Breaking Changes
- feat!: drop support for EOL Python versions; the project currently support Python 3.8 -> 3.11 (https://github.com/palazzem/econnect-python/pull/94)
Dependencies and Packaging
- Updated development dependencies (https://github.com/palazzem/econnect-python/pull/70)
- refactor!: merge 'v0.4.0' release into 'main' (https://github.com/palazzem/econnect-python/pull/90)
- refactor!: migrate the whole project to
pyproject.tomlproject definition (https://github.com/palazzem/econnect-python/pull/92) - tools: use pre-commit hooks to run linters and static analyzers (https://github.com/palazzem/econnect-python/pull/93)
- package: ensure project name is
econnect-python;pytestPython PATH issrc(https://github.com/palazzem/econnect-python/pull/106)
Testing Improvements
- tests: encapsulate mock calls inside tests and provide a new client for integrations tests (https://github.com/palazzem/econnect-python/pull/96)
- refactor!:
AlarmDeviceuses integration test client to ensureupdate()compatibility with the new API (https://github.com/palazzem/econnect-python/pull/97)
Read the full changeset and the release milestone.
- Python
Published by palazzem over 2 years ago
econnect-python - 0.4.0
Community Improvements!
To foster growth and fortify support for this library, we've initiated steps to streamline external contributions. Our goal is to ensure clarity in our guidelines, making it straightforward for contributors to get their code merged. To this end, we've integrated the following changes:
- GitHub Actions CI Migration: This is a shift towards an efficient Continuous Integration process.
- GitHub Templates: We've added templates for both pull requests and issues, simplifying the process to report bugs, request features, and contribute.
- Contribution Guidelines: Introduced to maintain a consistent code and standards across the board.
We're excited to announce that our project roadmap is now public! If you're keen on keeping tabs on our development journey, peek into our next release roadmap. Plus, for those who have questions or seek support regarding this library or its Home Assistant integration version, we've launched a dedicated Discord channel. We invite you to join!
While these improvements are not that significant, they're the beginning. Our commitment is to continually update and rejuvenate the development of this library. A heartfelt thanks to our vibrant community for your invaluable feedback, bug reports, and engaging discussions on feature enhancements!
What's Changed
Dependencies and Requirements
- Update supported Python versions: removed 3.5 (EOL) and added 3.9 (https://github.com/palazzem/econnect-python/pull/60) - this change is to respect the development of
0.4.0. We'll update the test matrix in the upcoming release.
Client/API
ElmoClientconstructor has defaults to establish the connection (https://github.com/palazzem/econnect-python/pull/61)- Introduce a safer API so that only HTTPS urls can be used (https://github.com/palazzem/econnect-python/pull/63)
- The client now handles session token expiration (10m) (https://github.com/palazzem/econnect-python/pull/64)
- Improved error handling to provide better descriptions in case of exceptions (https://github.com/palazzem/econnect-python/pull/65)
- Ensure
unlock()is called even if an exception is raised in the block (https://github.com/palazzem/econnect-python/pull/66) - Implement long-polling to retrieve state updates (https://github.com/palazzem/econnect-python/pull/67)
- Add support for selective exclusion and readmission of inputs (https://github.com/palazzem/econnect-python/pull/55 - thanks @davidecavestro!)
- Remove
check()API (https://github.com/palazzem/econnect-python/pull/71) - Refactor
query()API so that a raw query is returned; addexcludedfield to returned dict (https://github.com/palazzem/econnect-python/issues/57, https://github.com/palazzem/econnect-python/pull/72) query()API returns alsolast_idfield; items are grouped undersectorsorinputskeys (https://github.com/palazzem/econnect-python/pull/73)- Include
statusfield inquery()API (https://github.com/palazzem/econnect-python/pull/74)
Documentation
- Better description about how to use
secret-codein the README example (https://github.com/palazzem/econnect-python/pull/62/)
Read the full changeset and the release milestone.
- Python
Published by palazzem over 2 years ago
econnect-python - 0.3.1
Documentation
- Update
README.md"Usage" section, to improve the PyPI project main page (#53)
Read the full changeset and the release milestone.
- Python
Published by palazzem almost 6 years ago
econnect-python - 0.3.0
New Features
Thanks @markin for helping with these new features! (draft PR: #44)
- The project has been officially released on PyPI as
econnect-python(#42, #52) - Extend
arm()anddisarm()with asectorkwarg to enable/disable one or multiple sectors (#46) - Handle authentication redirects (#49)
- Add
client.query()public API (#50)
Improvements
- Use Authentication API instead of scraping the
SessionID(#47)
Breaking Changes
- Remove Settings module (#21, #51)
- Refactor global status
check()(#48). The method returns a dictionary with different keys: ```python # Before { "areasarmed": [{"id": 0, "name": "Entryway"}, ...], "areasdisarmed": [{"id": 1, "name": "Kitchen"}, ...], "inputsalerted": [{"id": 0, "name": "Door"}, ...], "inputswait": [{"id": 1, "name": "Window"}, ...], }
After
{ "sectorsarmed": [{"id": 0, "name": "Entryway", "element": 1, "index": 0}, ...], "sectorsdisarmed": [{"id": 1, "name": "Kitchen", "element": 2, "index": 1}, ...], "inputsalerted": [{"id": 0, "name": "Door", "element": 3, "index": 0}, ...], "inputswait": [{"id": 1, "name": "Window", "element": 4, "index": 1}, ...], } ```
Read the full changeset and the release milestone.
- Python
Published by palazzem almost 6 years ago
econnect-python - 0.2.0
Changes
New Features
- It's now possible to check the System status using the
ElmoClient.check()API (#40, #36)
Client Core
- Add
session_idto theElmoClientinitializer (#38, #34) - Simplified the code structure by using requests
raise_for_status()(#39, #37)
Read the full changeset and the release milestone.
- Python
Published by palazzem over 6 years ago
econnect-python - 0.1.0
Release
This is a first release for elmo-alerting library, which includes the following capabilities:
* Retrieving access tokens to make API calls
* Obtaining/releasing the system Lock() to have exclusive control of the system
* Arm/disarm all the alarms registered in the system
The following example shows how to arm or disarm an Elmo system:
```python from elmo.api.client import ElmoClient
Initialize the client with an API endpoint and a vendor and
authenticate your connection to retrieve the access token
client = ElmoClient("https://example.com", "vendor") client.auth("username", "password")
To arm/disarm the system you must gain the exclusive Lock()
with client.lock("secret-code") as c: c.arm() # Arms all alarms c.disarm() # Disarms all alarms ```
This version should be considered an early version, even though it can be considered stable in terms of functionalities. That said, the API is considered 0.x.y, meaning it can change in the near future. Migration guides will be provided if breaking changes are introduced.
- Python
Published by palazzem over 6 years ago