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:
objectDetailed configuration and runtime data for a single PV station.
Queries the
/station_findendpoint 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’sMySolensoStationsub-module.Use
set_station_find()to switch to any station that belongs to the account (validated against the station list).- Parameters:
parent – Instance of
MySolensoproviding access to theauthandstationsub-modules.- Raises:
MySolensoException – If
parent.station.station_idisNone(no active station set), or if the API response is invalid.
- parent
Reference to the parent
MySolensoobject.
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
idis validated against the station list returned bystationsto 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
idis not found in the account’s station list, or if the subsequent API call fails.- Return type:
Example
client.station_data.set_station_find(999999) print(client.station_data.name)
- property all_data: dict
Full raw response returned by the
/station_findendpoint.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
datafield of the response.- Return type:
- property station_id: int
Identifier of the station currently loaded.
- Returns:
Station ID used for the last
/station_findAPI call.- Return type:
- property name: str
Name of the photovoltaic installation.
- Returns:
namefield of the station detail record.- Return type:
- property create_at: str
Date the station was registered on the platform.
- Returns:
create_atfield (ISO 8601 format or similar).- Return type:
- property capacitor: str
Solar panel capacity of the station (kVA).
- Returns:
capacitorfield of the station detail record.- Return type:
- property address: str
Full geographic address of the station.
- Returns:
addressfield of the station detail record.- Return type:
- 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:
configfield of the station detail record.- Return type:
- property is_stars: int
Indicates whether the station is marked as a favourite (“starred”).
- Returns:
is_starsfield.- Return type:
- property money_unit: str
Currency code used for financial calculations on this station.
- Returns:
money_unitfield (e.g."EUR","USD").- Return type:
- 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_pricefield (unit depends onmoney_unit).- Return type:
- 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:
timezonefield, typically containing an IANA timezone identifier and UTC offset.- Return type:
- property local_time: str
Current local time at the station’s location.
- Returns:
local_timefield as returned by the API (format:"YYYY-MM-DD HH:MM:SS"or similar).- Return type:
- 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_powerfield of the station detail record.- Return type: