Released v3.0.0

This commit is contained in:
MickMake 2022-12-15 09:42:09 +11:00
parent 8868e86df4
commit ec9386590f
2 changed files with 590 additions and 502 deletions

View File

@ -5,47 +5,135 @@
GoSungrow api login
## High-level info commands
## Top level
```
Usage:
GoSungrow info [command]
Available Commands:
get Info - Get info from iSolarCloud (table)
raw Info - Get info from iSolarCloud (raw)
json Info - Get info from iSolarCloud (json)
csv Info - Get info from iSolarCloud (json)
put Info - Set info on iSolarCloud
api Api - Low-level interface to the SunGrow api.
data Data - Mid-level access to the Sungrow api.
info Info - General iSolarCloud functions.
show Show - High-level Sungrow commands.
mqtt Connect to a HASSIO broker.
version Version - Self-manage this executable.
selfupdate Version - Update version of executable.
daemon Daemon - Daemonize commands.
cron Cron - Run a command via schedule.
config Config - Create, update or show config file.
shell Shell - Run as an interactive shell.
help Help - Extended help
help Help about any command
completion Generate the autocompletion script for the specified shell
```
```
Usage:
GoSungrow info get [command]
### api commands
Low-level interface to the SunGrow api.
```
Available Commands:
point-names Info - Get iSolarCloud point names.
mqtt Info - Get iSolarCloud MQTT service login details.
search-point-names Info - Get iSolarCloud search point names.
devices Info - Get iSolarCloud devices.
models Info - Get ALL iSolarCloud models.
templates Info - Get all defined templates.
template-points Info - List data points used in report template.
device-points Info - List all available device data points.
ls Api - List SunGrow api endpoints/areas
login Api - Login to the SunGrow api.
get Api - Get endpoint details from the SunGrow api.
raw Api - Raw response from the SunGrow api.
save Api - Save the response from the SunGrow api.
struct Api - Show response as Go structure (debug)
put Api - Put details onto the SunGrow api.
```
## Get device details
### data commands
GoSungrow info get device
GoSungrow info get search-point-names
GoSungrow info get models
## Templates
Mid-level access to the Sungrow api.
```
GoSungrow info get templates
Available Commands:
list Data - Get data from the Sungrow api (list)
table Data - Get data from the Sungrow api (table)
raw Data - Get data from the Sungrow api (raw)
json Data - Get data from the Sungrow api (json)
csv Data - Get data from the Sungrow api (csv)
graph Data - Get data from the Sungrow api (graph)
xml Data - Get data from the Sungrow api (xml)
xlsx Data - Get data from the Sungrow api (XLSX)
md Data - Get data from the Sungrow api (MarkDown)
struct Data - Show response as Go structure (debug)
```
### show commands
High-level Sungrow commands.
```
Available Commands:
ps PsId - Ps related Sungrow commands.
device Device - Device related Sungrow commands.
template Template - Template related Sungrow commands.
point Point - Point related Sungrow commands.
```
#### show ps commands
```
Available Commands:
list PsId - Show all devices on account.
tree PsId - Show the PS tree.
points PsId - List points used for a given ps_id.
data PsId - Generate points table for a given ps_id.
graph PsId - Generate graphs of points for a given ps_id.
```
#### show device commands
```
Available Commands:
list Device - List all device types.
points Device - List points used for a given device_type.
data Device - Generate points table for a given device_type.
graph Device - Generate graphs of points for a given device_type.
models Device - Get ALL Sungrow models (large list).
```
#### show template commands
```
Available Commands:
list Template - Get all defined templates.
points Template - List points used for a given template_id.
data Template - Generate points table for a given template_id.
graph Template - Generate graphs of points for a given template_id.
```
#### show point commands
```
Available Commands:
ps Point - List data points used by a given ps_id.
ps-data Point - Generate points table for a given ps_id.
ps-graph Point - Generate graphs of points for a given ps_id.
device Point - List data points used by a device.
device-data Point - Generate points table for a given device.
device-graph Point - Generate graphs of points for a given device.
template Point - List data points used by a report template.
template-data Point - Generate points table for a given report template.
template-graph Point - Generate graphs of points for a given report template.
data Point - Get data points.
graph Point - Graph data points.
scan Point - Scan full list of points.
```
## High-level data commands
### Templates
```
GoSungrow show template list
┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┓
┃ Template Id ┃ Template Name ┃ Update On ┃
┣━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━┫
@ -65,62 +153,8 @@ GoSungrow info get templates
```
## High-level data commands
```
Usage:
GoSungrow data [command]
Available Commands:
get Data - Get high-level data from iSolarCloud (table)
raw Data - Get high-level data from iSolarCloud (raw)
json Data - Get high-level data from iSolarCloud (json)
csv Data - Get high-level data from iSolarCloud (json)
graph Data - Get high-level data from iSolarCloud (graph)
```
```
Usage:
GoSungrow data get [command]
Available Commands:
stats Data - Get current inverter stats, (last 5 minutes).
template Data - Get data from report template.
points Data - Get points data for a specific date.
real-time Data - Get iSolarCloud real-time data.
psdetails Data - Get iSolarCloud ps details.
```
## General
```
GoSungrow data get stats
┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━┓
┃ Date ┃ Point Id ┃ Point Name ┃ Value ┃ Unit ┃
┣━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━┫
┃ 2022-10-08 09:55:00 │ 1129147.0 │ Co2 Reduce │ 0 │ kg ┃
┃ 2022-10-08 09:55:00 │ 1129147.0 │ Co2 Reduce Total │ 5819 │ kg ┃
┃ 2022-10-08 09:55:00 │ 1129147.0 │ Curr Power │ 788 │ W ┃
┃ 2022-10-08 09:55:00 │ 1129147.0 │ Daily Irradiation │ -- │ ┃
┃ 2022-10-08 09:55:00 │ 1129147.0 │ Equivalent Hour │ 0.27 │ Hour ┃
...
┃ 2022-10-08 09:55:00 │ 1171348.0 │ Today Income │ 0.397 │ AUD ┃
┃ 2022-10-08 09:55:00 │ 1171348.0 │ Total Capacity │ │ ┃
┃ 2022-10-08 09:55:00 │ 1171348.0 │ Total Energy │ 176.5 │ kWh ┃
┃ 2022-10-08 09:55:00 │ 1171348.0 │ Total Income │ 35.806 │ AUD ┃
┃ 2022-10-08 09:55:00 │ 1171348.0 │ Use Energy │ 6.7 │ kWh ┃
┗━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━┷━━━━━━┛
```
## Templates
```
GoSungrow info get template-points 7981
GoSungrow show template points 7981
┏━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━┓
┃ PointStruct Id ┃ Description ┃ Unit ┃
┣━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━┫
@ -147,7 +181,7 @@ GoSungrow info get template-points 7981
```
```
GoSungrow data get template 8042 20220212
GoSungrow show template data 8042 20220212
┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━┓
┃ Date/Time ┃ Point Id ┃ Point Name ┃ Value ┃ Units ┃
┣━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━┫
@ -166,22 +200,8 @@ GoSungrow data get template 8042 20220212
┗━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━┛
```
GoSungrow data graph template 8042 20220212 '{"search_string":"p13019","min_left_axis":-6000,"max_left_axis":12000}'
GoSungrow data graph template 8042 20220212 '{"search_string":"p13019"}'
GoSungrow data graph template 8042 20220212 '{"search_string":"p83106","min_left_axis":-6000,"max_left_axis":12000}'
GoSungrow data graph template 8042 20220212 '{"search_string":"p83106"}'
GoSungrow data graph template 8042 20220212 '{"title":"Testing 1. 2. 3.","time_column":"1","value_column":"4","search_column":"3","search_string":"p83106","file_name":"foo.png"}'
GoSungrow data graph template 8042 20220212 '{"title":"Testing 1. 2. 3.","time_column":1,"value_column":4,"search_column":2,"search_string":"p13019","min_left_axis":0,"max_left_axis":0}'
GoSungrow data graph template 8042 20220212 '{"title":"Testing 1. 2. 3.","time_column":1,"value_column":4,"search_column":2,"search_string":"p13149","min_left_axis":0,"max_left_axis":0}'
GoSungrow data graph template 8042 20220212 '{"title":"Testing 1. 2. 3.","time_column":1,"value_column":4,"search_column":2,"search_string":"p83106","file_name":"foo.png"}'
GoSungrow data graph template 8042 20220212 '{"title":"Testing 1. 2. 3.","time_column":1,"value_column":4,"search_column":2,"search_string":"p83106","min_left_axis":-6000,"max_left_axis":1000}'
GoSungrow data graph template 8042 20220212 '{"title":"Testing 1. 2. 3.","time_column":1,"value_column":4,"search_column":2,"search_string":"p83106","min_left_axis":-6000,"max_left_axis":12000}'
GoSungrow data graph template 8042 20220212 '{"title":"Testing 1. 2. 3.","time_column":1,"value_column":4,"search_column":2,"search_string":"p83106","min_left_axis":-6000,"max_left_axis":42000}'
GoSungrow data graph template 8042 20220212 '{"title":"Testing 1. 2. 3.","time_column":1,"value_column":4,"search_column":2,"search_string":"p83106","min_left_axis":0,"max_left_axis":0}'
GoSungrow data graph template 8042 20220212 '{"title":"Testing 1. 2. 3.","time_column":1,"value_column":4,"search_column":3,"search_string":"p83106","file_name":"foo.png"}'
GoSungrow data raw template '' 20220201
GoSungrow data save template '' 20220201
GoSungrow data save template 8042 20220212
GoSungrow show template graph 8042 20220212 p13019
GoSungrow show template graph 8042 20220212 p83106
## Hacking
@ -211,131 +231,148 @@ put Put details onto iSolarCloud
## Get device details
GoSungrow api get getPsList
GoSungrow api get getPsListByName
GoSungrow api get getPsDataSupplementTaskList
GoSungrow api get getPsUser
GoSungrow api get queryPsIdList
GoSungrow api get getInstallInfoList
GoSungrow api get getPsListStaticData
GoSungrow api get queryAllPsIdAndName
GoSungrow api get getPsDetail '{"ps_id":"1171348"}'
GoSungrow api get getPsDetailWithPsType '{"ps_id":"1171348"}'
GoSungrow api get getPsHealthState '{"ps_id":"1171348"}'
GoSungrow api get getPsWeatherList '{"ps_id":"1171348"}'
GoSungrow api get queryDeviceList '{"ps_id":"1171348"}'
GoSungrow api get queryDeviceListByUserId '{"ps_id":"1171348"}'
GoSungrow api get queryDeviceListForApp '{"ps_id":"1171348"}'
GoSungrow api get findPsType '{"ps_id":"1171348"}'
GoSungrow api get getDeviceList '{"ps_id":"1171348"}'
GoSungrow api get getIncomeSettingInfos '{"ps_id":"1171348"}'
GoSungrow api get getPowerChargeSettingInfo '{"ps_id":"1171348"}'
GoSungrow api get getPowerStationInfo '{"ps_id":"1171348"}'
GoSungrow api get WebAppService.getDeviceUuid '{"ps_key":"1171348"}'
GoSungrow api get getPowerStationForHousehold '{"ps_id":"1171348"}'
GoSungrow data get getPsList
GoSungrow data get getPsListByName
GoSungrow data get getPsDataSupplementTaskList
GoSungrow data get getPsUser
GoSungrow data get queryPsIdList
GoSungrow data get getInstallInfoList
GoSungrow data get getPsListStaticData
GoSungrow data get queryAllPsIdAndName
GoSungrow data get getPsDetail PsId:1171348
GoSungrow data get getPsDetailWithPsType PsId:1171348
GoSungrow data get getPsHealthState PsId:1171348
GoSungrow data get getPsWeatherList PsId:1171348
GoSungrow data get queryDeviceList PsId:1171348
GoSungrow data get queryDeviceListByUserId PsId:1171348
GoSungrow data get queryDeviceListForApp PsId:1171348
GoSungrow data get findPsType PsId:1171348
GoSungrow data get getDeviceList PsId:1171348
GoSungrow data get getIncomeSettingInfos PsId:1171348
GoSungrow data get getPowerChargeSettingInfo PsId:1171348
GoSungrow data get getPowerStationInfo PsId:1171348
GoSungrow data get WebAppService.getDeviceUuid PsKey:1171348
GoSungrow data get getPowerStationForHousehold PsId:1171348
## Get device data
GoSungrow api get energyTrend
GoSungrow api get getKpiInfo
GoSungrow api get queryPsProfit '{"date_id":"20221001","date_type":"1","ps_id":"1171348"}'
GoSungrow api get getPowerStationData '{"date_id":"20221001","date_type":"1","ps_id":"1171348"}'
GoSungrow api get getHouseholdStoragePsReport '{"date_id":"20221001","date_type":"1","ps_id":"1171348"}'
GoSungrow api get queryPsProfit '{"date_id":"202210","date_type":"2","ps_id":"1171348"}'
GoSungrow api get getPowerStationData '{"date_id":"202210","date_type":"2","ps_id":"1171348"}'
GoSungrow api get getHouseholdStoragePsReport '{"date_id":"202210","date_type":"2","ps_id":"1171348"}'
GoSungrow api get queryPsProfit '{"date_id":"2022","date_type":"3","ps_id":"1171348"}'
GoSungrow api get getPowerStationData '{"date_id":"2022","date_type":"3","ps_id":"1171348"}'
GoSungrow api get getHouseholdStoragePsReport '{"date_id":"2022","date_type":"3","ps_id":"1171348"}'
GoSungrow api get getPowerTrendDayData '{"BeginTime":"20221004"}'
GoSungrow api get getPowerStatistics '{"ps_id":"1171348"}'
GoSungrow api get WebAppService.showPSView '{"ps_id":"1171348"}'
GoSungrow data get energyTrend
GoSungrow data get getKpiInfo
GoSungrow data get queryPsProfit DateId:20221001 PsId:1171348
GoSungrow data get getPowerStationData DateId:20221001 PsId:1171348
GoSungrow data get getHouseholdStoragePsReport DateId:20221001 PsId:1171348
GoSungrow data get queryPsProfit DateId:202210 PsId:1171348
GoSungrow data get getPowerStationData DateId:202210 PsId:1171348
GoSungrow data get getHouseholdStoragePsReport DateId:202210 PsId:1171348
GoSungrow data get queryPsProfit DateId:2022 PsId:1171348
GoSungrow data get getPowerStationData DateId:2022 PsId:1171348
GoSungrow data get getHouseholdStoragePsReport DateId:2022 PsId:1171348
GoSungrow data get getPowerTrendDayData BeginTime:20221004
GoSungrow data get getPowerStatistics PsId:1171348
GoSungrow data get WebAppService.showPSView PsId:1171348
## Reports
GoSungrow api get getPsReport '{"report_type":"1","date_id":"20220201","date_type":"1","ps_id":"1171348"}'
GoSungrow api get getPsReport '{"report_type":"1","date_id":"20220201","date_type":"2","ps_id":"1171348"}'
GoSungrow api get getPsReport '{"report_type":"1","date_id":"20220201","date_type":"3","ps_id":"1171348"}'
GoSungrow api get reportList '{"ps_id":"1171348","report_type":"1"}'
GoSungrow api get reportList '{"ps_id":"1171348","report_type":"2"}'
GoSungrow api get reportList '{"ps_id":"1171348","report_type":"3"}'
GoSungrow api get reportList '{"ps_id":"1171348","report_type":"4"}'
GoSungrow data get getPsReport DateId:20220201 PsId:1171348
GoSungrow data get getPsReport DateId:20220201 PsId:1171348
GoSungrow data get getPsReport DateId:20220201 PsId:1171348
GoSungrow data get reportList PsId:1171348 ReportType:1
GoSungrow data get reportList PsId:1171348 ReportType:2
GoSungrow data get reportList PsId:1171348 ReportType:3
GoSungrow data get reportList PsId:1171348 ReportType:4
## Templates
GoSungrow api get template 20220202
GoSungrow api get template 8042 20220212
GoSungrow api get getTemplateList
GoSungrow api get WebAppService.queryUserCurveTemplateData '{"template_id":"8042","date_type":"1","start_time":"20220223000000","end_time":"20220223235900"}'
GoSungrow data get template 20220202
GoSungrow data get template 8042 20220212
GoSungrow data get getTemplateList
GoSungrow data get WebAppService.queryUserCurveTemplateData TemplateId:8042 StartTime:20220223000000 EndTime:20220223235900
## User/installer/support info
GoSungrow api get getUserList
GoSungrow api get getUserPsOrderList
GoSungrow api get getPhotoInfo
GoSungrow api get getOrgListByName
GoSungrow api get getOrgListByUserId
GoSungrow api get getOrgListForUser
GoSungrow api get queryUserList
GoSungrow api get getInstallerInfoByDealerOrgCodeOrId '{"dealer_org_code":"AUSCEKK7"}'
GoSungrow api get getInstallerInfoByDealerOrgCodeOrId '{"org_id":"362245"}'
GoSungrow api get getInstallerInfoByDealerOrgCodeOrId '{"org_id":"80384"}'
GoSungrow api get getInstallerInfoByDealerOrgCodeOrId '{"org_id":"80393"}'
GoSungrow api get getInstallerInfoByDealerOrgCodeOrId '{"org_id":"300977"}'
GoSungrow data get getUserList
GoSungrow data get getUserPsOrderList
GoSungrow data get getPhotoInfo
GoSungrow data get getOrgListByName
GoSungrow data get getOrgListByUserId
GoSungrow data get getOrgListForUser
GoSungrow data get queryUserList
GoSungrow data get getInstallerInfoByDealerOrgCodeOrId dealer_org_code:AUSCEKK7
GoSungrow data get getInstallerInfoByDealerOrgCodeOrId OrgId:362245
GoSungrow data get getInstallerInfoByDealerOrgCodeOrId OrgId:80384
GoSungrow data get getInstallerInfoByDealerOrgCodeOrId OrgId:80393
GoSungrow data get getInstallerInfoByDealerOrgCodeOrId OrgId:300977
## Meta-data
GoSungrow api get getDeviceTypeInfoList
GoSungrow api get getDeviceTypeList
GoSungrow api get getInvertDataList
GoSungrow api get getModuleLogTaskList
GoSungrow api get powerDevicePointList
GoSungrow api get getPowerDevicePointNames '{"device_type":"1"}'
GoSungrow api get getPowerDevicePointNames '{"device_type":"2"}'
GoSungrow api get getPowerDevicePointNames '{"device_type":"7"}'
GoSungrow api get getDeviceModelInfoList
GoSungrow api get queryUnitList
GoSungrow api get getPowerSettingCharges
GoSungrow api get getPowerDevicePointNames '{"device_type":"1"}'
GoSungrow api get getPowerDeviceModelTechList '{"device_type":"1"}'
GoSungrow api get getPowerDevicePointInfo '{"id":"1"}'
WebIscmAppService.modelPointsPage DeviceModelId:714 DeviceType:14 - Use this to fetch all points for a particular ps_key.
AppService.getPowerDevicePointNames DeviceType:14 - Point names for device.
WebIscmAppService.getModelPoints DeviceModelId:714 - Point names for device.
WebIscmAppService.queryDeviceListForBackSys - Basic relationships between devices.
AppService.queryInverterModelList
WebIscmAppService.getDeviceModel
WebIscmAppService.getPointInfo
WebIscmAppService.getPointInfoPage
WebIscmAppService.getPowerDeviceTypeList
WebIscmAppService.getPsTreeMenu
WebIscmAppService.getUserMenuLs UserId:276937
WebIscmAppService.getSysMenu MenuId:613
WebIscmAppService.getDeviceTechnical
WebIscmAppService.getDeviceType
WebIscmAppService.getDeviceTypeInfoById CodeType:14
WebIscmAppService.getCodeByType
WebIscmAppService.getDeviceFactoryListByIds
AppService.getOwnerFaultConfigList
AppService.getSungwsGlobalConfigCache
AppService.getRemoteParamSettingList CurPage:1 Size:100 DeviceType:14
WebAppService.getSelfReportPoint
WebAppService.getDevicePointAttrs Uuid:1179878 DeviceType2:14 PsId:1171348
GoSungrow data get getDeviceTypeInfoList
GoSungrow data get getDeviceTypeList
GoSungrow data get getInvertDataList
GoSungrow data get getModuleLogTaskList
GoSungrow data get powerDevicePointList
GoSungrow data get getDeviceModelInfoList
GoSungrow data get queryUnitList
GoSungrow data get getPowerSettingCharges
GoSungrow data get getPowerDeviceModelTechList DeviceType:14
GoSungrow data get getPowerDevicePointInfo Id:1
## Task commands
GoSungrow api get queryBatchCreatePsTaskList
GoSungrow api get getPowerDeviceSetTaskDetailList '{"query_type":"2","task_id":"1","uuid":"844763"}'
GoSungrow api get getPowerDeviceSetTaskDetailList '{"query_type":"7","task_id":"1","uuid":"844763"}'
GoSungrow api get getPowerDeviceSetTaskDetailList '{"size":0,"curPage":0}'
GoSungrow api get getPowerDeviceSetTaskList '{"size":0,"curPage":0}'
GoSungrow api get getPowerDeviceSetTaskList '{"size":0,"curPage":1}'
GoSungrow api get getRemoteUpgradeSubTasksList '{"query_type":"1","task_id":"1577700"}'
GoSungrow api get getRemoteUpgradeTaskList '{"ps_id_list":"1171348"}'
GoSungrow data get queryBatchCreatePsTaskList
GoSungrow data get getPowerDeviceSetTaskDetailList QueryType:2 TaskId:1 Uuid:844763
GoSungrow data get getPowerDeviceSetTaskDetailList QueryType:7 TaskId:1 Uuid:844763
GoSungrow data get getPowerDeviceSetTaskList Size:0 CurPage:1
GoSungrow data get getRemoteUpgradeSubTasksList QueryType:2 TaskId:1577700
GoSungrow data get getRemoteUpgradeTaskList PsIdList:1171348
## Misc commands
GoSungrow api get getDevicePoints '{"point_id":"13003"}'
GoSungrow api get getPowerPictureList
GoSungrow data get getDevicePoints PointId:13003
GoSungrow data get getPowerPictureList
## Hacking
GoSungrow api get checkUnitStatus
GoSungrow api get getAllPowerDeviceSetName
GoSungrow api get getAreaList
GoSungrow api get getCloudList
GoSungrow api get getConfigList
GoSungrow api get getDeviceInfo
GoSungrow api get getOSSConfig
GoSungrow api get getOssObjectStream
GoSungrow api get getEncryptPublicKey
GoSungrow api get getFaultCount
GoSungrow api get getFaultDetail '{"fault_code":"34"}'
GoSungrow api get getFaultMsgByFaultCode '{"fault_code":"703"}'
GoSungrow api get getFaultMsgListWithYYYYMM
GoSungrow data get checkUnitStatus
GoSungrow data get getAllPowerDeviceSetName
GoSungrow data get getAreaList
GoSungrow data get getCloudList
GoSungrow data get getConfigList
GoSungrow data get getDeviceInfo
GoSungrow data get getOSSConfig
GoSungrow data get getOssObjectStream
GoSungrow data get getEncryptPublicKey
GoSungrow data get getFaultCount
GoSungrow data get getFaultDetail FaultCode:34
GoSungrow data get getFaultMsgByFaultCode FaultCode:703
GoSungrow data get getFaultMsgListWithYYYYMM

View File

@ -1,15 +1,22 @@
# GoSungrow - iSolarCloud API written in GoLang.
Note: I'm currently going through a big refactor. The next major release, (v3.0.0).
[Latest releases here](https://github.com/MickMake/GoSungrow/releases)
[![Go Reference](https://pkg.go.dev/badge/github.com/MickMake/GoSungrow.svg)](https://pkg.go.dev/github.com/MickMake/GoSungrow)
## What is it?
This GoLang package has a complete, (almost complete), implementation of the iSolarCloud API.
This GoLang package has a complete implementation of the iSolarCloud API.
There's been no published specs on this, so I've had to figure it all out based on the [Android app](https://play.google.com/store/apps/details?id=com.isolarcloud.manager), using javascript IDEs and various other means.
Note:
- [iSolarCloud](https://isolarcloud.com) has no interest in developing a public API.
- Their "API" implementation is so broken with security and coding issues, I'm surprised it hasn't been exploited yet.
- iSolarCloud reached out to me, (based off this GitHub page), to see what can be done about these security issues. So that's a very good thing.
- As of 1st August 2022 I discovered a number of security holes. At which point I notified AusCert, the vendor and a number of other security companies - hopefully they will get patched because my tool makes it very easy.
![alt text](https://github.com/MickMake/GoSungrow/blob/master/docs/iSolarCloudLogin.png?raw=true)
@ -39,25 +46,35 @@ I'm currently using it in my [HomeAssistant](https://www.home-assistant.io/) ins
## What state is it in?
This is currently usable for my needs, (seeing all data in [HomeAssistant](https://www.home-assistant.io/)), but there's quite a few API endpoints that need to be implemented for completeness.
It was originally intended for my needs, (seeing all data in [HomeAssistant](https://www.home-assistant.io/)), but there seems to be a big interest in this tool.
So I've spent some time working on the v3.0.0 release.
So far I have mapped out all the API calls. It's tricky as their "API" changes regularly.
v3.0.0 changelog:
- Support better api changes. This allows a much quicker change in my code when the api changes.
- Support multiple devices. Previous versions only allowed query of one device.
- Improve cli for queries. Now can fetch endpoints in either "list" or "table" formats, the latter showing point data in a similar fashion to pivot tables in spreadsheets.
- Multiple output formats supported - not only csv, png and ascii, but markdown, xml, HTML, sql and plain MQTT.
- Lots of bug fixes. :-).
I have now mapped out all the API calls. All the read-only endpoints are mapped out and fully tested. The write-only calls haven't been tested fully.
It's tricky as their "API" changes regularly; however I've accommodated for quick changes in the v3.0.0 release.
Most endpoints contain repeated data. The main endpoints that house most of the data I've provided easy commands to access.
Of course, all endpoints are accessible. So go for your life.
I've currently mapped out these API EndPoints. All of the critical read only endpoints are mapped out, with none of the write endpoints.
Most endpoints are a repeat and a lot of the data contained is repeated.
So, in reality 50% of all endpoints are implemented.
```
+-------------------+-------------------+--------------------+------------+
| AREAS | ENABLED ENDPOINTS | DISABLED ENDPOINTS | COVERAGE % |
+-------------------+-------------------+--------------------+------------+
| AliSmsService | 0 | 1 | 0.0 % |
| AppService | 52 | 522 | 10.0 % |
| MttvScreenService | 0 | 30 | 0.0 % |
| PowerPointService | 0 | 1 | 0.0 % |
| WebAppService | 4 | 186 | 2.2 % |
| WebIscmAppService | 0 | 184 | 0.0 % |
| AliSmsService | 1 | 0 | 100 % |
| AppService | 574 | 0 | 100 % |
| MttvScreenService | 30 | 0 | 100 % |
| NullArea | 1 | 0 | 100 % |
| PowerPointService | 1 | 0 | 100 % |
| WebAppService | 190 | 0 | 100 % |
| WebIscmAppService | 184 | 0 | 100 % |
| ---------------- | ---------------- | ----------------- | --------- |
| Total | 56 | 924 | 6.1 % |
| Total | 981 | 0 | 100 % |
+-------------------+-------------------+--------------------+------------+
```
@ -67,9 +84,8 @@ So, in reality 50% of all endpoints are implemented.
This GoLang package does several things:
1. Provides ready access to all API calls via a simple get/put framework.
2. MQTT client to push to [HomeAssistant](https://www.home-assistant.io/).
3. Graphing any points data, (over daily, monthly and yearly).
4. Update a GitHub repo with SunGrow PV data, (provide full revision history for any changes made to the SunGrow PV).
5. Update a Google sheet with SunGrow PV data.
3. Graphing any data points, over daily, monthly and yearly with 5 minute to 1 hour granularity.
4. Output data to various formats - tables, JSON, CSV, raw, Graphing, XML, XLSX, Markdown, SQL, HTML and GoLang structures.
## What is the roadmap?
@ -77,20 +93,23 @@ This GoLang package does several things:
I've implemented most of the features I've wanted to, except for...
1. IFTTT support.
The most recent version has changed the code-base substantially, making it a lot more robust to changes in the API JSON schema.
## Using GoSungrow:
### Config and login.
Add your username and password to the config. (See [the website](https://portalau.isolarcloud.com/))
Once done, it's a case of set and forget. GoSungrow will handle the re-authentication for you.
```
$ ./bin/GoSungrow config write --user=USERNAME --password=PASSWORD
% ./bin/GoSungrow config write --user=USERNAME --password=PASSWORD
Using config file '/Users/mick/.GoSungrow/config.json'
```
Login to SunGrow website.
```
$ ./bin/GoSungrow api login
% ./bin/GoSungrow api login
Email: your@email.address
Create Date: Tue Nov 16 23:30:12 CST 2021
Login Last Date: 2022-03-10 17:14:49
@ -104,331 +123,380 @@ Token: 424242_42424242424242424242424242424242
Token File: /Users/mick/.GoSungrow/AppService_login.json
```
### High level reporting examples.
Produce point-in-time statistics
### High level reporting examples.
For more examples see the EXAMPLES.md and examples.txt files.
[EXAMPLES.md](https://github.com/MickMake/GoSungrow/blob/master/EXAMPLES.md)
[examples.txt](https://github.com/MickMake/GoSungrow/blob/master/examples.txt)
Show all devices on your iSolarCloud account.
```
$ ./bin/GoSungrow data get stats
+---------------------+-----------+---------------------------+---------+------+
| Date | Point Id | Point Name | Value | Unit |
+---------------------+-----------+---------------------------+---------+------+
| 2022-02-28 11:05:00 | 1129147.0 | Co2 Reduce | 3.589 | kg |
| 2022-02-28 11:05:00 | 1129147.0 | Co2 Reduce Total | 1047 | kg |
| 2022-02-28 11:05:00 | 1129147.0 | Curr Power | 641 | W |
| 2022-02-28 11:05:00 | 1129147.0 | Daily Irradiation | -- | |
| 2022-02-28 11:05:00 | 1129147.0 | Equivalent Hour | 0.36 | Hour |
| 2022-02-28 11:05:00 | 1129147.0 | Es Discharge Energy | 4.8 | kWh |
| 2022-02-28 11:05:00 | 1129147.0 | Es Energy | 1.6 | kWh |
| 2022-02-28 11:05:00 | 1129147.0 | Es Power | 641 | W |
| 2022-02-28 11:05:00 | 1129147.0 | Es Total Discharge Energy | 109.9 | kWh |
| 2022-02-28 11:05:00 | 1129147.0 | Es Total Energy | 106.2 | kWh |
| 2022-02-28 11:05:00 | 1129147.0 | Installed Power Map | 10 | kWp |
| 2022-02-28 11:05:00 | 1129147.0 | Pv Energy | 3.6 | kWh |
| 2022-02-28 11:05:00 | 1129147.0 | Pv Power | 2.291 | kW |
| 2022-02-28 11:05:00 | 1129147.0 | Radiation | -- | |
| 2022-02-28 11:05:00 | 1129147.0 | Today Energy | 3.6 | kWh |
| 2022-02-28 11:05:00 | 1129147.0 | Today Income | 1.346 | AUD |
| 2022-02-28 11:05:00 | 1129147.0 | Total Capacity | 10 | kWp |
| 2022-02-28 11:05:00 | 1129147.0 | Total Energy | 1.05 | MWh |
| 2022-02-28 11:05:00 | 1129147.0 | Total Income | 302.074 | AUD |
| 2022-02-28 11:05:00 | 1129147.0 | Use Energy | 7.6 | kWh |
+---------------------+-----------+---------------------------+---------+------+
% ./bin/GoSungrow show ps list
┏━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ Ps Key ┃ Ps Id ┃ Device Type ┃ Device Code ┃ Channel Id ┃ Serial # ┃ Factory Name ┃ Device Model ┃
┣━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┫
┃ 1129147_14_1_1 │ 1129147 │ 14 │ 1 │ 1 │ B2192301528 │ SUNGROW │ SH10RT ┃
┃ 1129147_22_247_1 │ 1129147 │ 22 │ 247 │ 1 │ B2192301528 │ SUNGROW │ WiNet-S ┃
┃ 1129147_43_2_1 │ 1129147 │ 43 │ 2 │ 1 │ B2192301528 │ SUNGROW │ SBR096 ┃
┃ 1171348_14_1_2 │ 1171348 │ 14 │ 1 │ 2 │ B2281302388 │ SUNGROW │ SH10RT-V112 ┃
┃ 1171348_22_247_2 │ 1171348 │ 22 │ 247 │ 2 │ B2281302388 │ SUNGROW │ WiNet-S ┃
┃ 1171348_43_2_2 │ 1171348 │ 43 │ 2 │ 2 │ B2281302388 │ SUNGROW │ SBR096 ┃
┗━━━━━━━━━━━━━━━━━━┷━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━┛
```
Show the device tree on your iSolarCloud account.
```
% ./bin/GoSungrow show ps tree
+ PsId:1129147 PsName:MickMake PsKey:1129147_11_0_0 DeviceName:MickMake Uuid:844763
+-- PsId:1129147 PsName:MickMake PsKey:1129147_14_1_1 DeviceName:SH10RT Uuid:844775
+---- PsId:1129147 PsName:MickMake PsKey:1129147_43_2_1 DeviceName:Battery_001_002 Uuid:1155386
+-- PsId:1129147 PsName:MickMake PsKey:1129147_22_247_1 DeviceName:WiNet-S Uuid:844774
+ PsId:1171348 PsName:MickMake42 PsKey:1171348_11_0_0 DeviceName:MickMake42 Uuid:1179860
+-- PsId:1171348 PsName:MickMake42 PsKey:1171348_22_247_2 DeviceName:Communication Module 02_247 Uuid:1179877
+-- PsId:1171348 PsName:MickMake42 PsKey:1171348_14_1_2 DeviceName:Energy Storage System 02_01 Uuid:1179878
+---- PsId:1171348 PsName:MickMake42 PsKey:1171348_43_2_2 DeviceName:Battery 02_02 Uuid:1179879
```
List all known data points for all PS on your account.
```
% ./bin/GoSungrow show ps points
# Available points:
┏━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Id ┃ Name ┃ Unit ┃ Unit Type ┃ Ps Id ┃ Device Type ┃ Device Name ┃
┣━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ p83001 │ Inverter AC Power Normalization │ kW/kWp │ 43 │ 1129147 │ 11 │ MickMake ┃
┃ p83002 │ Inverter AC Power │ kW │ 3 │ 1129147 │ 11 │ MickMake ┃
┃ p83004 │ Inverter Total Yield │ kWh │ 7 │ 1129147 │ 11 │ MickMake ┃
┃ p83005 │ Daily Equivalent Hours of Meter │ h │ 15 │ 1129147 │ 11 │ MickMake ┃
┃ p83006 │ Meter Daily Yield │ kWh │ 7 │ 1129147 │ 11 │ MickMake ┃
┃ p83007 │ Meter PR │ % │ 10 │ 1129147 │ 11 │ MickMake ┃
┃ p83008 │ Daily Equivalent Hours of Inverter │ h │ 15 │ 1129147 │ 11 │ MickMake ┃
┃ p83009 │ Daily Yield by Inverter │ kWh │ 7 │ 1129147 │ 11 │ MickMake ┃
┃ p83010 │ Inverter PR │ % │ 10 │ 1129147 │ 11 │ MickMake ┃
┃ p83011 │ Meter E-daily Consumption │ kWh │ 7 │ 1129147 │ 11 │ MickMake ┃
...
┃ p58630 │ Min. Cell Voltage of Module 5 │ mV │ 31 │ 1171348 │ 43 │ Battery 02_02 ┃
┃ p58631 │ Min. Cell Voltage of Module 6 │ mV │ 31 │ 1171348 │ 43 │ Battery 02_02 ┃
┃ p58632 │ Min. Cell Voltage of Module 7 │ mV │ 31 │ 1171348 │ 43 │ Battery 02_02 ┃
┃ p58633 │ Min. Cell Voltage of Module 8 │ mV │ 31 │ 1171348 │ 43 │ Battery 02_02 ┃
┃ p58635 │ DC Contactor State │ │ 999 │ 1171348 │ 43 │ Battery 02_02 ┃
┃ p58636 │ Fault Module ID │ │ 999 │ 1171348 │ 43 │ Battery 02_02 ┃
┗━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━┷━━━━━━━━━━━┷━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
```
Produce data table of device_type 22 on ps_id 1171348 between 20221001 and 20221002 at 60 minute increments.
```
% ./bin/GoSungrow show ps data 1171348 22 20221001 20221002 60
# DataTable AppService.queryMutiPointDataList.ResultData.Data - PsKeys:1171348_22_247_2,1171348_22_247_2,1171348_22_247_2,1171348_22_247_2,1171348_22_247_2,1171348_22_247_2,1171348_22_247_2,1171348_22_247_2 Points:p23001,p23014,p23019,p23020,p23021,p23022,p23023,p23024 PsId:1171348 StartTimeStamp:20221001000000 EndTimeStamp:20221002000000 MinuteInterval:60
┏━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Timestamp ┃ Ps Key ┃ 1171348_22_247_2.p23014 ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ 2022-10-01 00:00:00 ┃ 1171348_22_247_2 ┃ -- ┃
┃ 2022-10-01 01:00:00 ┃ 1171348_22_247_2 ┃ -- ┃
┃ 2022-10-01 02:00:00 ┃ 1171348_22_247_2 ┃ -- ┃
┃ 2022-10-01 03:00:00 ┃ 1171348_22_247_2 ┃ -- ┃
┃ 2022-10-01 04:00:00 ┃ 1171348_22_247_2 ┃ -- ┃
┃ 2022-10-01 05:00:00 ┃ 1171348_22_247_2 ┃ -- ┃
┃ 2022-10-01 06:00:00 ┃ 1171348_22_247_2 ┃ -- ┃
┃ 2022-10-01 07:00:00 ┃ 1171348_22_247_2 ┃ -- ┃
┃ 2022-10-01 08:00:00 ┃ 1171348_22_247_2 ┃ -- ┃
┃ 2022-10-01 09:00:00 ┃ 1171348_22_247_2 ┃ -- ┃
┃ 2022-10-01 10:00:00 ┃ 1171348_22_247_2 ┃ -- ┃
┃ 2022-10-01 11:00:00 ┃ 1171348_22_247_2 ┃ -- ┃
┃ 2022-10-01 12:00:00 ┃ 1171348_22_247_2 ┃ -- ┃
┃ 2022-10-01 13:00:00 ┃ 1171348_22_247_2 ┃ -- ┃
┃ 2022-10-01 14:00:00 ┃ 1171348_22_247_2 ┃ -68 ┃
┃ 2022-10-01 15:00:00 ┃ 1171348_22_247_2 ┃ -82 ┃
┃ 2022-10-01 16:00:00 ┃ 1171348_22_247_2 ┃ -81 ┃
┃ 2022-10-01 17:00:00 ┃ 1171348_22_247_2 ┃ -81 ┃
┃ 2022-10-01 18:00:00 ┃ 1171348_22_247_2 ┃ -86 ┃
┃ 2022-10-01 19:00:00 ┃ 1171348_22_247_2 ┃ -82 ┃
┃ 2022-10-01 20:00:00 ┃ 1171348_22_247_2 ┃ -90 ┃
┃ 2022-10-01 21:00:00 ┃ 1171348_22_247_2 ┃ -89 ┃
┃ 2022-10-01 22:00:00 ┃ 1171348_22_247_2 ┃ -88 ┃
┃ 2022-10-01 23:00:00 ┃ 1171348_22_247_2 ┃ -86 ┃
┃ 2022-10-02 00:00:00 ┃ 1171348_22_247_2 ┃ -83 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
```
Do the same, but with a graph!
```
% ./bin/GoSungrow show ps graph 1171348 22 20221001 20221002 60
Found ps_keys: 1129147_14_1_1,1129147_22_247_1,1129147_43_2_1,1171348_14_1_2,1171348_22_247_2,1171348_43_2_2
Finding points to graph...
Table Headers: Timestamp, Ps Key, 1171348_22_247_2.p23014
Table rows: 25
Found 1 points.
Creating graph file 'AppService.queryMutiPointDataList.ResultData.Data-1171348-1171348_22_247_2.p23014.png'
```
![alt text](https://github.com/MickMake/GoSungrow/blob/master/docs/AppService.queryMutiPointDataList.ResultData.Data-1171348-1171348_22_247_2.p23014.png?raw=true)
Get all defined report templates.
```
./bin/GoSungrow data get templates
+-------------+---------------+---------------------+
| Template Id | Template Name | Update On |
+-------------+---------------+---------------------+
| 8042 | Critical | 2022-02-15 13:00:28 |
| 8041 | extras | 2022-02-15 09:40:04 |
| 8036 | C | 2022-02-15 09:31:35 |
| 8039 | v | 2022-02-15 09:31:10 |
| 8040 | A | 2022-02-15 09:30:56 |
| 8034 | Percent | 2022-02-15 09:30:41 |
| 8038 | MWh | 2022-02-15 09:09:22 |
| 8037 | MW | 2022-02-15 09:03:22 |
| 8033 | kW | 2022-02-15 09:01:19 |
| 8035 | Hours | 2022-02-15 08:55:56 |
| 8031 | kWh | 2022-02-15 07:57:36 |
| 7981 | Power | 2022-02-09 10:03:40 |
+-------------+---------------+---------------------+
% ./bin/GoSungrow show template list
# DataTable AppService.getTemplateList.ResultData.PageList - DataTable AppService.getTemplateList.ResultData.PageList
┏━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Template Id ┃ Template Name ┃ Update Time ┃
┣━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ 7981 ┃ Power ┃ 2022-02-09 10:03:40 ┃
┃ 8031 ┃ kWh ┃ 2022-02-15 07:57:36 ┃
┃ 8035 ┃ Hours ┃ 2022-02-15 08:55:56 ┃
┃ 8033 ┃ kW ┃ 2022-02-15 09:01:19 ┃
┃ 8037 ┃ MW ┃ 2022-02-15 09:03:22 ┃
┃ 8038 ┃ MWh ┃ 2022-02-15 09:09:22 ┃
┃ 8034 ┃ Percent ┃ 2022-02-15 09:30:41 ┃
┃ 8040 ┃ A ┃ 2022-02-15 09:30:56 ┃
┃ 8039 ┃ v ┃ 2022-02-15 09:31:10 ┃
┃ 8036 ┃ C ┃ 2022-02-15 09:31:35 ┃
┃ 8041 ┃ extras ┃ 2022-02-15 09:40:04 ┃
┃ 8042 ┃ Critical ┃ 2022-02-15 13:00:28 ┃
┃ 8092 ┃ ALL1 ┃ 2022-03-09 17:18:21 ┃
┃ 8093 ┃ ALL2 ┃ 2022-03-09 17:20:42 ┃
┃ 8094 ┃ ALL3 ┃ 2022-03-09 17:36:20 ┃
┃ 8095 ┃ ALL4 ┃ 2022-03-09 17:37:56 ┃
┃ 8652 ┃ NewAll1 ┃ 2022-10-04 12:27:00 ┃
┃ 8653 ┃ NewAll2 ┃ 2022-10-04 12:28:58 ┃
┃ 8654 ┃ NewAll03 ┃ 2022-10-04 12:31:39 ┃
┃ 8655 ┃ NewAll04 ┃ 2022-10-04 12:34:51 ┃
┃ 8656 ┃ NewAll05 ┃ 2022-10-04 12:37:34 ┃
┃ 8657 ┃ NewAll06 ┃ 2022-10-04 12:38:27 ┃
┗━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━┛
```
Show all data points used in a report template.
```
$ ./bin/GoSungrow data get template-points 8040
+---------+----------------------------+------+
| PointId | Description | Unit |
+---------+----------------------------+------+
| p83106 | Load Power | kW |
| p13003 | Total DC Power | kW |
| p13019 | Internal Air Temperature | ℃ |
| p13142 | Battery Health (SOH) | % |
| p13149 | Purchased Power | kW |
| p13150 | Battery Discharging Power | kW |
| p13121 | Total Export Active Power | kW |
| p13126 | Battery Charging Power | kW |
| p13141 | Battery Level (SOC) | % |
| p13143 | Battery Temperature | ℃ |
+---------+----------------------------+------+
% ./bin/GoSungrow show template points 8040
# DataTable WebAppService.queryUserCurveTemplateData.8040.ResultData.PointsData.Devices.[1129147_14_1_1].Points - TemplateId:8040
┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ Point Id ┃ Point Name ┃ Ps Id ┃ Ps Key ┃ Color ┃ Detail Id ┃ Ps Name ┃ Statistics ┃ Style ┃ Unit ┃ Data List ┃
┣━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━┫
┃ p13002 ┃ MPPT1 Current ┃ 1129147 ┃ 1129147_14_1_1 ┃ #FFFF00 ┃ 123808 ┃ MickMake ┃ 5 ┃ 1 ┃ A ┃ ┃
┃ p13008 ┃ Phase A Current ┃ 1129147 ┃ 1129147_14_1_1 ┃ #FF0000 ┃ 123814 ┃ MickMake ┃ 5 ┃ 1 ┃ A ┃ ┃
┃ p13009 ┃ Phase B Current ┃ 1129147 ┃ 1129147_14_1_1 ┃ #00FF00 ┃ 123813 ┃ MickMake ┃ 5 ┃ 1 ┃ A ┃ ┃
┃ p13010 ┃ Phase C Current ┃ 1129147 ┃ 1129147_14_1_1 ┃ #0000FF ┃ 123812 ┃ MickMake ┃ 5 ┃ 1 ┃ A ┃ ┃
┃ p13106 ┃ MPPT2 Current ┃ 1129147 ┃ 1129147_14_1_1 ┃ #70DB93 ┃ 123807 ┃ MickMake ┃ 5 ┃ 1 ┃ A ┃ ┃
┃ p13139 ┃ Battery Current ┃ 1129147 ┃ 1129147_14_1_1 ┃ #CD7F32 ┃ 123806 ┃ MickMake ┃ 5 ┃ 1 ┃ A ┃ ┃
┃ p13162 ┃ Max. Charging Current (BMS) ┃ 1129147 ┃ 1129147_14_1_1 ┃ #C0C0C0 ┃ 123805 ┃ MickMake ┃ 5 ┃ 1 ┃ A ┃ ┃
┃ p13163 ┃ Max. Discharging Current (BMS) ┃ 1129147 ┃ 1129147_14_1_1 ┃ #9F9F9F ┃ 123804 ┃ MickMake ┃ 5 ┃ 1 ┃ A ┃ ┃
┃ p18062 ┃ Phase A Backup Current ┃ 1129147 ┃ 1129147_14_1_1 ┃ #FF00FF ┃ 123811 ┃ MickMake ┃ 5 ┃ 1 ┃ A ┃ ┃
┃ p18063 ┃ Phase B Backup Current ┃ 1129147 ┃ 1129147_14_1_1 ┃ #00FFFF ┃ 123810 ┃ MickMake ┃ 5 ┃ 1 ┃ A ┃ ┃
┃ p18064 ┃ Phase C Backup Current ┃ 1129147 ┃ 1129147_14_1_1 ┃ #000000 ┃ 123809 ┃ MickMake ┃ 5 ┃ 1 ┃ A ┃ ┃
┗━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━┷━━━━━━━━━━━━━━┛
```
Produce daily report for template 8040 for date 2022/02/24 display on STDOUT.
```
$ ./bin/GoSungrow data get template 8040 20220224
+---------------------+-----------------------+----------------------------+-------------+-------+
| Date/Time | Point Id | Point Name | Value | Units |
+---------------------+-----------------------+----------------------------+-------------+-------+
| 2022-02-24 00:00:00 | 1129147_11_0_0.p83106 | Load Power | 818.0 | kW |
| 2022-02-24 00:05:00 | 1129147_11_0_0.p83106 | Load Power | 756.0 | kW |
| 2022-02-24 00:10:00 | 1129147_11_0_0.p83106 | Load Power | 571.0 | kW |
| 2022-02-24 00:15:00 | 1129147_11_0_0.p83106 | Load Power | 557.0 | kW |
| 2022-02-24 00:20:00 | 1129147_11_0_0.p83106 | Load Power | 553.0 | kW |
| 2022-02-24 00:25:00 | 1129147_11_0_0.p83106 | Load Power | 558.0 | kW |
| 2022-02-24 00:30:00 | 1129147_11_0_0.p83106 | Load Power | 562.0 | kW |
% ./bin/GoSungrow show template data 8040 20220204 20220205 120
...
+---------------------+-----------------------+----------------------------+-------------+-------+
# DataTable AppService.queryMutiPointDataList.ResultData.Data - MinuteInterval:120 PsKeys:1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_14_1_1 Points:p13008,p13010,p13162,p18062,p13009,p18064,p13106,p13139,p13163,p18063,p13002 PsId:1129147 StartTimeStamp:20220204000000 EndTimeStamp:20220205000000
┏━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Timestamp ┃ Ps Key ┃ 1129147_14_1_1.p13002 ┃ 1129147_14_1_1.p13008 ┃ 1129147_14_1_1.p13009 ┃ 1129147_14_1_1.p13010 ┃ 1129147_14_1_1.p13106 ┃ 1129147_14_1_1.p13139 ┃ 1129147_14_1_1.p13162 ┃ 1129147_14_1_1.p13163 ┃ 1129147_14_1_1.p18062 ┃ 1129147_14_1_1.p18063 ┃ 1129147_14_1_1.p18064 ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ 2022-02-04 00:00:00 ┃ 1129147_14_1_1 ┃ 0 ┃ 0 ┃ 0 ┃ 0 ┃ 0 ┃ 0 ┃ 30 ┃ 30 ┃ 0 ┃ 0.1 ┃ 0 ┃
┃ 2022-02-04 02:00:00 ┃ 1129147_14_1_1 ┃ 0 ┃ 0 ┃ 0 ┃ 0 ┃ 0 ┃ 0 ┃ 30 ┃ 30 ┃ 0 ┃ 0.1 ┃ 0 ┃
┃ 2022-02-04 04:00:00 ┃ 1129147_14_1_1 ┃ 0 ┃ 0 ┃ 0 ┃ 0 ┃ 0 ┃ 0 ┃ 30 ┃ 30 ┃ 0 ┃ 0.1 ┃ 0 ┃
┃ 2022-02-04 06:00:00 ┃ 1129147_14_1_1 ┃ 0 ┃ 1.38 ┃ 1.38 ┃ 1.29 ┃ 0 ┃ 4.6 ┃ 30 ┃ 28 ┃ 0 ┃ 0.1 ┃ 0 ┃
┃ 2022-02-04 08:00:00 ┃ 1129147_14_1_1 ┃ 2.39 ┃ 3.31 ┃ 3.31 ┃ 3.31 ┃ 6.1 ┃ 0 ┃ 30 ┃ 29 ┃ 0 ┃ 0.1 ┃ 0 ┃
┃ 2022-02-04 10:00:00 ┃ 1129147_14_1_1 ┃ 6.35 ┃ 1.75 ┃ 1.75 ┃ 1.75 ┃ 15.4 ┃ 24.5 ┃ 30 ┃ 30 ┃ 0 ┃ 0.1 ┃ 0 ┃
┃ 2022-02-04 12:00:00 ┃ 1129147_14_1_1 ┃ 6.99 ┃ 9.84 ┃ 9.94 ┃ 9.84 ┃ 19.5 ┃ 0 ┃ 0 ┃ 30 ┃ 0 ┃ 0.2 ┃ 0 ┃
┃ 2022-02-04 14:00:00 ┃ 1129147_14_1_1 ┃ 0.64 ┃ 0.83 ┃ 0.83 ┃ 0.83 ┃ 1.4 ┃ 0 ┃ 0 ┃ 30 ┃ 0 ┃ 0.1 ┃ 0 ┃
┃ 2022-02-04 16:00:00 ┃ 1129147_14_1_1 ┃ 0.37 ┃ 3.13 ┃ 3.13 ┃ 3.13 ┃ 0.8 ┃ 10.1 ┃ 20 ┃ 30 ┃ 0 ┃ 0.1 ┃ 0 ┃
┃ 2022-02-04 18:00:00 ┃ 1129147_14_1_1 ┃ 0 ┃ 1.01 ┃ 0.92 ┃ 1.01 ┃ 0 ┃ 3.8 ┃ 30 ┃ 30 ┃ 0 ┃ 0.1 ┃ 0 ┃
┃ 2022-02-04 20:00:00 ┃ 1129147_14_1_1 ┃ 0 ┃ 1.38 ┃ 1.47 ┃ 1.47 ┃ 0 ┃ 5.5 ┃ 30 ┃ 30 ┃ 0 ┃ 0.1 ┃ 0 ┃
┃ 2022-02-04 22:00:00 ┃ 1129147_14_1_1 ┃ 0 ┃ 0 ┃ 0 ┃ 0 ┃ 0 ┃ 0 ┃ 30 ┃ 30 ┃ 0 ┃ 0.1 ┃ 0 ┃
┃ 2022-02-05 00:00:00 ┃ 1129147_14_1_1 ┃ 0 ┃ 0 ┃ 0 ┃ 0 ┃ 0 ┃ 0 ┃ 30 ┃ 30 ┃ 0 ┃ 0.1 ┃ 0 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━┛
```
Produce daily report for template 8042 for date 2022/02/24 and save as a JSON file.
```
$ ./bin/GoSungrow data save template 8042 20220224
```
Produce graph of daily report for template 8040 for date 2022/02/24 and point_id P13019.
And now graph it!
```
$ ./bin/GoSungrow data get template-points 8040
+---------+----------------------------+------+
| PointId | Description | Unit |
+---------+----------------------------+------+
| p83106 | Load Power | kW |
| p13003 | Total DC Power | kW |
| p13121 | Total Export Active Power | kW |
| p13142 | Battery Health (SOH) | % |
| p13150 | Battery Discharging Power | kW |
| p13019 | Internal Air Temperature | ℃ |
| p13126 | Battery Charging Power | kW |
| p13141 | Battery Level (SOC) | % |
| p13143 | Battery Temperature | ℃ |
| p13149 | Purchased Power | kW |
+---------+----------------------------+------+
$ ./bin/GoSungrow data graph template 8042 20220224 '{"search_string":"p13019"}'
% ./bin/GoSungrow show template graph 8040 20220204 20220205 120
Finding points to graph...
Table Headers: Timestamp, Ps Key, 1129147_14_1_1.p13002, 1129147_14_1_1.p13008, 1129147_14_1_1.p13009, 1129147_14_1_1.p13010, 1129147_14_1_1.p13106, 1129147_14_1_1.p13139, 1129147_14_1_1.p13162, 1129147_14_1_1.p13163, 1129147_14_1_1.p18062, 1129147_14_1_1.p18063, 1129147_14_1_1.p18064
Table rows: 13
Found 11 points.
Creating graph file 'AppService.queryMutiPointDataList.ResultData.Data-1129147-1129147_14_1_1.p13002.png'
Creating graph file 'AppService.queryMutiPointDataList.ResultData.Data-1129147-1129147_14_1_1.p13008.png'
Creating graph file 'AppService.queryMutiPointDataList.ResultData.Data-1129147-1129147_14_1_1.p13009.png'
Creating graph file 'AppService.queryMutiPointDataList.ResultData.Data-1129147-1129147_14_1_1.p13010.png'
Creating graph file 'AppService.queryMutiPointDataList.ResultData.Data-1129147-1129147_14_1_1.p13106.png'
```
![alt text](https://github.com/MickMake/GoSungrow/blob/master/docs/AppService_queryMutiPointDataList-20220224-8042-InternalAirTemperature.png?raw=true)
![alt text](https://github.com/MickMake/GoSungrow/blob/master/docs/AppService.queryMutiPointDataList.ResultData.Data-1171348-1171348_22_247_2.p23014.png?raw=true)
![alt text](https://github.com/MickMake/GoSungrow/blob/master/docs/AppService.queryMutiPointDataList.ResultData.Data-1129147-1129147_14_1_1.p13002.png?raw=true)
![alt text](https://github.com/MickMake/GoSungrow/blob/master/docs/AppService.queryMutiPointDataList.ResultData.Data-1129147-1129147_14_1_1.p13008.png?raw=true)
![alt text](https://github.com/MickMake/GoSungrow/blob/master/docs/AppService.queryMutiPointDataList.ResultData.Data-1129147-1129147_14_1_1.p13139.png?raw=true)
![alt text](https://github.com/MickMake/GoSungrow/blob/master/docs/AppService.queryMutiPointDataList.ResultData.Data-1129147-1129147_14_1_1.p13162.png?raw=true)
Produce graphs of all points from template 8042 for date 2022/02/28 with a different width and height.
List all possible devices
```
$ ./bin/GoSungrow data graph template 8042 20220228 '{"width":2400,"height":500}'
```
![alt text](https://github.com/MickMake/GoSungrow/blob/master/docs/AppService_queryMutiPointDataList-20220228-8042-PurchasedPower.png?raw=true)
![alt text](https://github.com/MickMake/GoSungrow/blob/master/docs/AppService_queryMutiPointDataList-20220228-8042-LoadPower.png?raw=true)
![alt text](https://github.com/MickMake/GoSungrow/blob/master/docs/AppService_queryMutiPointDataList-20220228-8042-BatteryTemperature.png?raw=true)
![alt text](https://github.com/MickMake/GoSungrow/blob/master/docs/AppService_queryMutiPointDataList-20220228-8042-InternalAirTemperature.png?raw=true)
![alt text](https://github.com/MickMake/GoSungrow/blob/master/docs/AppService_queryMutiPointDataList-20220228-8042-BatteryChargingPower.png?raw=true)
![alt text](https://github.com/MickMake/GoSungrow/blob/master/docs/AppService_queryMutiPointDataList-20220228-8042-BatteryDischargingPower.png?raw=true)
Produce daily report for point_id p83106 for date 2022/02/24.
```
$ ./bin/GoSungrow data get points 20220224 1129147_11_0_0.p83106
+---------------------+-----------------------+------------+--------+-------+
| Date/Time | Point Id | Point Name | Value | Units |
+---------------------+-----------------------+------------+--------+-------+
| 2022-02-24 00:00:00 | 1129147_11_0_0.p83106 | | 818.0 | |
| 2022-02-24 00:05:00 | 1129147_11_0_0.p83106 | | 756.0 | |
| 2022-02-24 00:10:00 | 1129147_11_0_0.p83106 | | 571.0 | |
| 2022-02-24 00:15:00 | 1129147_11_0_0.p83106 | | 557.0 | |
| 2022-02-24 00:20:00 | 1129147_11_0_0.p83106 | | 553.0 | |
| 2022-02-24 00:25:00 | 1129147_11_0_0.p83106 | | 558.0 | |
| 2022-02-24 00:30:00 | 1129147_11_0_0.p83106 | | 562.0 | |
| 2022-02-24 00:35:00 | 1129147_11_0_0.p83106 | | 561.0 | |
...
+---------------------+-----------------------+------------+--------+-------+
```
Get all point ids by device_type.
```
+-------------+------------+----------+----------------------------------------+
| Device Type | Point Type | Point Id | Point Name |
+-------------+------------+----------+----------------------------------------+
| 1 | 2 | 1 | Daily Yield |
| 1 | 1 | 24 | Total Active Power |
| 1 | 1 | 2 | Total Yield |
| 1 | 1 | 14 | Total DC Power |
| 1 | 1 | 18 | Phase A Voltage |
| 1 | 1 | 19 | Phase B Voltage |
| 1 | 1 | 20 | Phase C Voltage |
| 1 | 1 | 21 | Phase A Current |
| 1 | 1 | 22 | Phase B Current |
| 1 | 1 | 23 | Phase C Current |
| 1 | 1 | 25 | Total Reactive Power |
| 1 | 1 | 27 | Grid Frequency |
| 1 | 1 | 15 | A-B Line Voltage |
| 1 | 1 | 16 | B-C Line Voltage |
| 1 | 1 | 17 | C-A Line Voltage |
| 1 | 1 | 4 | Internal Air Temperature |
| 1 | 1 | 26 | Total Power Factor |
| 1 | 1 | 90 | Negative Voltage to Ground |
| 1 | 1 | 43 | Total Apparent Power |
| 1 | 1 | 33 | Module 1 Temperature |
| 1 | 1 | 34 | Module 2 Temperature |
| 1 | 1 | 39 | Positive Impedance to Ground |
| 1 | 1 | 40 | Negative Impedance to Ground |
| 1 | 1 | 41 | P-limit-actual |
| 1 | 1 | 42 | Reactive Power Regulation Actual Value |
| 1 | 2 | 67 | Daily Yield (Theoretical) |
| 1 | 1 | 5 | MPPT1 Voltage |
| 1 | 1 | 6 | MPPT1 Current |
| 1 | 1 | 7 | MPPT2 Voltage |
| 1 | 1 | 8 | MPPT2 Current |
| 1 | 1 | 70 | String 1 Current |
| 1 | 1 | 71 | String 2 Current |
| 1 | 1 | 72 | String 3 Current |
| 1 | 1 | 73 | String 4 Current |
| 1 | 1 | 74 | String 5 Current |
| 1 | 1 | 75 | String 6 Current |
| 1 | 1 | 76 | String 7 Current |
...
+-------------+------------+----------+----------------------------------------+
% ./bin/GoSungrow show device list
# Available points:
┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Device Type ┃ Name ┃
┣━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ 1 │ Inverter ┃
┃ 10 │ String ┃
┃ 11 │ Plant ┃
┃ 12 │ Circuit Protection ┃
┃ 13 │ Splitting Device ┃
┃ 14 │ Energy Storage System ┃
┃ 15 │ Sampling Device ┃
┃ 16 │ EMU ┃
┃ 17 │ Unit ┃
┃ 18 │ Temperature and Humidity Sensor ┃
┃ 19 │ Intelligent Power Distribution Cabinet ┃
┃ 20 │ Display Device ┃
┃ 21 │ AC Power Distributed Cabinet ┃
┃ 22 │ Communication Module ┃
┃ 23 │ System-BMS ┃
┃ 24 │ RackBMS ┃
┃ 25 │ DC-DC ┃
┃ 26 │ Energy Management System ┃
┃ 28 │ Wind Energy Converter ┃
┃ 29 │ SVG ┃
┃ 3 │ Grid-connection Point ┃
┃ 30 │ PT Cabinet ┃
┃ 31 │ Bus Protection ┃
┃ 32 │ Cleaning Robot ┃
┃ 33 │ Direct Current Cabinet ┃
┃ 34 │ Public Measurement and Control ┃
┃ 35 │ Anti-islanding Protection Device ┃
┃ 36 │ Frequency and Voltage Emergency Control Device ┃
┃ 37 │ PCS ┃
┃ 38 │ Cell BMS ┃
┃ 39 │ Power Quality ┃
┃ 4 │ Combiner Box ┃
┃ 40 │ Shuttle ┃
┃ 41 │ Optimizer ┃
┃ 42 │ Tracking axis communication box ┃
┃ 43 │ Battery ┃
┃ 44 │ Battery Cluster Management Unit ┃
┃ 45 │ Local Controller ┃
┃ 46 │ Networking Devices ┃
┃ 47 │ Energy Storage Unit ┃
┃ 48 │ DC Container ┃
┃ 5 │ Meteo Station ┃
┃ 50 │ IO Module ┃
┃ 51 │ Charger ┃
┃ 52 │ Battery System Controller ┃
┃ 6 │ Transformer ┃
┃ 7 │ Meter ┃
┃ 8 │ UPS ┃
┃ 9 │ Data Logger ┃
┃ 99 │ Others ┃
┗━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
```
Get mains power frequency variation graph from template id 8041 on date 2022/02/28
```
./bin/GoSungrow data graph template 8041 20220228 '{"search_string":"p13007","min_left_axis":49,"max_left_axis":51}'
% ./bin/GoSungrow show point data 20220301 20220302 120 1129147_14_1_1.p13007
# DataTable AppService.queryMutiPointDataList.ResultData.Data - PsId:1129147 StartTimeStamp:20220301000000 EndTimeStamp:20220302000000 MinuteInterval:120 PsKeys:1129147_14_1_1 Points:p13007
┏━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Timestamp ┃ Ps Key ┃ 1129147_14_1_1.p13007 ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ 2022-03-01 00:00:00 ┃ 1129147_14_1_1 ┃ 49.969997 ┃
┃ 2022-03-01 02:00:00 ┃ 1129147_14_1_1 ┃ 49.98 ┃
┃ 2022-03-01 04:00:00 ┃ 1129147_14_1_1 ┃ 50.01 ┃
┃ 2022-03-01 06:00:00 ┃ 1129147_14_1_1 ┃ 49.98 ┃
┃ 2022-03-01 08:00:00 ┃ 1129147_14_1_1 ┃ 49.98 ┃
┃ 2022-03-01 10:00:00 ┃ 1129147_14_1_1 ┃ 50.01 ┃
┃ 2022-03-01 12:00:00 ┃ 1129147_14_1_1 ┃ 50 ┃
┃ 2022-03-01 14:00:00 ┃ 1129147_14_1_1 ┃ 50.02 ┃
┃ 2022-03-01 16:00:00 ┃ 1129147_14_1_1 ┃ 49.96 ┃
┃ 2022-03-01 18:00:00 ┃ 1129147_14_1_1 ┃ 50.01 ┃
┃ 2022-03-01 20:00:00 ┃ 1129147_14_1_1 ┃ 50 ┃
┃ 2022-03-01 22:00:00 ┃ 1129147_14_1_1 ┃ 49.969997 ┃
┃ 2022-03-02 00:00:00 ┃ 1129147_14_1_1 ┃ 50.01 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━┛
% ./bin/GoSungrow show point graph 20220301 20220302 120 1129147_14_1_1.p13007
Finding points to graph...
Table Headers: Timestamp, Ps Key, 1129147_14_1_1.p13007
Table rows: 13
Found 1 points.
Creating graph file 'AppService.queryMutiPointDataList.ResultData.Data-1129147-1129147_14_1_1.p13007.png'
```
![alt text](https://github.com/MickMake/GoSungrow/blob/master/docs/AppService_queryMutiPointDataList-20220228-8041-GridFrequency.png?raw=true)
![alt text](https://github.com/MickMake/GoSungrow/blob/master/docs/AppService.queryMutiPointDataList.ResultData.Data-1129147-1129147_14_1_1.p13007.png?raw=true)
### Using the API instead.
Want to get your hands dirty?
Get basic inverter information for inverter id 1129147
```
$ ./bin/GoSungrow api get findPsType '{"ps_id":"1129147"}'
% ./bin/GoSungrow api get findPsType '{"ps_id":"1129147"}'
```
```
$ ./bin/GoSungrow api get getPsDetailWithPsType '{"ps_id":"1129147"}'
% ./bin/GoSungrow api get getPsDetailWithPsType '{"ps_id":"1129147"}'
```
Get basic power stats for inverter
```
$ ./bin/GoSungrow api get getPowerStatistics '{"ps_id":"1129147"}'
% ./bin/GoSungrow api get getPowerStatistics '{"ps_id":"1129147"}'
```
Get point_id to point names for different device types
```
$ ./bin/GoSungrow api get getPowerDevicePointNames '{"device_type":"1"}'
% ./bin/GoSungrow api get getPowerDevicePointNames '{"device_type":"1"}'
```
```
$ ./bin/GoSungrow api get getPowerDevicePointNames '{"device_type":"2"}'
% ./bin/GoSungrow api get getPowerDevicePointNames '{"device_type":"2"}'
```
```
$ ./bin/GoSungrow api get getPowerDevicePointNames '{"device_type":"7"}'
% ./bin/GoSungrow api get getPowerDevicePointNames '{"device_type":"7"}'
```
Get all inverters
```
$ ./bin/GoSungrow api get getPsList
% ./bin/GoSungrow api get getPsList
```
```
$ ./bin/GoSungrow api get WebAppService.showPSView '{"ps_id":"1129147"}'
% ./bin/GoSungrow api get WebAppService.showPSView '{"ps_id":"1129147"}'
```
Produce basic storage report
```
$ ./bin/GoSungrow api get queryMutiPointDataList '{"ps_key":"1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_11_0_0","points":"p13150,p13126,p13142,p13143,p13019,p13141,p13121,p13003,p13149,p83106","minute_interval":"5","start_time_stamp":"20220215000000","end_time_stamp":"20220215235900", "ps_id":"1129147"}'
% ./bin/GoSungrow api get queryMutiPointDataList '{"ps_key":"1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_14_1_1,1129147_11_0_0","points":"p13150,p13126,p13142,p13143,p13019,p13141,p13121,p13003,p13149,p83106","minute_interval":"5","start_time_stamp":"20220215000000","end_time_stamp":"20220215235900", "ps_id":"1129147"}'
```
Get the household storage report
```
$ ./bin/GoSungrow api get getHouseholdStoragePsReport '{"date_id":"2022","date_type":"4","ps_id":"1129147"}'
% ./bin/GoSungrow api get getHouseholdStoragePsReport '{"date_id":"2022","date_type":"4","ps_id":"1129147"}'
```
### Git commands
Record statistics data from iSolarCloud to GitHub. (Will clone if not existing.)
% GoSungrow git sync 'Updating statistics' statistics
Record all changes made to GitHub.
% GoSungrow git sync 'Update everything'
Record changes with default commit message.
% GoSungrow git sync default
Record changes made every 30 minutes.
% GoSungrow cron run ./30 . . . . git sync default
List files in repo, (identical to ls).
```
% GoSungrow git ls -l
- rw- r-- r-- admin-mickh admin-mickh 51B 10.Jan'22 13:31 README.md
- rw- rw- r-- admin-mickh admin-mickh 15.60K 10.Jan'22 13:31 contact.json
- rw- rw- r-- admin-mickh admin-mickh 496B 10.Jan'22 13:31 department.json
- rw- rw- r-- admin-mickh admin-mickh 132.14K 10.Jan'22 13:31 device.json
- rw- rw- r-- admin-mickh admin-mickh 1.29K 10.Jan'22 13:31 domain.json
- rw- rw- r-- admin-mickh admin-mickh 858.86K 10.Jan'22 13:31 model.json
- rw- rw- r-- admin-mickh admin-mickh 24.90K 10.Jan'22 13:31 presence.json
- rw- rw- r-- admin-mickh admin-mickh 53.66K 10.Jan'22 13:31 profile.json
- rw- rw- r-- admin-mickh admin-mickh 88B 10.Jan'22 13:31 site.json
- rw- rw- r-- admin-mickh admin-mickh 16.70K 10.Jan'22 13:31 user.json
```
Show changes made to a JSON file.
% GoSungrow git diff devices.json
### Other available Gitlab commands.
Clone repo.
% GoSungrow git clone
Pull repo.
% GoSungrow git pull
Add files to repo.
% GoSungrow git add .
Push repo.
% GoSungrow git push
Commit changes to repo.
% GoSungrow git commit 'this is a commit message'
### Config file.
Show current config.
% GoSungrow config read
Write current config.
% GoSungrow config write
Change diff command used in compares.
% GoSungrow --diff-cmd='sdiff' config write
Change Git repo directory.
% GoSungrow --git-dir=/some/other/directory config write
Change Git repo url.
% GoSungrow --git-url=https://github.com/MickMake/iSolarCloudData config write
Change iSolarCloud API token.
% GoSungrow --cf-token='this is a token string' config write
@ -436,43 +504,26 @@ Change iSolarCloud API token.
## Flags available for all commands:
```
--config string GoSungrow: config file. (default "$HOME/.GoSungrow/config.json")
--debug GoSungrow: Debug mode.
--diff-cmd string Git: Command for diffs. (default "tkdiff")
--git-dir string Git: Local repo directory.
--git-password string Git: Repo password.
--git-repo string Git: Repo url for updates.
--git-sshkey string Git: Repo SSH keyfile.
--git-token string Git: Repo token string.
--git-username string Git: Repo username.
--google-sheet string Google: Sheet URL for updates.
--host string iSolarCloud: Provider API URL. (default "https://augateway.isolarcloud.com")
-p, --password string iSolarCloud: Extension password.
-q, --quiet iSolarCloud: Silence all messages.
--timeout duration iSolarCloud: API timeout. (default 30s)
-u, --user string iSolarCloud: Extension username.
% ./bin/GoSungrow help flags
+-----------------+------------+-------------------------+--------------------------------+------------------------------------+
| FLAG | SHORT FLAG | ENVIRONMENT | DESCRIPTION | VALUE (* = DEFAULT) |
+-----------------+------------+-------------------------+--------------------------------+------------------------------------+
| --config | | GOSUNGROW_CONFIG | GoSungrow: config file. | /Users/mick/.GoSungrow/config.json |
| --debug | | GOSUNGROW_DEBUG | GoSungrow: Debug mode. | false * |
| --quiet | | GOSUNGROW_QUIET | GoSungrow: Silence all | false * |
| | | | messages. | |
| --timeout | | GOSUNGROW_TIMEOUT | Web timeout. | 0s |
| --user | -u | GOSUNGROW_USER | SunGrow: api username. | ------------------ |
| --password | -p | GOSUNGROW_PASSWORD | SunGrow: api password. | --------------------------- |
| --appkey | | GOSUNGROW_APPKEY | SunGrow: api application key. | 93D72E60331ABDCDC7B39ADC2D1F32B3 |
| | | | | * |
| --host | | GOSUNGROW_HOST | SunGrow: Provider API URL. | https://augateway.isolarcloud.com |
| | | | | * |
| --token-expiry | | GOSUNGROW_TOKEN_EXPIRY | SunGrow: last login. | 2022-12-08T16:58:19 |
| --save | -s | GOSUNGROW_SAVE | Save output as a file. | false * |
| --mqtt-user | | GOSUNGROW_MQTT_USER | HASSIO: mqtt username. | ------------------ |
| --mqtt-password | | GOSUNGROW_MQTT_PASSWORD | HASSIO: mqtt password. | -------------- |
| --mqtt-host | | GOSUNGROW_MQTT_HOST | HASSIO: mqtt host. | localhost |
| --mqtt-port | | GOSUNGROW_MQTT_PORT | HASSIO: mqtt port. | 1883 |
+-----------------+------------+-------------------------+--------------------------------+------------------------------------+
```
## Using environment variables instad of flags.
```
+----------------+------------+---------------------+--------------------------------+-----------------------------------------------+
| FLAG | SHORT FLAG | ENVIRONMENT | DESCRIPTION | DEFAULT |
+----------------+------------+---------------------+--------------------------------+-----------------------------------------------+
| --user | -u | SUNGROW_USER | SUNGRO: API username. | |
| --password | -p | SUNGROW_PASSWORD | SUNGRO: API password. | |
| --host | | SUNGROW_HOST | SUNGRO: Provider API URL. | https://augateway.isolarcloud.com |
| --timeout | | SUNGROW_TIMEOUT | SUNGRO: API timeout. | 30s |
| --google-sheet | | SUNGROW_GOOGLE_SHEET | Google: Sheet URL for updates. | |
| --git-repo | | SUNGROW_GIT_REPO | Git: Repo url for updates. | |
| --git-dir | | SUNGROW_GIT_DIR | Git: Local repo directory. | |
| --git-username | | SUNGROW_GIT_USERNAME | Git: Repo username. | |
| --git-password | | SUNGROW_GIT_PASSWORD | Git: Repo password. | |
| --git-sshkey | | SUNGROW_GIT_SSHKEY | Git: Repo SSH keyfile. | |
| --git-token | | SUNGROW_GIT_TOKEN | Git: Repo token string. | |
| --diff-cmd | | SUNGROW_DIFF_CMD | Git: Command for diffs. | tkdiff |
| --config | | SUNGROW_CONFIG | GoSungrow: config file. | $HOME/.GoSungrow/config.json |
| --debug | | SUNGROW_DEBUG | GoSungrow: Debug mode. | false |
| --quiet | -q | SUNGROW_QUIET | GoSungrow: Silence all messages.| false |
+----------------+------------+------------------+--------------------------------+--------------------------------------------------+
```