Growatt Server API Guide
Growatt Server API Guide
1 Contents
1 Contents ................................................................................................................................... 1
4.1.4 Get the list of end users for the business (GET mode) ..................................... 5
4.2.1 Obtain a list of all users' power stations (GET mode) ....................................... 6
4.2.6 Obtain the historical power generation of a power plant (GET) ...................... 9
4.3.9 Batch access to the latest real-time data inverter (POST) .............................. 19
4.3.10 Check whether the SN format of the collector meets the requirements and
check code is correct (POST) ......................................................................................... 23
4.3.13 Access to the latest energy storage machine real-time data (POST).............. 25
Need token authentication please contact Growatt New Energy Co. to obtain the only token
3 Address header:
http://test.growatt.com/v1/
4 Interface example
4.1 User
"data": {
"c_user_id":12
},
"error_code": 0,
"error_msg": ""
"data": {
“”
},
"error_code": 0,
"error_msg": ""
"data": {
“”
},
"error_code": 0,
"error_msg": ""
4.1.4 Get the list of end users for the business (GET mode)
Interface address:
http://test.growatt.com/v1/user/c_user_list
The interface requires parameters:
page:1
perpage:10
Examples:
"data": {
"count": 4,
"c_user": [
{
"c_user_email": "[email protected]",
"c_user_id": "8",
"c_user_name": "tt",
"c_user_regtime": "2016-02-25",
"c_user_tel": "13875214562"
},
"error_code": 0,
"error_msg": ""
"data": {
"count": 1,
"plants": [
"plant_id": 1,
"user_id": 1,
},
"error_code": 0,
"error_msg": ""
}
4.2.2 Update the power station (POST)
Interface address:
http://test.growatt.com/v1/plant/modify
The interface requires parameters:
c_user_id:141
plant_id:2
name:”qtPlantName1”
peak_power:300
longitude:”120”
latitude:”30”
timezone_id:8
currency:”RMB”
Examples:
"data": {
“”
},
"error_code": 0,
"error_msg": ""
"data": {
“”
},
"error_code": 0,
"error_msg": ""
"data": {
"locale": "en-US",
"name": "test_plant",
"user_id": 1,
"description": "",
"arrays": [
"num_modules": 1,
],
"inverters": [
"inverter_man": "",
"inverter_num": 1
},
"error_code": 0,
"error_msg": ""
"data": {
"peak_power": 341.42,
"efficiency": 4.52,
"current_power": 17.42,
"today_energy": 44.12,
…
},
"error_code": 0,
"error_msg": ""
"data": {
"count": 3,
"time_unit": "day",
"energys": [
"date": "2015-11-01",
"energy": 323.12
},
"date": "2015-11-02",
"energy": 57.14
},
"date": "2015-11-03",
"energy": 612.52
},
"error_code": 0,
"error_msg": ""
"data": {
"count": 3,
"powers": [
"time": "2015-11-01T00:00:00Z",
"power": 323.12
},
"time": "2015-11-01T00:05:00Z",
"power": 57.14
},
"time": "2015-11-01T00:10:00Z",
"power": 612.52
},
"error_code": 0,
"error_msg": ""
"data": {
"plant_id":8
},
"error_code": 0,
"error_msg": ""
"data": {
"count": 1,
"plants": [
"plant_id": 1,
"user_id": 1,
},
"error_code": 0,
"error_msg": ""
4.3 Equipment
"data": {
"count": 2,
"dataloggers": [
"sn": "601000000",
"type": 1,
"manufacturer“:"igen",
"model": "",
"last_update_time": "2015-12-08T11:00:00Z"
},
"sn": "401000000",
"type": 2,
"manufacturer“:"igen",
"model": "",
"last_update_time": "2015-11-01T12:00:00Z"
},
"error_code": 0,
"error_msg": ""
"error_code": 0,
"error_msg": ""
"error_code": 0,
"error_msg": ""
"data": {
"count": 2,
"devices": [
"device_id": 100010001,
"datalogger_sn": "601000000",
"device_sn": "YINGZHENTEST001",
"type": 1,
"manufacturer“:"igen",
"model": "",
"last_update_time": "2015-12-08T11:00:00Z"
},
"device_id": 100010002,
"datalogger_sn": "401000000",
"device_sn": "YINGZHENTEST002",
"type": 1,
"manufacturer“:"igen",
"model": "",
"last_update_time": "2015-12-01T12:00:00Z"
}
]
},
"error_code": 0,
"error_msg": ""
"data": {
"datalogger_sn": "401000001",
"sn": "YINGZHEN1",
"next_page_start_id": "1000101_12313",
"datas": [
"ipv1": 0.2,
"ipv2": 0.1,
"ipv3": 0.1,
"vpv1": 481.2,
"vpv2": 481.2,
"vpv3": 481.2,
"iac1": 1.8,
"iac2": 1.8,
"iac3": 1.8,
"vac1": 238.2,
"vac2": 238.2,
"vac3": 238.2,
"power": 185,
"today_energy": 24.2,
"total_energy": 157.54,
"temperature": 45.8,
"fac": 50.04,
"power_factor": 0.6,
"time": "2015-12-08T11:00:00Z"
},
"ipv1": 0.2,
"ipv2": 0.1,
"ipv3": 0.1,
"vpv1": 481.2,
"vpv2": 481.2,
"vpv3": 481.2,
"iac1": 1.8,
"iac2": 1.8,
"iac3": 1.8,
"vac1": 238.2,
"vac2": 238.2,
"vac3": 238.2,
"power": 185,
"today_energy": 24.2,
"total_energy": 157.54,
"temperature": 45.8,
"fac": 50.04,
"power_factor": 0.6,
"time": "2015-12-08T11:05:00Z"
},
"error_code": 0,
"error_msg": ""
"data": {
"count": "102",
"sn": "YINGZHEN1",
"alarms": [
"alarm_code": "bit1",
"start_time": "2015-12-08T11:05:00Z",
"end_time": "2015-12-08T11:05:00Z",
"status": 0
},
"error_code": 0,
"error_msg": ""
"data": {
"": ""
},
"error_code": "0",
"error_msg": ""
"dataloggerSn": "AH13140003",
"device_sn": "2033022963",
"data": {
"powerToday": 883.799987792969,
"realOPPercent": 0,
"eRacTotal": 0,
"epv1Total": 0,
"wStringStatusValue": 0,
"vPidPvape": 0,
"warningValue1": 0,
"warningValue2": 0,
"temperature": 52.5999984741211,
"bigDevice": false,
"warnCode": 0,
"iPidPvbpe": 0,
"inverterId": "2033022963",
"epv2Total": 0,
"timeCalendar": {
"minimalDaysInFirstWeek": 1,
"weekYear": 2016,
"time": {
"time": 1466076286000,
"minutes": 24,
"seconds": 46,
"hours": 19,
"month": 5,
"year": 116,
"timezoneOffset": -480,
"day": 4,
"date": 16
},
"weeksInWeekYear": 53,
"gregorianChange": {
"time": -12219292800000,
"minutes": 0,
"seconds": 0,
"hours": 8,
"month": 9,
"year": -318,
"timezoneOffset": -480,
"day": 5,
"date": 15
},
"timeZone": {
"lastRuleInstance": null,
"rawOffset": 28800000,
"DSTSavings": 0,
"dirty": false,
"ID": "Asia/Shanghai",
},
"timeInMillis": 1466076286000,
"lenient": true,
"firstDayOfWeek": 1,
"weekDateSupported": true
},
"pBusVoltage": 358.899993896484,
"currentString5": 0,
"strFault": 0,
"currentString4": 0,
"currentString3": 0,
"currentString2": 0,
"currentString8": 0,
"status": 1,
"currentString7": 0,
"currentString6": 0,
"nBusVoltage": 0,
"again": false,
"currentString1": 0,
"ipmTemperature": 0,
"ppv": 2922.69995117188,
"pacs": 0,
"pacr": 2835.10009765625,
"pf": -1,
"pact": 0,
"vpv1": 244,
"iPidPvape": 0,
"vpv2": 0,
"fac": 50.0099983215332,
"vPidPvbpe": 0,
"powerTotal": 46287.5,
"epv2Today": 0,
"ipv2": 0,
"ipv1": 11.6999998092651,
"statusText": "Normal",
"timeTotal": 16706.5566666667,
"epv1Today": 0,
"id": 575,
"timeTotalText": "16706.6",
"dwStringWarningValue1": 0,
"epvTotal": 0,
"pac": 2835.10009765625,
"vact": 0,
"vacr": 229.600006103516,
"vacs": 0,
"vString1": 0,
"vString2": 0,
"vString3": 0,
"vString4": 0,
"faultType": 0,
"vString5": 0,
"vString6": 0,
"vString8": 0,
"iacs": 0,
"opFullwatt": 0,
"pidStatus": 0,
"vString7": 0,
"iact": 0,
"eRacToday": 0,
"wPIDFaultValue": 0,
"ppv2": 0,
"ppv1": 2922.69995117188,
"iacr": 12.1000003814697,
"rac": 0
},
"error_code": 0,
"error_msg": ""
"inverters": [
"2033022963",
"a65d4f6sd4",
"2033022917",
"6767676767",
"TL15300005",
"TL15300005"
],
"data": {
"2033022963": {
"dataloggerSn": "AH13140003",
"2033022963": {
"powerToday": 883.799987792969,
"realOPPercent": 0,
"eRacTotal": 0,
"epv1Total": 0,
"wStringStatusValue": 0,
"vPidPvape": 0,
"warningValue1": 0,
"warningValue2": 0,
"temperature": 52.5999984741211,
"bigDevice": false,
"warnCode": 0,
"iPidPvbpe": 0,
"inverterId": "2033022963",
"epv2Total": 0,
"timeCalendar": {
"minimalDaysInFirstWeek": 1,
"weekYear": 2016,
"time": {
"time": 1466076286000,
"minutes": 24,
"seconds": 46,
"hours": 19,
"month": 5,
"year": 116,
"timezoneOffset": -480,
"day": 4,
"date": 16
},
"weeksInWeekYear": 53,
"gregorianChange": {
"time": -12219292800000,
"minutes": 0,
"seconds": 0,
"hours": 8,
"month": 9,
"year": -318,
"timezoneOffset": -480,
"day": 5,
"date": 15
},
"timeZone": {
"lastRuleInstance": null,
"rawOffset": 28800000,
"DSTSavings": 0,
"dirty": false,
"ID": "Asia/Shanghai",
},
"timeInMillis": 1466076286000,
"lenient": true,
"firstDayOfWeek": 1,
"weekDateSupported": true
},
"pBusVoltage": 358.899993896484,
"currentString5": 0,
"strFault": 0,
"currentString4": 0,
"currentString3": 0,
"currentString2": 0,
"currentString8": 0,
"status": 1,
"currentString7": 0,
"currentString6": 0,
"nBusVoltage": 0,
"again": false,
"currentString1": 0,
"ipmTemperature": 0,
"ppv": 2922.69995117188,
"pacs": 0,
"pacr": 2835.10009765625,
"pf": -1,
"pact": 0,
"vpv1": 244,
"iPidPvape": 0,
"vpv2": 0,
"fac": 50.0099983215332,
"vPidPvbpe": 0,
"powerTotal": 46287.5,
"epv2Today": 0,
"ipv2": 0,
"ipv1": 11.6999998092651,
"statusText": "Normal",
"timeTotal": 16706.5566666667,
"epv1Today": 0,
"id": 575,
"timeTotalText": "16706.6",
"dwStringWarningValue1": 0,
"epvTotal": 0,
"pac": 2835.10009765625,
"vact": 0,
"vacr": 229.600006103516,
"vacs": 0,
"vString1": 0,
"vString2": 0,
"vString3": 0,
"vString4": 0,
"faultType": 0,
"vString5": 0,
"vString6": 0,
"vString8": 0,
"iacs": 0,
"opFullwatt": 0,
"pidStatus": 0,
"vString7": 0,
"iact": 0,
"eRacToday": 0,
"wPIDFaultValue": 0,
"ppv2": 0,
"ppv1": 2922.69995117188,
"iacr": 12.1000003814697,
"rac": 0
},
"error_code": 0,
"error_msg": ""
4.3.10 Check whether the SN format of the collector meets the requirements and check
code is correct (POST)
Interface address:
http://test.growatt.com/v1/device/datalogger/validate
The interface requires parameters:
datalogSn:”AH13140005”
valiCode:”45117”
Examples:
"dataloggerSn": "AH13140005",
"valiCode": "45117",
"data": {
"plant_id": 107,
"user_id": 105,
"datalogger_sn": "4KZ262840D"
},
"error_code": 10003,
"error_msg": "error_snIsExist"
"data": {
"count": 26,
"storage_sn": "I435100018",
"alarms": [
"alarm_code": 201,
"status": 1,
"alarm_message": "Firmware version mismatch(when: Firmware version mismatch; suggestion: Update FW with right
version)"
},
"alarm_code": 0,
"status": 1,
},
"error_code": 0,
"error_msg": ""
{
"data": {
"": ""
},
"error_code": "0",
"error_msg": ""
4.3.13 Access to the latest energy storage machine real-time data (POST)
Interface address:
http://test.growatt.com/v1/device/storage/storage_last_data
The interface requires parameters:
storage_sn:”Y873140005”
Examples:
"device_sn": "I435100018",
"dataloggerSn": "YU34130371",
"data": {
"gaugeRM1": 0,
"gaugeRM2": 0,
"eDischargeToday": 0.2,
"epvToday": 0,
"temperature": 31.7000007629395,
"errorText": "Unknown",
"eDischargeTotal2": 0,
"eChargeToday2": 0,
"pCharge2": 0,
"gaugePackStatus": 0,
"pDischarge": 595.2,
"bmsCurrent": 0,
"cycleCount": 0,
"maxChargeOrDischargeCurrent": 0,
"pDischarge2": 0,
"chargeToStandbyReason": 0,
"again": false,
"ipmTemperature": 32.5,
"ppv": 0.1,
"iacToGrid": 0,
"eChargeToday": 0,
"remoteCntlEn": 0,
"eToUserToday": 0,
"gaugeBattteryStatus": 0,
"normalPower": 0,
"iDischarge": 1.70000004768372,
"pacToUser": 8.9,
"deviceType": 0,
"eDischargeTotal": 8.3,
"capacity": 82,
"epvTotal": 12.5,
"bmsError": 0,
"dataLogSn": "",
"dischargeToStandbyReason": 0,
"pacToGrid": 0,
"remoteCntlFailReason": 0,
"eChargeTotal2": 0,
"batTemp": 0,
"iacToUser": 1.5,
"bmsStatus": 0,
"pCharge": 0,
"errorCode": 0,
"eChargeTotal": 0,
"eToGridTotal": 0,
"ipv": 0.100000001490116,
"vBus": 0,
"bmsTemperature": 0,
"eToUserTotal": 0,
"warnCode": 0,
"dischargeToStandbyReasonText": "Unknown",
"epvToday2": 0,
"serialNum": "I435100018",
"vBuck2": 0,
"status": 2,
"storageBean": null,
"epvTotal2": 0,
"eDischargeToday2": 0,
"chargeToStandbyReasonText": "Unknown",
"faultCode": 0,
"day": "",
"gaugeICCurrent": 0,
"lost": true,
"statusText": "Discharge",
"warnText": "Unknown",
"vBat": 56,
"withTime": false,
"iCharge": 0,
"calendar": {
"minimalDaysInFirstWeek": 1,
"weekYear": 2015,
"time": {
"time": 1426500913000,
"minutes": 15,
"seconds": 13,
"hours": 18,
"month": 2,
"year": 115,
"timezoneOffset": -480,
"day": 1,
"date": 16
},
"weeksInWeekYear": 52,
"gregorianChange": {
"time": -12219292800000,
"minutes": 0,
"seconds": 0,
"hours": 8,
"month": 9,
"year": -318,
"timezoneOffset": -480,
"day": 5,
"date": 15
},
"timeZone": {
"lastRuleInstance": null,
"rawOffset": 28800000,
"DSTSavings": 0,
"dirty": false,
"ID": "Asia/Shanghai",
"displayName": "中国标准时间"
},
"timeInMillis": 1426500913000,
"lenient": true,
"firstDayOfWeek": 1,
"weekDateSupported": true
},
"alias": "",
"vBuck": 379.100006103516,
"eToGridToday": 0,
"address": 0,
"vac": 228.399993896484,
"ppv2": 0,
"vpv": 1.39999997615814
},
"error_code": 0,
"error_msg": ""
"data": {
"datas": [
"eChargeTotal": 0,
"eToGridTotal": 0,
"gaugeRM1": 0,
"vBus": 0,
"ipv": 0.100000001490116,
"bmsTemperature": 0,
"gaugeRM2": 0,
"eDischargeToday": 1.2,
"eToUserTotal": 0,
"epvToday": 0,
"temperature": 35.7000007629395,
"errorText": "Unknown",
"warnCode": 0,
"eDischargeTotal2": 0,
"dischargeToStandbyReasonText": "Unknown",
"eChargeToday2": 0,
"pCharge2": 0,
"epvToday2": 0,
"gaugeOperationStatus": 0,
"gaugePackStatus": 0,
"serialNum": "I435100018",
"pDischarge": 591.9,
"vBuck2": 0,
"bmsCurrent": 0,
"status": 2,
"cycleCount": 0,
"pDischarge2": 0,
"maxChargeOrDischargeCurrent": 0,
"storageBean": null,
"again": false,
"chargeToStandbyReason": 0,
"ipmTemperature": 37.2000007629395,
"ppv": 0.1,
"iacToGrid": 0,
"epvTotal2": 0,
"eDischargeToday2": 0,
"vpv2": 0,
"chargeToStandbyReasonText": "Unknown",
"eChargeToday": 0,
"remoteCntlEn": 0,
"day": "",
"faultCode": 0,
"gaugeICCurrent": 0,
"lost": true,
"eToUserToday": 0,
"statusText": "Discharge",
"gaugeBattteryStatus": 0,
"normalPower": 0,
"warnText": "Unknown",
"vBat": 56,
"iDischarge": 1.70000004768372,
"pacToUser": 12.6,
"deviceType": 0,
"eDischargeTotal": 9.3,
"capacity": 82,
"withTime": false,
"epvTotal": 12.5,
"bmsError": 0,
"dataLogSn": "",
"iCharge": 0,
"calendar": {
"minimalDaysInFirstWeek": 1,
"time": {
"time": 1426506969000,
"minutes": 56,
"seconds": 9,
"hours": 19,
"month": 2,
"timezoneOffset": -480,
"year": 115,
"day": 1,
"date": 16
},
"weekYear": 2015,
"weeksInWeekYear": 52,
"gregorianChange": {
"time": -12219292800000,
"minutes": 0,
"seconds": 0,
"hours": 8,
"month": 9,
"timezoneOffset": -480,
"year": -318,
"day": 5,
"date": 15
},
"timeZone": {
"lastRuleInstance": null,
"DSTSavings": 0,
"rawOffset": 28800000,
"ID": "Asia/Shanghai",
"dirty": false,
"displayName": "中国标准时间"
},
"lenient": true,
"timeInMillis": 1426506969000,
"firstDayOfWeek": 1,
"weekDateSupported": true
},
"dischargeToStandbyReason": 0,
"pacToGrid": 0,
"remoteCntlFailReason": 0,
"alias": "",
"eChargeTotal2": 0,
"batTemp": 0,
"iacToUser": 1.5,
"bmsStatus": 0,
"vBuck": 377.299987792969,
"eToGridToday": 0,
"pCharge": 0,
"address": 0,
"errorCode": 0,
"vac": 229.399993896484,
"ppv2": 0,
"vpv": 1.60000002384186
],
"next_page_start_id": 3,
"count": 967,
"storage_sn": "I435100018",
"datalogger_sn": "YU34130371"
},
"error_code": 0,
"error_msg": ""
"device_sn": "2033022963",
"dataloggerSn": "GT25290025",
"data": {
"model": 33079,
"fwVersion": "G.2.0",
"treeName": "杨帆",
"lost": true,
"location": "null",
"updateExist": false,
"treeID": "2033022963",
"powerMaxTime": "",
"lastUpdateTime": {
"time": 1466076277000,
"minutes": 24,
"seconds": 37,
"hours": 19,
"month": 5,
"year": 116,
"timezoneOffset": -480,
"day": 4,
"date": 16
},
"children": [],
"statusText": "inverter.status.lost",
"inverterInfoStatusCss": "vsts_table_ash",
"energyMonthText": "0",
"nominalPower": 2870,
"bigDevice": false,
"id": 643,
"groupID": 0,
"level": 4,
"imgPath": "./css/img/status_gray.gif",
"energyDay": 0,
"power": 0,
"serialNum": "2033022963",
"dataLogSn": "GT25290025",
"createDate": null,
"innerVersion": "0G240000",
"energyMonth": 0,
"powerMax": "",
"modelText": "A0B0D0T0P8U1M3S7",
"energyDayMap": {},
"status": -1,
"eToday": 0,
"alias": "杨帆",
"powerMaxText": "",
"eTotal": 0,
"loadText": "0%",
"tcpServerIp": "",
"userID": 0,
"rfStick": null,
"parentID": "LIST_GT25290025_0",
"address": 2
},
"error_code": 0,
"error_msg": ""