mirror of
https://github.com/MickMake/GoSungrow.git
synced 2025-05-06 01:40:14 +02:00
259 lines
15 KiB
Go
259 lines
15 KiB
Go
package getPsList
|
|
|
|
import (
|
|
"GoSungrow/iSolarCloud/api"
|
|
"GoSungrow/iSolarCloud/api/apiReflect"
|
|
"GoSungrow/iSolarCloud/api/valueTypes"
|
|
"github.com/MickMake/GoUnify/Only"
|
|
|
|
"fmt"
|
|
)
|
|
|
|
const Url = "/v1/powerStationService/getPsList"
|
|
const Disabled = false
|
|
|
|
type RequestData struct {
|
|
}
|
|
|
|
func (rd RequestData) IsValid() error {
|
|
return apiReflect.VerifyOptionsRequired(rd)
|
|
}
|
|
|
|
func (rd RequestData) Help() string {
|
|
ret := fmt.Sprintf("")
|
|
return ret
|
|
}
|
|
|
|
type ResultData struct {
|
|
PageList []struct {
|
|
AlarmCount valueTypes.Integer `json:"alarm_count" PointId:"alarm_count" PointUpdateFreq:"UpdateFreqBoot"`
|
|
AlarmDevCount valueTypes.Integer `json:"alarm_dev_count" PointId:"alarm_dev_count" PointUpdateFreq:"UpdateFreqBoot"`
|
|
AreaID interface{} `json:"area_id" PointId:"area_id"`
|
|
AreaType interface{} `json:"area_type" PointId:"area_type"`
|
|
ArrearsStatus valueTypes.Integer `json:"arrears_status" PointId:"arrears_status"`
|
|
BuildDate valueTypes.DateTime `json:"build_date" PointId:"build_date" PointUpdateFreq:"UpdateFreqBoot"`
|
|
BuildStatus valueTypes.Integer `json:"build_status" PointId:"build_status" PointUpdateFreq:"UpdateFreqBoot"`
|
|
Co2Reduce valueTypes.UnitValue `json:"co2_reduce" PointId:"co2_reduce"`
|
|
Co2ReduceTotal valueTypes.UnitValue `json:"co2_reduce_total" PointId:"co2_reduce_total" PointUpdateFreq:"UpdateFreqTotal"`
|
|
CurrPower valueTypes.UnitValue `json:"curr_power" PointId:"curr_power"`
|
|
DailyIrradiation valueTypes.UnitValue `json:"daily_irradiation" PointId:"daily_irradiation" PointUpdateFreq:"UpdateFreqDaily"`
|
|
DailyIrradiationVirgin valueTypes.Float `json:"daily_irradiation_virgin" PointIgnore:"true"`
|
|
DesignCapacity valueTypes.Float `json:"design_capacity" PointId:"design_capacity" PointUnitFrom:"design_capacity_unit"`
|
|
DesignCapacityUnit valueTypes.String `json:"design_capacity_unit" PointId:"design_capacity_unit"`
|
|
DesignCapacityVirgin valueTypes.Float `json:"design_capacity_virgin" PointIgnore:"true"`
|
|
EquivalentHour valueTypes.UnitValue `json:"equivalent_hour" PointId:"equivalent_hour" PointUpdateFreq:"UpdateFreqDaily"`
|
|
EsDischargeEnergy valueTypes.UnitValue `json:"es_disenergy" PointId:"p83089" PointName:"ES Discharge Energy" PointUpdateFreq:"UpdateFreq5Mins"`
|
|
EsEnergy valueTypes.UnitValue `json:"es_energy" PointId:"p83120" PointName:"ES Energy" PointUpdateFreq:"UpdateFreq5Mins"`
|
|
EsPower valueTypes.UnitValue `json:"es_power" PointId:"p83081" PointName:"ES Power" PointUpdateFreq:"UpdateFreq5Mins"`
|
|
EsTotalDischargeEnergy valueTypes.UnitValue `json:"es_total_disenergy" PointId:"p83095" PointName:"ES Total Discharge Energy" PointUpdateFreq:"UpdateFreqTotal"`
|
|
EsTotalEnergy valueTypes.UnitValue `json:"es_total_energy" PointId:"p83127" PointName:"ES Total Energy" PointUpdateFreq:"UpdateFreqTotal"`
|
|
ExpectInstallDate valueTypes.DateTime `json:"expect_install_date" PointId:"expect_install_date"`
|
|
FaultAlarmOfflineDevCount valueTypes.Integer `json:"fault_alarm_offline_dev_count" PointId:"fault_alarm_offline_dev_count"`
|
|
FaultCount valueTypes.Integer `json:"fault_count" PointId:"fault_count"`
|
|
FaultDevCount valueTypes.Integer `json:"fault_dev_count" PointId:"fault_dev_count"`
|
|
GcjLatitude valueTypes.Float `json:"gcj_latitude" PointId:"gcj_latitude"`
|
|
GcjLongitude valueTypes.Float `json:"gcj_longitude" PointId:"gcj_longitude"`
|
|
GprsLatitude valueTypes.Float `json:"gprs_latitude" PointId:"gprs_latitude"`
|
|
GprsLongitude valueTypes.Float `json:"gprs_longitude" PointId:"gprs_longitude"`
|
|
Images []struct {
|
|
FileID valueTypes.Integer `json:"file_id"`
|
|
ID valueTypes.Integer `json:"id"`
|
|
PicLanguage valueTypes.Integer `json:"pic_language"`
|
|
PicType valueTypes.Integer `json:"pic_type"`
|
|
PictureName valueTypes.String `json:"picture_name"`
|
|
PictureURL valueTypes.String `json:"picture_url"`
|
|
PsID valueTypes.Integer `json:"ps_id"`
|
|
PsUnitUUID interface{} `json:"ps_unit_uuid"`
|
|
} `json:"images" PointName:"Images"`
|
|
InstallDate valueTypes.DateTime `json:"install_date" PointId:"install_date"`
|
|
InstalledPowerMap valueTypes.UnitValue `json:"installed_power_map" PointId:"installed_power_map"`
|
|
InstalledPowerVirgin valueTypes.Float `json:"installed_power_virgin" PointIgnore:"true"`
|
|
InstallerAlarmCount valueTypes.Integer `json:"installer_alarm_count" PointId:"installer_alarm_count"`
|
|
InstallerFaultCount valueTypes.Integer `json:"installer_fault_count" PointId:"installer_fault_count"`
|
|
InstallerPsFaultStatus valueTypes.Integer `json:"installer_ps_fault_status" PointId:"installer_ps_fault_status"`
|
|
IsBankPs valueTypes.Bool `json:"is_bank_ps" PointId:"is_bank_ps"`
|
|
IsTuv valueTypes.Bool `json:"is_tuv" PointId:"is_tuv"`
|
|
JoinYearInitElec valueTypes.Float `json:"join_year_init_elec" PointId:"join_year_init_elec"`
|
|
Latitude valueTypes.Float `json:"latitude" PointId:"latitude"`
|
|
Location valueTypes.String `json:"location" PointId:"location"`
|
|
Longitude valueTypes.Float `json:"longitude" PointId:"longitude"`
|
|
MapLatitude valueTypes.Float `json:"map_latitude" PointId:"map_latitude"`
|
|
MapLongitude valueTypes.Float `json:"map_longitude" PointId:"map_longitude"`
|
|
MlpeFlag valueTypes.Integer `json:"mlpe_flag" PointId:"mlpe_flag"`
|
|
Nmi valueTypes.String `json:"nmi" PointId:"nmi"`
|
|
OfflineDevCount valueTypes.Integer `json:"offline_dev_count" PointId:"offline_dev_count"`
|
|
OperateYear interface{} `json:"operate_year" PointId:"operate_year"`
|
|
OperationBusName valueTypes.String `json:"operation_bus_name" PointId:"operation_bus_name"`
|
|
OwnerAlarmCount valueTypes.Integer `json:"owner_alarm_count" PointId:"owner_alarm_count"`
|
|
OwnerFaultCount valueTypes.Integer `json:"owner_fault_count" PointId:"owner_fault_count"`
|
|
OwnerPsFaultStatus valueTypes.Integer `json:"owner_ps_fault_status" PointId:"owner_ps_fault_status"`
|
|
P83022y valueTypes.String `json:"p83022y" PointId:"p83022" PointUpdateFreq:"UpdateFreq5Mins"`
|
|
P83046 valueTypes.Float `json:"p83046" PointId:"p83046" PointUpdateFreq:"UpdateFreq5Mins"`
|
|
P83048 valueTypes.Float `json:"p83048" PointId:"p83048" PointUpdateFreq:"UpdateFreq5Mins"`
|
|
P83049 valueTypes.Float `json:"p83049" PointId:"p83049" PointUpdateFreq:"UpdateFreq5Mins"`
|
|
P83050 valueTypes.Float `json:"p83050" PointId:"p83050" PointUpdateFreq:"UpdateFreq5Mins"`
|
|
P83051 valueTypes.Float `json:"p83051" PointId:"p83051" PointUpdateFreq:"UpdateFreq5Mins"`
|
|
P83054 valueTypes.Float `json:"p83054" PointId:"p83054" PointUpdateFreq:"UpdateFreq5Mins"`
|
|
P83055 valueTypes.Float `json:"p83055" PointId:"p83055" PointUpdateFreq:"UpdateFreq5Mins"`
|
|
P83067 valueTypes.Float `json:"p83067" PointId:"p83067" PointUpdateFreq:"UpdateFreq5Mins"`
|
|
P83070 valueTypes.Float `json:"p83070" PointId:"p83070" PointUpdateFreq:"UpdateFreq5Mins"`
|
|
P83076 valueTypes.Float `json:"p83076" PointId:"_p83076" PointName:"Pv Power" PointIgnore:"true"` // Dupe of PvPower
|
|
P83077 valueTypes.Float `json:"p83077" PointId:"_p83077" PointName:"Pv Energy" PointIgnore:"true"` // Dupe of PvEnergy
|
|
P83081 valueTypes.Float `json:"p83081" PointId:"_p83081" PointName:"Es Power" PointIgnore:"true"` // Dupe of EsPower
|
|
P83089 valueTypes.Float `json:"p83089" PointId:"_p83089" PointName:"Es Discharge Energy" PointIgnore:"true"` // Dupe of EsDischargeEnergy
|
|
P83095 valueTypes.Float `json:"p83095" PointId:"_p83095" PointName:"Es Total Discharge Energy" PointIgnore:"true"` // Dupe of EsTotalDischargeEnergy
|
|
P83118 valueTypes.Float `json:"p83118" PointId:"_p83118" PointName:"Use Energy" PointIgnore:"true"` // Dupe of UseEnergy
|
|
P83120 valueTypes.Float `json:"p83120" PointId:"_p83120" PointName:"Es Energy" PointIgnore:"true"` // Dupe of EsEnergy
|
|
P83127 valueTypes.Float `json:"p83127" PointId:"_p83127" PointName:"Es Total Energy" PointIgnore:"true"` // Dupe of EsTotalEnergy
|
|
ParamCo2 valueTypes.Float `json:"param_co2" PointId:"param_co2"`
|
|
ParamCoal valueTypes.Float `json:"param_coal" PointId:"param_coal"`
|
|
ParamIncome valueTypes.Float `json:"param_income" PointId:"param_income"`
|
|
ParamMeter valueTypes.Float `json:"param_meter" PointId:"param_meter"`
|
|
ParamNox valueTypes.Float `json:"param_nox" PointId:"param_nox"`
|
|
ParamPowder valueTypes.Float `json:"param_powder" PointId:"param_powder"`
|
|
ParamSo2 valueTypes.Float `json:"param_so2" PointId:"param_so2"`
|
|
ParamTree valueTypes.Float `json:"param_tree" PointId:"param_tree"`
|
|
ParamWater valueTypes.Float `json:"param_water" PointId:"param_water"`
|
|
PrScale string `json:"pr_scale" PointId:"pr_scale"`
|
|
Producer interface{} `json:"producer" PointId:"producer"`
|
|
PsCountryID valueTypes.Integer `json:"ps_country_id" PointId:"ps_country_id"`
|
|
PsFaultStatus valueTypes.Integer `json:"ps_fault_status" PointId:"ps_fault_status"`
|
|
PsHealthStatus valueTypes.Integer `json:"ps_health_status" PointId:"ps_health_status"`
|
|
PsHolder valueTypes.String `json:"ps_holder" PointId:"ps_holder"`
|
|
PsId valueTypes.Integer `json:"ps_id" PointId:"ps_id"`
|
|
PsIsNotInit valueTypes.Bool `json:"ps_is_not_init" PointId:"ps_is_not_init"`
|
|
PsName valueTypes.String `json:"ps_name" PointId:"ps_name"`
|
|
PsShortName valueTypes.String `json:"ps_short_name" PointId:"ps_short_name"`
|
|
PsStatus valueTypes.Integer `json:"ps_status" PointId:"ps_status"`
|
|
PsTimezone valueTypes.String `json:"ps_timezone" PointId:"ps_timezone"`
|
|
PsType valueTypes.Integer `json:"ps_type" PointId:"ps_type"`
|
|
PvEnergy valueTypes.UnitValue `json:"pv_energy" PointId:"p83077" PointName:"Pv Energy" PointUpdateFreq:"UpdateFreq5Mins"`
|
|
PvPower valueTypes.UnitValue `json:"pv_power" PointId:"p83076" PointName:"Pv Power" PointUpdateFreq:"UpdateFreq5Mins"`
|
|
Radiation valueTypes.UnitValue `json:"radiation" PointId:"radiation"`
|
|
RadiationVirgin valueTypes.Float `json:"radiation_virgin" PointIgnore:"true"`
|
|
RecordCreateTime valueTypes.DateTime `json:"recore_create_time" PointId:"record_create_time"`
|
|
SafeStartDate valueTypes.DateTime `json:"safe_start_date" PointId:"safe_start_date"`
|
|
ShareType valueTypes.Integer `json:"share_type" PointId:"share_type"`
|
|
ShippingAddress valueTypes.String `json:"shipping_address" PointId:"shipping_address"`
|
|
ShippingZipCode valueTypes.String `json:"shipping_zip_code" PointId:"shipping_zip_code"`
|
|
TodayEnergy valueTypes.UnitValue `json:"today_energy" PointId:"today_energy" PointUpdateFreq:"UpdateFreqDaily"`
|
|
TodayIncome valueTypes.UnitValue `json:"today_income" PointId:"today_income" PointUpdateFreq:"UpdateFreqDaily"`
|
|
TotalCapacity valueTypes.UnitValue `json:"total_capcity" PointId:"total_capacity" PointUpdateFreq:"UpdateFreqTotal"`
|
|
TotalEnergy valueTypes.UnitValue `json:"total_energy" PointId:"total_energy" PointUpdateFreq:"UpdateFreqTotal"`
|
|
TotalIncome valueTypes.UnitValue `json:"total_income" PointId:"total_income" PointUpdateFreq:"UpdateFreqTotal"`
|
|
TotalInitCo2Accelerate valueTypes.Float `json:"total_init_co2_accelerate" PointId:"total_init_co2_accelerate" PointUpdateFreq:"UpdateFreqTotal"`
|
|
TotalInitElec valueTypes.Float `json:"total_init_elec" PointId:"total_init_elec" PointUpdateFreq:"UpdateFreqTotal"`
|
|
TotalInitProfit valueTypes.Float `json:"total_init_profit" PointId:"total_init_profit" PointUpdateFreq:"UpdateFreqTotal"`
|
|
UseEnergy valueTypes.UnitValue `json:"use_energy" PointId:"p83118" PointName:"Use Energy" PointUpdateFreq:"UpdateFreq5Mins"`
|
|
ValidFlag valueTypes.Bool `json:"valid_flag" PointId:"valid_flag"`
|
|
WgsLatitude valueTypes.Float `json:"wgs_latitude" PointId:"wgs_latitude"`
|
|
WgsLongitude valueTypes.Float `json:"wgs_longitude" PointId:"wgs_longitude"`
|
|
ZipCode valueTypes.String `json:"zip_code" PointId:"zip_code"`
|
|
} `json:"pageList" PointNameFromChild:"PsId"`
|
|
RowCount valueTypes.Integer `json:"rowCount" PointIgnore:"true"`
|
|
}
|
|
|
|
func (e *ResultData) IsValid() error {
|
|
var err error
|
|
// switch {
|
|
// case e.Dummy == "":
|
|
// break
|
|
// default:
|
|
// err = errors.New(fmt.Sprintf("unknown error '%s'", e.Dummy))
|
|
// }
|
|
return err
|
|
}
|
|
|
|
func (e *EndPoint) GetData() api.DataMap {
|
|
entries := api.NewDataMap()
|
|
|
|
for range Only.Once {
|
|
pkg := apiReflect.GetName("", *e)
|
|
dt := valueTypes.NewDateTime(valueTypes.Now)
|
|
entries.StructToPoints(e.Response.ResultData, pkg, "", dt)
|
|
}
|
|
return entries
|
|
}
|
|
|
|
|
|
type Device struct {
|
|
PsFaultStatus valueTypes.Integer
|
|
PsHealthStatus valueTypes.Integer
|
|
PsHolder valueTypes.String
|
|
PsID valueTypes.Integer
|
|
PsName valueTypes.String
|
|
PsShortName valueTypes.String
|
|
PsStatus valueTypes.Integer
|
|
PsType valueTypes.Integer
|
|
}
|
|
type Devices []Device
|
|
|
|
func (e *ResultData) GetPsDevices() Devices {
|
|
var ret Devices
|
|
for _, d := range e.PageList {
|
|
ret = append(ret, Device{
|
|
PsFaultStatus: d.PsFaultStatus,
|
|
PsHealthStatus: d.PsHealthStatus,
|
|
PsHolder: d.PsHolder,
|
|
PsID: d.PsId,
|
|
PsName: d.PsName,
|
|
PsShortName: d.PsShortName,
|
|
PsStatus: d.PsStatus,
|
|
PsType: d.PsType,
|
|
})
|
|
}
|
|
return ret
|
|
}
|
|
|
|
func (e *ResultData) GetPsIds() []valueTypes.Integer {
|
|
var ret []valueTypes.Integer
|
|
for range Only.Once {
|
|
i := len(e.PageList)
|
|
if i == 0 {
|
|
break
|
|
}
|
|
for _, p := range e.PageList {
|
|
if p.PsId.Value() != 0 {
|
|
ret = append(ret, p.PsId)
|
|
}
|
|
}
|
|
}
|
|
return ret
|
|
}
|
|
|
|
func (e *ResultData) GetPsName() []string {
|
|
var ret []string
|
|
for range Only.Once {
|
|
i := len(e.PageList)
|
|
if i == 0 {
|
|
break
|
|
}
|
|
for _, p := range e.PageList {
|
|
if p.PsId.Value() != 0 {
|
|
ret = append(ret, p.PsName.Value())
|
|
}
|
|
}
|
|
}
|
|
return ret
|
|
}
|
|
|
|
func (e *ResultData) GetPsSerial() []string {
|
|
var ret []string
|
|
for range Only.Once {
|
|
i := len(e.PageList)
|
|
if i == 0 {
|
|
break
|
|
}
|
|
for _, p := range e.PageList {
|
|
if p.PsId.Value() != 0 {
|
|
ret = append(ret, p.PsShortName.Value())
|
|
}
|
|
}
|
|
}
|
|
return ret
|
|
}
|
|
|
|
func (e *EndPoint) GetPsIds() []valueTypes.Integer {
|
|
return e.Response.ResultData.GetPsIds()
|
|
}
|