Getting Started

Install

PySMA is available on pypi and can be installed using pip.

pip install pysma

Create SMA instance

The SMA class requires a ClientSession object, an URL and a password. The default user group is “user”, but can be changed by passing it as the fourth group parameter.

session = aiohttp.ClientSession(connector=aiohttp.TCPConnector(ssl=False))
url = "https://device-hostname"
password = "MyPassword!"

sma = pysma.SMA(session, url, password)

Create Sensors

To retrieve values from the device you need a Sensors object. The easiest way is to generate one using the get_sensors() method. This will query the device to figure out the device class and returns a Sensors object containing specific Sensor objects for your device.

sma_sensors = sma.get_sensors()

Alternatively this can be manually created by initializing an empty Sensors object and adding new Sensor objects to it using the add() method. Predefined sensors can be found in pysma.definitions. See also definitions.py at Github.

sma_sensors = Sensors()
my_sensor = Sensor("6300_12345678_0", "dummy_sensor") # This key won't work!
sma_sensors.add(my_sensor)
sma_sensors.add(pysma.definitions.pv_power_a)

Read Sensor values

Now you have a Sensors object, you can pass this to read() to read the values from the device. The retrieved values are stored in the respective Sensor.

sma.read(sma_sensors)

for sma_sensor in sma_sensors:
    print(f"{sma_sensor.name}: {sma_sensor.value}")

Complete Example

A full example can be found in the Github repository