Metadata-Version: 2.1
Name: shelly-cloud
Version: 0.1.1
Summary: A Python API for accessing the Shelly devices.
Home-page: 
Author: 
Author-email: Ingmar Mueller <ingmar.mueller@kfw.de>, Mario Macai <mario.macai@accenture.com>, Melissa Schmidt <melissa.schmidt@accenture.com>, Georgia Moldovan <georgia.moldovan@accenture.com>, Felix Stark <felix.stark@kfw.de>
Project-URL: Bug Tracker, https://github.com/openkfw/shelly-cloud/issues
Project-URL: Homepage, https://github.com/openkfw/shelly-cloud
Keywords: shelly,kfw,api,cloud
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Provides: shellyapi
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Provides-Extra: dev
License-File: LICENSE

# shelly-cloud

A python library to access the Shelly cloud API. Refer also to the [Shelly API Docs](https://shelly-api-docs.shelly.cloud/cloud-control-api/communication). This repo provides functionality for:

- Getting devices status
- Getting the status of a single device
- Getting a list of device IDs

## Installing the library locally

Python 3 is recommended for this project.

```bash
python -m pip install -e .
```

> **This is needed for the first time when working with the library/examples/tests.**

## Example usage

```bash
SHELLY_API_URL="https://HOST:PORT" SHELLY_API_TOKEN="REPLACE_ME" python3 examples/simple.py
```

or

```python
from shellyapi.shellyapi import ShellyApi

shelly = ShellyApi('provide_api_url', 'provide_api_token')
# or you can define additional optional parameters
# shelly = ShellyApi('provide_api_url', 'provide_api_token', timeout=10)

print(shelly.get_device_ids())
```

## Development

### Installing required pip packages

```bash
python pip install -r requirenments.txt
pre-commit install -t pre-push
```

### Linting

```bash
pylint shellyapi/*.py tests/*.py examples/*.py
```

### Unit testing

```bash
pytest tests/*.py

# show logs
pytest -o log_cli=true

# code coverage
pytest --durations=10 --cov-report term-missing --cov=shellyapi tests
```
