Metadata-Version: 2.1
Name: comap
Version: 0.2.10
Summary: Allows easy automation of WebSupervisor tasks, such as downloading and analyzing data
Home-page: https://github.com/bruxy70/ComAp
Author: Václav Chaloupka
Author-email: vasek.chaloupka@hotmail.com
License: MIT
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Requires-Python: >=3.6.0
Description-Content-Type: text/markdown
Requires-Dist: asyncio
Requires-Dist: aiohttp
Requires-Dist: async-timeout
Requires-Dist: requests
Requires-Dist: aiofiles
Requires-Dist: timestring

# ComAp API
Allows easy automation of [WebSupervisor](https://www.websupervisor.net/) tasks, such as downloading and analyzing data.

The instruction for testing and examples are available on [ComAp-API repository](https://github.com/bruxy70/ComAp-API)

# Documentation
The modules provide easy access to the ComAp API. For more detail about the retuned values, check the [ComAp API Developer Portal](https://websupervisor.portal.azure-api.net/docs/services)

There are two modules available - a simpler synchronos module `comap.api` and asynchronous module `comap.api_async`. The async module is recommended for use in production.
For better understanding, please look at the examples on the [ComAp-API repository](https://github.com/bruxy70/ComAp-API)

## comap.api
### Class: wsv(key, token='')
Use the API ``ComAp-Key`` and ``Token`` to inicialize the object. Example:
```python
from comap.api import wsv
# Do not store your API secrets in code, but in an external file
from config import ComAp-Key, Token

wsv = wsv(ComAp-Key, Token)
units = wsv.units()
for unit in units:
    print(f'{unit["unitGuid"]} : {unit["name"]}')
```

### Methods
#### authenticate(username, password)
Get the authentication `Token`. 
Example:
```python
from comap.api import wsv
from config import ComAp-Key
username=input('Enter username:')
password=input('Enter password:')
token=wsv(ComAp-Key).authenticate(username, password)
print("Your token is:", token)
```

#### units()
Get list of units with their unitGuid - for more examples, look on the [ComAp-API repository](https://github.com/bruxy70/ComAp-API)

#### values(unitGuid, valueGuids=None)
Get list of values. It is recommended to specify comma separated list of valueGuids to filter the result
You can import VALUE_GUID from comap.constants to get GUIDs for the most common values. Or call the method without GUID to get all values available in teh controller, including their GUIDs.

#### info(unitGuid)
Get information about the unit

#### comments(unitGuid)
Get comments entered in the WebSupervisor (these can be used for maintenance tasks)

#### history(unitGuid, _from=None, _to=None, valueGuids=None)
Get history of a value. Please specify the valueGuid and `from` and `to` dates in the format `"MM/DD/YYYY"`

#### files(unitGuid)
Get list of files stored on the controller

#### download(unitGuid, fileName, path='')
Download a file from the controller to the current directory (or the directory specified in `path`). You can list the files using the `files` method.

#### command(unitGuid, command, mode=None)
This allows to control the genset. The available commands are `start`,`stop`,`faultReset`,`changeMcb` (toggle mains circuit breaker), `changeGcb` (toggle genset circuit breaker) and `changeMode`. 
For `changeMode` enter the `mode` parameter e.g. to `man` or `auto`

#### get_unit_guid(name)
Find a genset by name. Return is unitGuid

#### get_value_guid(unitGuid, name)
Find a value by name. Return valueGuid

---

## comap.api_async methods
### Class: wsv_async(key, token='')
Use the API ``ComAp-Key`` and ``Token`` to inicialize the object

### Methods
Same as comap.api, but each method starting with `async_`, and include a session parameter (for example `async_units(session)`, or `values(session,unitGuid,valueGuids=None)`
Rather than explaing it - see the difference in the [async example](https://github.com/bruxy70/ComAp-API/tree/development/simple-examples-async)

