Skip to main content

"Access Sonnenbatterie REST API"

Project description

python_sonnenbatterie

Python module to access the REST API of a Sonnenbatterie.

This modules contains two distinct sets of APIs:

  • the original sonnen API (v1)
  • the new v2 API

Both are available in a synchronous and an asynchronous version:

  • sonnenbatterie - SonnenAPI v1, synchronous
  • AsyncSonnenBatterie - SonnenAPI v1, asynchronous
  • SonnenBatterieV2 - SonnenAPI v2, synchronous
  • AsyncSonnenBatterieV2 - SonnenAPI v2, asynchronous

The major difference between those two is the method to authenticate. With API v1 you need to login using a username and a password. The newer API requires a token that can be found in the web UI of your Sonnenbatterie. Also, the v2 API provides a unified view across the different Sonnenbatterie models wheres the v1 API may provide more details in specific setups.

When using the v1 API you'll autmatically get access to the v2 API by using the sb2 attribute of the v1 client object.

Installation

Using pip

pip3 install sonnenbatterie

Manual installation

Download the archive from pypi.org and unpack where needed ;)

Usage

SonnenAPI v1 - sync

# API v1
from sonnenbatterie import sonnenbatterie

sb_host = '192.168.1.2'
sb_user = 'User'
sb_pass = 'Password'

# Init class, establish connection
sb = sonnenbatterie(sb_host, sb_user, sb_pass)

print(sb.get_status())	                # retrieve general information
print(sb.get_powermeter())              # retrieive power meter details
print(sb.get_batterysystem())           # retrieve battery system data
print(sb.get_inverter())                # retrieve inverter status
print(sb.get_systemdata())              # retrieve system data
print(sb.get_battery())                 # get battery information
print(sb.get_api_configuration())       # get api configuration
print(sb.get_commissioning_settings())  # get commissioning settings

SonnenAPI v1 - async

# API v1
from sonnenbatterie import AsyncSonnenBatterie

sb_host = '192.168.1.2'
sb_user = 'User'
sb_pass = 'Password'

# Init class, establish connection
sb = AsyncSonnenBatterie(sb_host, sb_user, sb_pass)

print(await sb.get_status())	              # retrieve general information
print(await sb.get_powermeter())              # retrieive power meter details
print(await sb.get_batterysystem())           # retrieve battery system data
print(await sb.get_inverter())                # retrieve inverter status
print(await sb.get_systemdata())              # retrieve system data
print(await sb.get_battery())                 # get battery information
print(await sb.get_api_configuration())       # get api configuration
print(await sb.get_commissioning_settings())  # get commissioning settings
# Async needs to close the connection!
await sb.logout()

SonnenAPI v2 - sync

# API v2
# can either be access directly, see below, or
# via sb.sb2 (gets initialiazed automatically when creating a V1 object)

from sonnebatterie2 import SonnenBatterieV2

sb_host = '192.168.1.2'
sb_token = 'SeCrEtToKeN'        # retrieve via Web UI of SonnenBatterie

sb2 = SonnenBatterieV2(sb_host, sb_token)
print(sb2.get_configurations())         # retrieve configuration overview
print(sb2.get_battery_module_data())    # get battery module data
print(sb2.get_inverter_data())          # retrieve inverter data
print(sb2.get_latest_data())            # get latest date from sonnenbatterie
print(sb2.get_powermeter_data())        # get data from power meters
print(sb2.get_status())                 # get overall status information
print(sb2.get_io_data())                # get io status

SonnenAPI v2 - async

# API v2
# can either be access directly, see below, or
# via sb.sb2 (gets initialiazed automatically when creating a V1 object)

from sonnebatterie2 import AsyncSonnenBatterieV2

sb_host = '192.168.1.2'
sb_token = 'SeCrEtToKeN'        # retrieve via Web UI of SonnenBatterie

sb2 = AsyncSonnenBatterieV2(sb_host, sb_token)
print(await sb2.get_configurations())         # retrieve configuration overview
print(await sb2.get_battery_module_data())    # get battery module data
print(await sb2.get_inverter_data())          # retrieve inverter data
print(await sb2.get_latest_data())            # get latest date from sonnenbatterie
print(await sb2.get_powermeter_data())        # get data from power meters
print(await sb2.get_status())                 # get overall status information
print(await sb2.get_io_data())                # get io status
# Async needs to close the connection!
await sb.logout()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sonnenbatterie-0.7.1.tar.gz (32.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sonnenbatterie-0.7.1-py3-none-any.whl (26.8 kB view details)

Uploaded Python 3

File details

Details for the file sonnenbatterie-0.7.1.tar.gz.

File metadata

  • Download URL: sonnenbatterie-0.7.1.tar.gz
  • Upload date:
  • Size: 32.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for sonnenbatterie-0.7.1.tar.gz
Algorithm Hash digest
SHA256 bb1c7ea3df3cad81c5b557349ac33b18805487d1064a6b256869e3608dabb8c3
MD5 f94cb009ff489175e592cd8883d2d35a
BLAKE2b-256 e9af0b049d4ceb192d9b2c0e380d49051e8ed0efa5ef1c8b94d7ad52974ac240

See more details on using hashes here.

File details

Details for the file sonnenbatterie-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: sonnenbatterie-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 26.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for sonnenbatterie-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 08a16a7ebd4fa093997ad6844edb9e8c4866cfce96aa5b07e0a1eb606e910631
MD5 ed9ee0ce3d2dd1f15ab1d4c9dca4c67c
BLAKE2b-256 d92dda1c02b3f15261b93235d9e254ca654fd6a39d2a1a685b214557e7f92e0a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page