ShineMonitor Rest-API client in Python (WatchPower, SolarPower, etc.)
Project description
ShineMonitor API in Python
ShineMonitor is the cloud backend (api.shinemonitor.com) used by several
inverter vendor apps — WatchPower, SolarPower, etc. By decompiling the
WatchPower Android APK with Jadx, the authentication flow was
reverse-engineered, giving direct access to the backend REST API for
programmatic inverter queries.
pip install shinemonitor-api
Check the examples/ folder for usage. To run the examples or develop
the library, use uv:
uv sync --all-groups
That installs all dependencies, including the optional examples group.
Sync and async
Two thin I/O shells over a shared sansio core (URL building, signing, parsing). Pick whichever fits the calling code — both expose the same methods.
# sync
from shinemonitor_api import ShineMonitorAPI
with ShineMonitorAPI() as api:
api.login(username, password)
devices = api.get_devices()
for device in devices:
print(api.get_last_data(device).main)
# async
import asyncio
from shinemonitor_api.aio import AsyncShineMonitorAPI
async def main():
async with AsyncShineMonitorAPI() as api:
await api.login(username, password)
devices = await api.get_devices()
snapshots = await asyncio.gather(
*(api.get_last_data(d) for d in devices)
)
for snapshot in snapshots:
print(snapshot.main)
asyncio.run(main())
Both clients accept an httpx.Client / httpx.AsyncClient for reuse
in apps that already manage one (e.g. Home Assistant).
Migrating from watchpower-api
watchpower-api is the previous PyPI name. The package was renamed to
shinemonitor-api because the upstream API serves more than just the
WatchPower app. The WatchPowerAPI class is now ShineMonitorAPI.
# before
from watchpower_api import WatchPowerAPI
# after
from shinemonitor_api import ShineMonitorAPI
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file shinemonitor_api-0.7.0.tar.gz.
File metadata
- Download URL: shinemonitor_api-0.7.0.tar.gz
- Upload date:
- Size: 125.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a86c486078ad0cbcc40e34da67285a05fed70ba50738b512e9c6d669baa03a4
|
|
| MD5 |
679fbf0fe4786206a5934059354078fe
|
|
| BLAKE2b-256 |
0ba8ff7bf11744ffebc783d471a6e2707947a3caaf829720f9f46e6524638174
|
File details
Details for the file shinemonitor_api-0.7.0-py3-none-any.whl.
File metadata
- Download URL: shinemonitor_api-0.7.0-py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
efdd7848b25f8d141b095bb5f66256b1fed459f7bed28729a8d26682faebdeed
|
|
| MD5 |
26977aa8383ec1c20c3538e766e70f0c
|
|
| BLAKE2b-256 |
02017de52bb53c1744e13f72cc4f5a4dec91a916dcb45251e66b1a887dd5510f
|