controlmyspa


Namecontrolmyspa JSON
Version 1.0.14 PyPI version JSON
download
home_pageNone
SummaryBalboa ControlMySpaâ„¢ cloud API for hot tub spa systems
upload_time2024-11-12 10:52:03
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT
keywords balboa controlmyspa whirlpool api
VCS
bugtrack_url
requirements certifi charset-normalizer idna pyyaml requests responses urllib3
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Balboa ControlMySpaâ„¢ cloud API for hot tub spa systems

[![Tests](https://github.com/arska/controlmyspa/actions/workflows/main.yml/badge.svg)](https://github.com/arska/controlmyspa/actions/workflows/main.yml)
[![codecov](https://codecov.io/gh/arska/controlmyspa/branch/main/graph/badge.svg?token=H2107AXHOX)](https://codecov.io/gh/arska/controlmyspa)
[![PyPI version](https://badge.fury.io/py/controlmyspa.svg)](https://badge.fury.io/py/controlmyspa)

Python API for ControlMySpa.com cloud-controlled of Balboa spa control systems for hot tubs.

- https://www.balboawatergroup.com/ControlMySpa
- https://controlmyspa.com

## 2023-12-13: iot.controlmyspa.com missing intermediate certificate

Since approximately June 2023 iot.controlmyspa.com has a new TLS certificate. This certificate is signed by digicert, but the intermediate certificate chain is not served by iot.controlmyspa.com and is also missing in the python certifi trust store. Instead of disabling the TLS certificate validation, we download the intermediate certificate from digicert over a successfully verified TLS connection and add it to the local trust store on first run. This does, however, not work for read-only runtimes like Docker containers. See https://github.com/arska/controlmyspa-porssari/blob/main/Dockerfile and https://github.com/arska/controlmyspa-porssari/blob/main/get_certificate.py for an example how to download the certificate at Docker image build time instead.

## Usage

see example.py for a runnable example

```python
from controlmyspa import ControlMySpa

API = ControlMySpa("user@example.com", "myverysecretpassword")
pprint.pprint(API._info)
```

## References

Based on the JavaScript library https://gitlab.com/VVlasy/controlmyspajs

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "controlmyspa",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "Balboa, Controlmyspa, Whirlpool, API",
    "author": null,
    "author_email": "Aarno Aukia <aarno@aukia.com>",
    "download_url": "https://files.pythonhosted.org/packages/b1/c4/ad1da2c84a0431f38373e346c0ec4364c487372ccec37ec8c10bc175a386/controlmyspa-1.0.14.tar.gz",
    "platform": null,
    "description": "# Balboa ControlMySpa\u2122 cloud API for hot tub spa systems\n\n[![Tests](https://github.com/arska/controlmyspa/actions/workflows/main.yml/badge.svg)](https://github.com/arska/controlmyspa/actions/workflows/main.yml)\n[![codecov](https://codecov.io/gh/arska/controlmyspa/branch/main/graph/badge.svg?token=H2107AXHOX)](https://codecov.io/gh/arska/controlmyspa)\n[![PyPI version](https://badge.fury.io/py/controlmyspa.svg)](https://badge.fury.io/py/controlmyspa)\n\nPython API for ControlMySpa.com cloud-controlled of Balboa spa control systems for hot tubs.\n\n- https://www.balboawatergroup.com/ControlMySpa\n- https://controlmyspa.com\n\n## 2023-12-13: iot.controlmyspa.com missing intermediate certificate\n\nSince approximately June 2023 iot.controlmyspa.com has a new TLS certificate. This certificate is signed by digicert, but the intermediate certificate chain is not served by iot.controlmyspa.com and is also missing in the python certifi trust store. Instead of disabling the TLS certificate validation, we download the intermediate certificate from digicert over a successfully verified TLS connection and add it to the local trust store on first run. This does, however, not work for read-only runtimes like Docker containers. See https://github.com/arska/controlmyspa-porssari/blob/main/Dockerfile and https://github.com/arska/controlmyspa-porssari/blob/main/get_certificate.py for an example how to download the certificate at Docker image build time instead.\n\n## Usage\n\nsee example.py for a runnable example\n\n```python\nfrom controlmyspa import ControlMySpa\n\nAPI = ControlMySpa(\"user@example.com\", \"myverysecretpassword\")\npprint.pprint(API._info)\n```\n\n## References\n\nBased on the JavaScript library https://gitlab.com/VVlasy/controlmyspajs\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Balboa ControlMySpa\u2122 cloud API for hot tub spa systems",
    "version": "1.0.14",
    "project_urls": {
        "Homepage": "https://github.com/arska/controlmyspa",
        "Issues": "https://github.com/arska/controlmyspa/issues"
    },
    "split_keywords": [
        "balboa",
        " controlmyspa",
        " whirlpool",
        " api"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5e7a244d07d8ff65b03c4c82e53e5e6103e408537d2df5c2d18b029cd338cd9f",
                "md5": "eaa90b079bcd82ffccaa43aa1a559b94",
                "sha256": "7b000ae3624944aff9d34c398faa8818a8af89332567f408d6fb1d367001b772"
            },
            "downloads": -1,
            "filename": "controlmyspa-1.0.14-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "eaa90b079bcd82ffccaa43aa1a559b94",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=3.10",
            "size": 7773,
            "upload_time": "2024-11-12T10:52:02",
            "upload_time_iso_8601": "2024-11-12T10:52:02.592696Z",
            "url": "https://files.pythonhosted.org/packages/5e/7a/244d07d8ff65b03c4c82e53e5e6103e408537d2df5c2d18b029cd338cd9f/controlmyspa-1.0.14-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b1c4ad1da2c84a0431f38373e346c0ec4364c487372ccec37ec8c10bc175a386",
                "md5": "e104f2dde7ce1dd12a91b609f12e5f1b",
                "sha256": "7909ffd0fd8e1e5f451c9187124cf4d8ecd1d736d1708b4d0e6c4780cabde702"
            },
            "downloads": -1,
            "filename": "controlmyspa-1.0.14.tar.gz",
            "has_sig": false,
            "md5_digest": "e104f2dde7ce1dd12a91b609f12e5f1b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 14046,
            "upload_time": "2024-11-12T10:52:03",
            "upload_time_iso_8601": "2024-11-12T10:52:03.779848Z",
            "url": "https://files.pythonhosted.org/packages/b1/c4/ad1da2c84a0431f38373e346c0ec4364c487372ccec37ec8c10bc175a386/controlmyspa-1.0.14.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-12 10:52:03",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "arska",
    "github_project": "controlmyspa",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "certifi",
            "specs": [
                [
                    "==",
                    "2024.8.30"
                ]
            ]
        },
        {
            "name": "charset-normalizer",
            "specs": [
                [
                    "==",
                    "3.4.0"
                ]
            ]
        },
        {
            "name": "idna",
            "specs": [
                [
                    "==",
                    "3.10"
                ]
            ]
        },
        {
            "name": "pyyaml",
            "specs": [
                [
                    "==",
                    "6.0.2"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    "==",
                    "2.32.3"
                ]
            ]
        },
        {
            "name": "responses",
            "specs": [
                [
                    "==",
                    "0.25.3"
                ]
            ]
        },
        {
            "name": "urllib3",
            "specs": [
                [
                    "==",
                    "2.2.3"
                ]
            ]
        }
    ],
    "tox": true,
    "lcname": "controlmyspa"
}
        
Elapsed time: 0.94741s