Metadata-Version: 2.4
Name: tsmppt60-driver
Version: 0.2.3
Summary: Python module to get status of your solar charge controller TS-MPPT-60.
License: GPLv2
Author: Takashi Ando
Author-email: dodo5522@gmail.com
Requires-Python: >=3.11,<3.15
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Project-URL: Homepage, https://github.com/dodo5522/tsmppt60_driver
Description-Content-Type: text/markdown

# TS-MPPT-60 driver module

This is python driver module to get the following status of TS-MPPT-60.

* Amp Hours
* Array Current
* Array Voltage
* Battery Temperature
* Battery Voltage
* Charge Current
* Heat Sink Temperature
* Kilowatt Hours
* Output Power
* Sweep Pmax
* Sweep Vmp
* Sweep Voc
* Target Voltage

# Requirement

* requests

# How to install

```bash
pip install tsmppt60-driver
```

# How to use

SystemStatus class object is iterator containing all live status data of TS-MPPT-60. Try the following line.

```python
print(SystemStatus("192.168.1.20").get())
```

The result is like following.

```
{'Amp Hours': {'group': 'Counter', 'unit': 'Ah', 'value': 18097.9},
 'Array Current': {'group': 'Array', 'unit': 'A', 'value': 1.4},
 'Array Voltage': {'group': 'Array', 'unit': 'V', 'value': 53.41},
 'Battery Voltage': {'group': 'Battery', 'unit': 'V', 'value': 23.93},
 'Charge Current': {'group': 'Battery', 'unit': 'A', 'value': 3.2},
 'Heat Sink Temperature': {'group': 'Temperature', 'unit': 'C', ...},
 'Kilowatt Hours': {'group': 'Counter', 'unit': 'kWh', 'value': 237.0},
 'Target Voltage': {'group': 'Battery', 'unit': 'V', 'value': 28.6}}
```

The above data is limited information. You can disable the limitter by setting False to the second argument as SystemStatus() class.

```python
print(SystemStatus("192.168.1.20").get(False))
```

The result is like following.

```
{'Amp Hours': {'group': 'Counter', 'unit': 'Ah', 'value': 18097.8},
 'Array Current': {'group': 'Array', 'unit': 'A', 'value': 1.3},
 'Array Voltage': {'group': 'Array', 'unit': 'V', 'value': 53.41},
 'Battery Temperature': {'group': 'Temperature', 'unit': 'C', ...},
 'Battery Voltage': {'group': 'Battery', 'unit': 'V', 'value': 24.01},
 'Charge Current': {'group': 'Battery', 'unit': 'A', 'value': 3.2},
 'Heat Sink Temperature': {'group': 'Temperature', 'unit': 'C', ...},
 'Kilowatt Hours': {'group': 'Counter', 'unit': 'kWh', 'value': 237.0},
 'Output Power': {'group': 'Battery', 'unit': 'W', 'value': 76.0},
 'Sweep Pmax': {'group': 'Array', 'unit': 'W', 'value': 73.0},
 'Sweep Vmp': {'group': 'Array', 'unit': 'V', 'value': 53.41},
 'Sweep Voc': {'group': 'Array', 'unit': 'V', 'value': 60.05},
 'Target Voltage': {'group': 'Battery', 'unit': 'V', 'value': 28.6}}
```

JSON string can be got with following code.

```bash
$ python -c "from tsmppt60_driver import *; import json; print(json.dumps(SystemStatus('192.168.1.20').get()))" | jq '."Battery Voltage"'

{
  "group": "Battery",
  "value": 28.6,
  "unit": "V"
}
```

