Last Updated: Aug. 5, 2024
- siteId
- timestamp
- pvString
- inverter
- battery
- pvTemperature
- ambientTemperature
- wind
- irradiance
- soilingRatio
- pushPullForce
"siteId":"0001",
The variable siteId serves as the unique identifier for a PV (photovoltaic) plant. It is of the string data type, and its value can be any string, such as "anywhere." However, for the sake of clarity and consistency, we recommend using a numeric string in the format of "0001" to "9999" to represent site identifiers.
"timestamp":"2023-10-23T15:30:00",
The timestamp value is provided in the ISO 8601 format, which is widely recognized and standardized for date and time representation. The format YYYY-MM-DDTHH:MM:SS provides a clear and unambiguous way to represent date and time information. In this example, the timestamp represents October 23, 2023, at 15:30:00 (3:30 PM).
"pvString": [
{
"stringId": 1,
"voltage": 20.1,
"current": 1.9,
"power": 38
},
{
"stringId": 2,
"voltage": 20.3,
"current": 2.1,
"power": 43
}
]
The JSON object pvString is an array that can contain one to 30 objects. Each object within the 'pvString' array possesses the following attributes:
-
stringId: This attribute serves as a unique identifier for a PV string and is represented as a decimal integer ranging from 1 to 30. For example,
12. It's important to note thatstringIdvalues are sequential, starting from 1. -
voltage: The
voltageattribute represents the voltage of the PV string in volts (V). It's a decimal number with one fraction, such as20.3V. -
current: The
currentindicates the current of the PV string in amperes (A). It's presented as a decimal number with one fraction, for instance,2.1A. -
power: The
powerattribute signifies the power of the PV string, calculated as the product of voltage and current in watts (W) and represented as a decimal integer, e.g.,43W.
This JSON object structure allows you to store information about PV strings, including their unique identifiers, voltage (in volts), current (in amperes), and calculated power (in watts).
"inverter":[
{
"inverterId":1,
"voltage":[
220.0
],
"current":[
3.1
],
"power":660,
"powerFactor":100,
"frequency":59.9,
"cumulativeOutput":200.1,
"state":0
},
{
"inverterId":2,
"voltage":[
220.0,
220.1,
220.1
],
"current":[
3.0,
3.1,
3.0
],
"power":660,
"powerFactor":99,
"frequency":60.0,
"dailyEnergy":12.4,
"totalEnergy":8220.3,
"state":0
}
],
The JSON object inverter is an array that can contain one to 30 objects. Each object within the inverter array possesses the following attributes:
-
inverterId: This attribute serves as a unique identifier for a PV inverter and is represented as a decimal integer ranging from 1 to 30, e.g.,
12. It's important to note thatinverterIdvalues are sequential, starting from 1. -
voltage: The
voltageattribute represents the voltage(s) of the PV inverter in volts (V). In the array, it can comprise one or three elements for single-phase or three-phase systems, respectively. Each element is a decimal number with one fraction, such as220.3V. -
current: The
currentattribute indicates the current of the PV inverter, presented as an array with one or three elements for single-phase or three-phase systems, respectively, measured in amperes (A). Each element is a decimal number with one fraction, for instance,2.1A. -
power: The
powerattribute signifies the power of the PV inverter, calculated as the product of voltage and current, and is measured in watts (W). It is represented as a decimal integer, e.g.,600W. -
powerFactor: The
powerFactorattribute represents the power factor of the PV inverter in percent (%), and it is represented as a decimal integer, e.g.,99%. -
frequency: The
frequencyattribute denotes the frequency of the PV inverter in hertz (Hz) and is a decimal number with one fraction, e.g.,59.9Hz. -
dailyEnergy: The
dailyEnergyattribute indicates the energy generated today by the PV inverter, measured in kilowatt-hours (kWh). This value represents the total power produced from dawn until the present moment. It is expressed as a decimal number with one fractional digit, such as12.4kWh. -
totalEnergy: The
totalEnergyattribute represents the total energy generated by the PV inverter, measured in kilowatt-hours (kWh). This value is the cumulative power produced over time from manufacturing. It is depicted as a decimal number with one fractional digit, for example,8220.3kWh. -
state: The
stateattribute deciphers the state of the PV inverter using a 16-bit code.
| Bit 15 | Bit 14 | Bit 13 | Bit 12 | Bit 11 | Bit 10 | Bit 09 | Bit 08 |
|---|---|---|---|---|---|---|---|
| Grid Connect | Generating | Performance | Earth | Islanding | Grid Underfrequency | Grid Overfrequency | Grid Overcurrent |
| 0=On | 0=Run | 0=Normal | 0=Normal | 0=Normal | 0=Normal | 0=Normal | 0=Normal |
| 1=Off | 1=Stop | 1=Low | 1=Fault | 1=Fault | 1=UF | 1=OF | 1=OC |
| Bit 07 | Bit 06 | Bit 05 | Bit 04 | Bit 03 | Bit 02 | Bit 01 | Bit 00 |
|---|---|---|---|---|---|---|---|
| Grid Undervoltage | Grid Overvoltage | Over temperature | IGBT | PV Overcurrent | PV Undervoltage | PV Overvoltage | Inverter |
| 0=Normal | 0=Normal | 0=Normal | 0=Normal | 0=Normal | 0=Normal | 0=Normal | 0=On |
| 1=UV | 1=OV | 1=OT | 1=Fault | 1=OC | 1=UV | 1=OV | 1=Off |
This JSON object structure allows you to store detailed information about PV inverters, including their unique identifiers, voltage (in volts), current (in amperes), calculated power (in watts), power factor (in %), frequency (in Hz), cumulative output (in kWh), and state.
"battery":{
"SOC":90,
"SOH":100,
"voltage":48.3,
"current":5.4,
"temperature":{
"min":25.4,
"mean":33.6,
"max":55.3
},
"state":0
},
The battery JSON object provides information about battery storage:
-
SOC (State of Charge):
SOCrepresents the battery's state of charge in percent (%), and it is presented as a decimal integer, e.g.,90%. -
SOH (State of Health):
SOHrepresents the battery's state of health in percent (%), and it is represented as a decimal integer, e.g.,100%. -
voltage: The
voltageattribute indicates the voltage of the battery in volts (V). It's a decimal number with one fraction, such as48.3V. -
current: The
currentattribute signifies the current of the battery in amperes (A). It's presented as a decimal number with one fraction, for instance,5.4A.- Positive Battery Current (+): Discharge, indicating energy is being supplied from the battery to power loads.
- Negative Battery Current (-): Charge, indicating energy is being supplied to the battery for charging.
-
temperature: The
temperatureattribute provides details on the battery's temperature. It includes sub-objects formin,mean, andmax, which represent the minimum, mean, and maximum temperatures recorded by temperature sensors. Temperatures are measured in degrees Celsius (°C) as decimal numbers with one fraction, e.g.,33.6°C. If a single temperature sensor is in use, themeanvalue should be considered, with others as null. -
state: The
stateattribute deciphers the state of the battery using a 16-bit code.
This JSON object structure allows you to gather comprehensive information about battery storage, including its state of charge, state of health, voltage, current, temperature data, and operational state.
"pvTemperature":[
50.5,
51.2
],
The pvTemperature JSON object is an array that can contain one to 30 elements. Each element in the array represents the temperature of a PV (photovoltaic) module in degrees Celsius (°C) and is expressed as a decimal number with one fraction. For example, 50.5°C.
If a single PV temperature sensor is in use, the array contains one element representing the current temperature reading.
"ambientTemperature":25.3,
The ambientTemperature JSON object represents the ambient temperature in degrees Celsius (°C) and is expressed as a decimal number with one fraction, e.g., 25.3°C.
"wind":{
"speed":4.5,
"direction":180
},
The wind JSON object comprises two key attributes:
-
speed: The
speedattribute quantifies wind speed in meters per second (m/s) with one decimal fraction, represented as4.5 m/s. -
direction: The
directionattribute specifies the wind direction, expressed as a decimal integer in degrees relative to true north (°). For instance,0°corresponds to the north,90°to the east,180°to the south, and270°to the west.
"irradiance":{
"GHI":455,
"POA":[
830,
741
]
},
The irradiance JSON object encompasses two key attributes:
-
GHI (Global Horizontal Irradiance): This attribute represents the Global Horizontal Irradiance and is denoted by
GHI. It's expressed as a decimal integer in watts per square meter (W/m²), for example,455W/m². -
POA (Plane of Array): The
POAattribute stands for 'Plane of Array' irradiance and is represented as an array. It can contain one or up to 10 elements, depending on the PV plant size. Each element in thePOAarray is a decimal integer in watts per square meter (W/m²), similar toGHI. For instance,830W/m².
The 'irradiance' object allows you to gather information about both Global Horizontal Irradiance (GHI) and Plane of Array (POA) irradiance, crucial for photovoltaic systems' performance assessment.
"soilingRatio":[
12,
15
],
The soilingRatio JSON object provides insights into the soiling ratio of PV panels. It can encompass zero to ten values, depending on the number of installed soiling sensors and the size of the PV plant.
Each element within the soilingRatio array is represented as a decimal integer in percentage (%), such as 12%. A reading of 0% indicates the absence of soiling or perfect cleanliness, while 100% represents complete soiling or a significant reduction in energy output.
This object enables monitoring and understanding the soiling conditions affecting the performance of PV panels within the plant.
"pushPullForce":[
0.1,
-0.2,
0.3
]
The pushPullForce JSON object is used to measure forces at PV structure joint points, providing insights into the structure's health. Each value in the array is represented as a decimal number with one fraction in kilograms (kg), for example, 0.3kg.
In this context:
- A positive value indicates a push force.
- A negative value indicates a pull force.
The pushPullForce array can contain up to 10 elements, depending on the number of sensors installed. If no force sensor is present, the array remains null. If any element in the array exceeds a certain threshold, it indicates a structural issue that requires attention.
This object is valuable for monitoring and identifying problems in the PV structure based on force measurements.
--