Skip to content

JSON Settings string

The settings of a channel are represented in a JSON string. When using SetChannelSettings, this is value that the software expects. It is not required to provide the full JSON. Any fields not included in the JSON are ignored and those settings will not be affected. See example, for simple settings string to perform basic measurements.

Below is an example of the full channel settings string.

{
  "Enable":false,
  "User":"User",
  "Device":"Sample",
  "Channel":{
    "VoltageLimit":"10 V",
    "CurrentLimit":0,
    "Inverted":false
  },
  "JV":{
    "Vmin (V)":-0.1,
    "Vmax (V)":0.5,
    "Step (mV)":20,
    "ScanRate (mV/s)":200,
    "VocDetect":true,
    "Overvoltage (%)":10,
    "ScanOrder":"FW then RV"
  },
  "Tracking":{
    "TrackEnable":true,
    "Algorithm":"MPPT",
    "Perturbation (V)":0.02,
    "ConstantOutput":0.2,
    "SaveInterval (s)":10,
    "jvInterval":{"Value":1,"Unit":"min"},
    "TestDuration":{"Value":100,"Unit":"hours"}
  },
  "Cell":{
    "Type":"Cell",
    "Area (cm2)":1,
    "NrCells":1
  },
  "Day-Night":{
    "Use Global":false,
    "Settings":{
      "enable":true,
      "sensor":2,
      "threshold_value":50,
      "threshold_duration":5,
      "night_algorithm":"Open circuit",
      "night_jv":false
    }
  },
  "Light":{"Irradiance":100,"Unit":"mW/cm2"},
  "Note":""
}

Parameter Description

The following sections provides details of each parameter.

Top-level meta-data

Parameter Description Example Unit Type
Enable Enables or disables the channel true boolean
User Name of the user User string
Device Device name Sample string

Channel (object)

Parameter Description Example Unit Type
VoltageLimit¹ Maximum voltage 10 V V string
CurrentLimit Current range 0 integer
InvertedStructure Inverts the applied voltage false boolean
¹ Voltage Limit

The voltage limit of each board is 10 V. 20 V can be reached by connecting two boards in series and wiring the positive contacts to the device and the negative contacts together.

JV (object)

Parameter Description Example Unit Type
Vmin (V) Minimum voltage -0.1 V float
Vmax (V) Maximum voltage 2 V float
Step Voltage increment per step 20 mV integer
ScanRate (mV/s) Rate at which voltage is applied 100 mV/s float
VocDetect Enable open-circuit detection true boolean
ScanOrder² Order of scanning FW then RV string
² ScanOrder enum

FW then RV
RV then FW
Forward only
Reverse only

Tracking (object)

Parameter Description Example Unit Type
TrackEnable Enables tracking true boolean
Algorithm³ Algorithm used for tracking MPPT string
Perturbation (V) Voltage differential for tracking 0.01 V float
ConstantOutput Maintain a constant output 0.2 * float
SaveInterval (s) Time between saved data points 10 s integer
jvInterval.Value Time between JV scans 10 float
jvInterval.Unit⁴ Unit for JV interval min string
TestDuration.Value Duration of tracking test 100 float
TestDuration.Unit⁴ Unit for test duration hours string
³ Tracking Algorithm options

MPPT
Open circuit
Short circuit
Fixed Voltage
Fixed Voltage (no track)
Fixed Current

⁴ Time Unit options

seconds
minutes
hours

Cell (object)

Parameter Description Example Unit Type
Type⁵ Cell type Cell string
Area (cm2) Area of the cell 1 cm² float
NrCells Number of cells 1 integer
⁵ Cell Type options

Cell
Parallel Module
Z Module
W Module

Day-Night (object)

Parameter Description Example Unit Type
Use Global Use the global settings false boolean
enable Enable the day-night cycling true boolean
sensor Channel of the sensor 1 integer
threshold_value Threshold between day and night 50 float
threshold_duration Delay after threshold is reach 5 min float
night_algorithm Algorithm during night time Open-circuit string
night_jv Perform JV during night time false boolean
Note

The settings object is ignore if the "Use Global" is enabled

Note

Parameter Description Example Unit Type
Note Free-to-use field for comments string

Examples

Below you can find a list of several example settings strings the system accepts. It is rarely necessary to send the full settings string, you can send only the settings that you want to change.

Turn on the channel

{"Enable":true}

Change the user and device name

{
  "User":"User",
  "Device":"Sample",
}

Configure a single JV

{
  "Enable":true,
  "User":"User",
  "Device":"Sample",
  "JV":{
    "Vmin (V)":-0.1,
    "Vmax (V)":1.2,
    "Step (mV)":50,
    "ScanRate (mV/s)":200,
    "VocDetect":true,
    "Overvoltage (%)":10,
    "ScanOrder":"FW then RV"
  },
  "Tracking":{
    "TrackEnable":false
  },
  "Cell":{
    "Area (cm2)":0.91,
  },
  "Light":{"Irradiance":100,"Unit":"mW/cm2"}
}