Metadata-Version: 2.4
Name: tsmppt60-driver
Version: 0.2.2
Summary: Python module to get status of your solar charge controller TS-MPPT-60.
License: GPLv2
Author: Takashi Ando
Author-email: odo5522@gmail.com
Requires-Python: >=3.11,<3.15
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: System :: Hardware :: Hardware Drivers
Requires-Dist: requests (>=2.32,<3.0)
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"
}
```

