mysolenso.services.stationdata - Station Detail Data

MySolenso detailed PV station data service.

Provides the MySolensoStationData class, which queries the /station_find endpoint and exposes extended configuration and runtime data for a specific photovoltaic station.

Unlike MySolensoStation, which returns a paginated list of stations, this service fetches the full detail record of a single station (pricing, timezone, config, local time, etc.).

This module is intended to be instantiated by MySolenso and accessed via client.station_data.

Example

client = MySolenso(username="jdoe", token="tok")

# Detailed data for the currently active station
print(client.station_data.station_id)
print(client.station_data.name)
print(client.station_data.electricity_price)
print(client.station_data.local_time)
print(client.station_data.timezone)

# Switch to a different station by its ID
client.station_data.set_station_find(43)
print(client.station_data.install_power)
class mysolenso.services.stationdata.MySolensoStationData(parent)[source]

Bases: object

Detailed configuration and runtime data for a single PV station.

Queries the /station_find endpoint with a station ID and exposes the full detail record as Python properties. The active station defaults to the one currently selected in the parent’s MySolensoStation sub-module.

Use set_station_find() to switch to any station that belongs to the account (validated against the station list).

Parameters:

parent – Instance of MySolenso providing access to the auth and station sub-modules.

Raises:

MySolensoException – If parent.station.station_id is None (no active station set), or if the API response is invalid.

parent

Reference to the parent MySolenso object.

Note

Every call to set_station_find() triggers a new network request to refresh all properties.

Example

client = MySolenso(username="jdoe", token="tok")
sd = client.station_data

print(sd.station_id)          # active station ID
print(sd.name)                # "My Solar Roof"
print(sd.electricity_price)   # 0.1740
print(sd.money_unit)          # "EUR"
print(sd.local_time)          # "2026-05-14 10:32:00"
sd.set_station_find(43)       # switch and reload
set_station_find(id)[source]

Switch the active station and reload all properties from the API.

The provided id is validated against the station list returned by stations to prevent requests for stations that do not belong to the account.

Parameters:

id (int) – Station ID to activate. Must exist in the account’s station list.

Raises:

MySolensoException – If id is not found in the account’s station list, or if the subsequent API call fails.

Return type:

None

Example

client.station_data.set_station_find(999999)
print(client.station_data.name)
property all_data: dict

Full raw response returned by the /station_find endpoint.

Useful for accessing fields not exposed by the other properties.

Example

{

“id”: 9999999, “gid”: 123456, “name”: “DOE JOHN”, “type”: 1, “tz_id”: 42, “city_code”: “FR99999000000000”, “status”: 40, “create_by”: 299988, “create_at”: “2025-11-08 10:44:51”, “classify”: 1, “tz_name”: “UTC+01”, “pic_path”: “”, “capacitor”: “5”, “address”: “95 Moon Road, 99999 Galaxy, World”, “layout_step”: 2, “is_balance”: 0, “is_reflux”: 0, “remarks”: “”, “config”: {

“sun_spec_num”: 0, “power_limit”: “”, “power_limit_pf”: “”, “power_limit_re”: “”, “module_max_power”: 0, “owner_is_show_layout”: 1, “owner_is_modify_dev”: 0, “third_party_user”: [], “billing_type”: 0, “billing_start”: “”, “billing_every”: 0, “client_type”: 100, “layout_show”: 1, “fcs”: 0, “ess_cfg_edit”: 0, “grid_type”: 0, “diy”: 0, “weather”: 0, “au”: 0, “cr”: 0, “split_power”: 0, “dw”: 0, “eps”: 0

}, “is_stars”: 0, “money_unit”: “EUR”, “electricity_price”: 0.25, “in_price”: 0, “usd”: “”, “nk_name”: null, “int5m”: 0, “is_3rd”: 0, “dc”: 0, “et”: 0, “city_id”: 41641, “weather_of_cid”: 0, “timezone”: {

“id”: 42, “dis_name”: “(UTC+01:00) Windhoek”, “name”: “Africa/Windhoek”, “tz_name”: “UTC+01”, “offset”: 7200000

}, “local_time”: “2026-05-12 14:39:07”, “parent_city”: [

{

“id”: 69, “pid”: 0, “code”: “FR00000000000000”, “weather_of_cid”: 0, “city_name”: “World”, “country_code”: “FR”, “level”: 1

}, {

“id”: 41636, “pid”: 69, “code”: “FR99000000000000”, “weather_of_cid”: 0, “city_name”: “Galaxy”, “country_code”: “FR”, “level”: 2

}, {

“id”: 41641, “pid”: 41636, “code”: “FR99999000000000”, “weather_of_cid”: 0, “city_name”: “Moon”, “country_code”: “FR”, “level”: 3

}

], “latitude”: “39.10884652257048”, “longitude”: “-76.77128918829347”, “meter_location”: 0, “owner_list”: [

{

“uid”: 111111, “name”: “John DOE”, “user_name”: “JDOE”

}

], “group”: {

“id”: 123456, “name”: “Install Solenso”, “pid”: 111139, “type”: 4, “contact”: “John Solenso”, “phone”: “+33700000000”, “area”: “”, “icon”: “”

}, “money_data”: {

“code”: “EUR”, “unit”: “€”

}, “warn_data”: {

“s_uoff”: false, “s_ustable”: false, “s_uid”: false, “l3_warn”: false, “g_warn”: false, “me_warn”: false, “dl”: null, “pw_off”: false

}, “bms_capacitor”: “0”, “inv_mode”: 0, “create_by_name”: “SOLENSO_ADMIN”, “lack”: 0, “ak”: “aP9kGrfAzvTe41dR2R1kjfWlldns”, “flag_map”: {

“gfi”: 1

}

}

Returns:

Complete dictionary from the data field of the response.

Return type:

dict

property station_id: int

Identifier of the station currently loaded.

Returns:

Station ID used for the last /station_find API call.

Return type:

int

property name: str

Name of the photovoltaic installation.

Returns:

name field of the station detail record.

Return type:

str

property create_at: str

Date the station was registered on the platform.

Returns:

create_at field (ISO 8601 format or similar).

Return type:

str

property capacitor: str

Solar panel capacity of the station (kVA).

Returns:

capacitor field of the station detail record.

Return type:

str

property address: str

Full geographic address of the station.

Returns:

address field of the station detail record.

Return type:

str

property config: dict

Station configuration object returned by the API.

Contains hardware and software settings specific to the installation.

Example

{

“sun_spec_num”: 0, “power_limit”: “”, “power_limit_pf”: “”, “power_limit_re”: “”, “module_max_power”: 0, “owner_is_show_layout”: 1, “owner_is_modify_dev”: 0, “third_party_user”: [], “billing_type”: 0, “billing_start”: “”, “billing_every”: 0, “client_type”: 100, “layout_show”: 1, “fcs”: 0, “ess_cfg_edit”: 0, “grid_type”: 0, “diy”: 0, “weather”: 0, “au”: 0, “cr”: 0, “split_power”: 0, “dw”: 0, “eps”: 0

}

Returns:

config field of the station detail record.

Return type:

dict

property is_stars: int

Indicates whether the station is marked as a favourite (“starred”).

Returns:

is_stars field.

Return type:

int

property money_unit: str

Currency code used for financial calculations on this station.

Returns:

money_unit field (e.g. "EUR", "USD").

Return type:

str

property electricity_price: float

Electricity sale/buy price configured for this station.

Used by the platform to estimate revenue or savings from solar production.

Returns:

electricity_price field (unit depends on money_unit).

Return type:

float

property timezone: dict

Timezone information object for the station’s location.

Example

{

“id”: 42, “dis_name”: “(UTC+01:00) Windhoek”, “name”: “Africa/Windhoek”, “tz_name”: “UTC+01”, “offset”: 7200000

}

Returns:

timezone field, typically containing an IANA timezone identifier and UTC offset.

Return type:

dict

property local_time: str

Current local time at the station’s location.

Returns:

local_time field as returned by the API (format: "YYYY-MM-DD HH:MM:SS" or similar).

Return type:

str

property install_power: dict

Installed peak power of the station (in Wp or kWp).

Example

{

“id”: 123456, “name”: “Install Solenso”, “pid”: 111139, “type”: 4, “contact”: “John Solenso”, “phone”: “+33700000000”, “area”: “”, “icon”: “”

}

Returns:

install_power field of the station detail record.

Return type:

dict