Quickstart

Right after installing the package, you can start using the API.

Try the API

If you have credentials, make sure to export it in environment variables OR to pass it to the client constructor.

from calibsunapi import CalibsunApiClient

client = CalibsunApiClient(calibsun_client_id="your_client_id", calibsun_client_secret="your_client_secret")

You can start to discover the plants you have access to.

This should display the first plant object you have access to.

Then, you can directly use the plant object to get the latest forecast.

output = plant.get_latest_forecast(target=Targets.PROD)

import pandas as pd

df = pd.DataFrame(output["data"])
df.head()

Full example, iterating over all your plants and getting the latest forecast :

from calibsunapi import CalibsunApiClient, Targets

client = CalibsunApiClient(calibsun_client_id="your_client_id", calibsun_client_secret="your_client_secret")

for plant in client.list_plants():
    output = plant.get_latest_forecast(Targets.GTI)

Send measurement data to Calibsun

If you need to send your measurement data to calibsun, just as before, you can use the plant object JSON-serializable data.

from calibsunapi import CalibsunApiClient

client = CalibsunApiClient(calibsun_client_id="your_client_id", calibsun_client_secret="your_client_secret")

for plant in client.list_plants():
    data = get_my_plant_data(plant.site_id)
    plant.push_measurements(data=data)

You can also directly point to a data file and send any data you’d like in any known format. For example, with csv :

from calibsunapi import CalibsunApiClient, UploadMeasurement

client = CalibsunApiClient(calibsun_client_id="your_client_id", calibsun_client_secret="your_client_secret")

for plant in client.list_plants():
    filepath = get_my_plant_data(plant.site_id)
    plant.push_measurements(format=UploadMeasurementsFormat.CSV, filename=filepath)