# Python: TechnoVE API Client
[![GitHub Release][releases-shield]][releases]
[![License][license-shield]](LICENSE)
[![Build Status][build-shield]][build]
[![Code Coverage][codecov-shield]][codecov]
[![Open in Dev Containers][devcontainer-shield]][devcontainer]
Asynchronous Python client for TechnoVE charging station.
## About
`python-technove` (aka `pytechnove`) is a Python 3.11, `asyncio`-driven interface
to the unofficial TechnoVE charger API from TechnoVE.\
This is originally meant to be integrated into Home Assistant, but can be used anywhere.
## Usage
```python
import asyncio
from technove import TecnnoVE
async def main() -> None:
"""Show example on controlling your TecnnoVE station."""
async with WLED("192.168.1.10") as technove:
station = await technove.update()
print(station.info.version)
if __name__ == "__main__":
asyncio.run(main())
```
## Changelog & Releases
This repository keeps a change log using [GitHub's releases][releases]
functionality.
Releases are based on [Semantic Versioning][semver], and use the format
of `MAJOR.MINOR.PATCH`. In a nutshell, the version will be incremented
based on the following:
- `MAJOR`: Incompatible or major changes.
- `MINOR`: Backwards-compatible new features and enhancements.
- `PATCH`: Backwards-compatible bugfixes and package updates.
## Contributing
This is an active open-source project. We are always open to people who want to
use the code or contribute to it.
Thank you for being involved!
## Setting up development environment
The easiest way to start, is by opening a CodeSpace here on GitHub, or by using
the [Dev Container][devcontainer] feature of Visual Studio Code.
[![Open in Dev Containers][devcontainer-shield]][devcontainer]
This Python project is fully managed using the [Poetry][poetry] dependency
manager. But also relies on the use of NodeJS for certain checks during
development.
You need at least:
- Python 3.11+
- [Poetry][poetry-install]
- NodeJS 20+ (including NPM)
To install all packages, including all development requirements:
```bash
npm install
poetry install
```
As this repository uses the [pre-commit][pre-commit] framework, all changes
are linted and tested with each commit. You can run all checks and tests
manually, using the following command:
```bash
poetry run pre-commit run --all-files
```
To run just the Python tests:
```bash
poetry run pytest
```
## Authors & contributors
The original setup of this repository is by [Christophe Gagnier][moustachauve].
Credits to [@frenck][frenck] for the base structure and classes of this library
based on [python-wled][python-wled].\
The license of python-wled can be found in
[third_party/python-wled/LICENSE](third_party/python-wled/LICENSE).
For a full list of all authors and contributors,
check [the contributor's page][contributors].
## Disclaimer
This project is not an official Google project. It is not supported by
Google and Google specifically disclaims all warranties as to its quality,
merchantability, or fitness for a particular purpose.
Google Play and the Google Play logo are trademarks of Google LLC.
[build-shield]: https://github.com/Moustachauve/pytechnove/actions/workflows/tests.yaml/badge.svg
[build]: https://github.com/Moustachauve/pytechnove/actions/workflows/tests.yaml
[codecov-shield]: https://codecov.io/gh/Moustachauve/pytechnove/branch/main/graph/badge.svg
[codecov]: https://codecov.io/gh/Moustachauve/pytechnove
[contributors]: https://github.com/Moustachauve/pytechnove/graphs/contributors
[devcontainer-shield]: https://img.shields.io/static/v1?label=Dev%20Containers&message=Open&color=blue&logo=visualstudiocode
[devcontainer]: https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/Moustachauve/pytechnove
[moustachauve]: https://github.com/Moustachauve
[frenck]: https://github.com/frenck
[python-wled]: https://github.com/frenck/python-wled/
[license-shield]: https://img.shields.io/github/license/Moustachauve/pytechnove.svg
[maintenance-shield]: https://img.shields.io/maintenance/yes/2023.svg
[poetry-install]: https://python-poetry.org/docs/#installation
[poetry]: https://python-poetry.org
[pre-commit]: https://pre-commit.com/
[releases-shield]: https://img.shields.io/github/release/Moustachauve/pytechnove.svg
[releases]: https://github.com/Moustachauve/pytechnove/releases
[semver]: http://semver.org/spec/v2.0.0.html
Raw data
{
"_id": null,
"home_page": "https://github.com/Moustachauve/pytechnove",
"name": "python-technove",
"maintainer": "Christophe Gagnier",
"docs_url": null,
"requires_python": "<4.0,>=3.11",
"maintainer_email": "christopheextensions@gmail.com",
"keywords": "TechnoVE, EV, Charger, client",
"author": "Christophe Gagnier",
"author_email": "christopheextensions@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/0d/70/db035259c9bb3024938aa988ef8dc6118dc634eb101a4cab0338be0a7570/python_technove-1.3.1.tar.gz",
"platform": null,
"description": "# Python: TechnoVE API Client\n\n[![GitHub Release][releases-shield]][releases]\n[![License][license-shield]](LICENSE)\n\n[![Build Status][build-shield]][build]\n[![Code Coverage][codecov-shield]][codecov]\n[![Open in Dev Containers][devcontainer-shield]][devcontainer]\n\nAsynchronous Python client for TechnoVE charging station.\n\n## About\n\n`python-technove` (aka `pytechnove`) is a Python 3.11, `asyncio`-driven interface\nto the unofficial TechnoVE charger API from TechnoVE.\\\nThis is originally meant to be integrated into Home Assistant, but can be used anywhere.\n\n## Usage\n\n```python\nimport asyncio\n\nfrom technove import TecnnoVE\n\n\nasync def main() -> None:\n \"\"\"Show example on controlling your TecnnoVE station.\"\"\"\n async with WLED(\"192.168.1.10\") as technove:\n station = await technove.update()\n print(station.info.version)\n\n\nif __name__ == \"__main__\":\n asyncio.run(main())\n```\n\n## Changelog & Releases\n\nThis repository keeps a change log using [GitHub's releases][releases]\nfunctionality.\n\nReleases are based on [Semantic Versioning][semver], and use the format\nof `MAJOR.MINOR.PATCH`. In a nutshell, the version will be incremented\nbased on the following:\n\n- `MAJOR`: Incompatible or major changes.\n- `MINOR`: Backwards-compatible new features and enhancements.\n- `PATCH`: Backwards-compatible bugfixes and package updates.\n\n## Contributing\n\nThis is an active open-source project. We are always open to people who want to\nuse the code or contribute to it.\n\nThank you for being involved!\n\n## Setting up development environment\n\nThe easiest way to start, is by opening a CodeSpace here on GitHub, or by using\nthe [Dev Container][devcontainer] feature of Visual Studio Code.\n\n[![Open in Dev Containers][devcontainer-shield]][devcontainer]\n\nThis Python project is fully managed using the [Poetry][poetry] dependency\nmanager. But also relies on the use of NodeJS for certain checks during\ndevelopment.\n\nYou need at least:\n\n- Python 3.11+\n- [Poetry][poetry-install]\n- NodeJS 20+ (including NPM)\n\nTo install all packages, including all development requirements:\n\n```bash\nnpm install\npoetry install\n```\n\nAs this repository uses the [pre-commit][pre-commit] framework, all changes\nare linted and tested with each commit. You can run all checks and tests\nmanually, using the following command:\n\n```bash\npoetry run pre-commit run --all-files\n```\n\nTo run just the Python tests:\n\n```bash\npoetry run pytest\n```\n\n## Authors & contributors\n\nThe original setup of this repository is by [Christophe Gagnier][moustachauve].\n\nCredits to [@frenck][frenck] for the base structure and classes of this library\nbased on [python-wled][python-wled].\\\nThe license of python-wled can be found in\n[third_party/python-wled/LICENSE](third_party/python-wled/LICENSE).\n\nFor a full list of all authors and contributors,\ncheck [the contributor's page][contributors].\n\n## Disclaimer\n\nThis project is not an official Google project. It is not supported by\nGoogle and Google specifically disclaims all warranties as to its quality,\nmerchantability, or fitness for a particular purpose.\n\nGoogle Play and the Google Play logo are trademarks of Google LLC.\n\n[build-shield]: https://github.com/Moustachauve/pytechnove/actions/workflows/tests.yaml/badge.svg\n[build]: https://github.com/Moustachauve/pytechnove/actions/workflows/tests.yaml\n[codecov-shield]: https://codecov.io/gh/Moustachauve/pytechnove/branch/main/graph/badge.svg\n[codecov]: https://codecov.io/gh/Moustachauve/pytechnove\n[contributors]: https://github.com/Moustachauve/pytechnove/graphs/contributors\n[devcontainer-shield]: https://img.shields.io/static/v1?label=Dev%20Containers&message=Open&color=blue&logo=visualstudiocode\n[devcontainer]: https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/Moustachauve/pytechnove\n[moustachauve]: https://github.com/Moustachauve\n[frenck]: https://github.com/frenck\n[python-wled]: https://github.com/frenck/python-wled/\n[license-shield]: https://img.shields.io/github/license/Moustachauve/pytechnove.svg\n[maintenance-shield]: https://img.shields.io/maintenance/yes/2023.svg\n[poetry-install]: https://python-poetry.org/docs/#installation\n[poetry]: https://python-poetry.org\n[pre-commit]: https://pre-commit.com/\n[releases-shield]: https://img.shields.io/github/release/Moustachauve/pytechnove.svg\n[releases]: https://github.com/Moustachauve/pytechnove/releases\n[semver]: http://semver.org/spec/v2.0.0.html\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Asynchronous Python client for TechnoVE.",
"version": "1.3.1",
"project_urls": {
"Bug Tracker": "https://github.com/Moustachauve/pytechnove/issues",
"Changelog": "https://github.com/Moustachauve/pytechnove/releases",
"Documentation": "https://github.com/Moustachauve/pytechnove",
"Homepage": "https://github.com/Moustachauve/pytechnove",
"Repository": "https://github.com/Moustachauve/pytechnove"
},
"split_keywords": [
"technove",
" ev",
" charger",
" client"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0044ad953e4b97c610922c5ba767862eec55000d47c4aee9883e357c536555e3",
"md5": "1836c8f0c4dd6ec26491945cebf7dbdf",
"sha256": "5c344fd1ad60913e0c3d749c2259e615646c2e9053f8188730e16df74f80074e"
},
"downloads": -1,
"filename": "python_technove-1.3.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1836c8f0c4dd6ec26491945cebf7dbdf",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.11",
"size": 8508,
"upload_time": "2024-07-04T04:17:55",
"upload_time_iso_8601": "2024-07-04T04:17:55.698704Z",
"url": "https://files.pythonhosted.org/packages/00/44/ad953e4b97c610922c5ba767862eec55000d47c4aee9883e357c536555e3/python_technove-1.3.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0d70db035259c9bb3024938aa988ef8dc6118dc634eb101a4cab0338be0a7570",
"md5": "202b9e344a3eeed2e810aaa841e01a65",
"sha256": "cc10f0392b6b71e70873b8fc9260d4a6c7a2e0a6d477a4f10403885d0c492a4d"
},
"downloads": -1,
"filename": "python_technove-1.3.1.tar.gz",
"has_sig": false,
"md5_digest": "202b9e344a3eeed2e810aaa841e01a65",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.11",
"size": 9851,
"upload_time": "2024-07-04T04:17:57",
"upload_time_iso_8601": "2024-07-04T04:17:57.186556Z",
"url": "https://files.pythonhosted.org/packages/0d/70/db035259c9bb3024938aa988ef8dc6118dc634eb101a4cab0338be0a7570/python_technove-1.3.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-04 04:17:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Moustachauve",
"github_project": "pytechnove",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "python-technove"
}