GoSungrow/iSolarCloud/highlevel_meta.go
MickMake c4b870b7c7 - Alpha support for Modbus, (direct connect to your Sungrow inverter).
- Fixup ResultData.result_data.org_id error.
2023-09-04 13:39:21 +10:00

123 lines
2.7 KiB
Go

package iSolarCloud
import (
"github.com/MickMake/GoSungrow/iSolarCloud/AppService/queryDeviceRealTimeDataByPsKeys"
"github.com/MickMake/GoSungrow/iSolarCloud/AppService/queryUnitList"
"github.com/MickMake/GoSungrow/iSolarCloud/WebAppService/getMqttConfigInfoByAppkey"
"github.com/MickMake/GoSungrow/iSolarCloud/api/GoStruct/valueTypes"
"github.com/MickMake/GoUnify/Only"
)
func (sg *SunGrow) MetaUnitList() error {
for range Only.Once {
data := sg.NewSunGrowData()
data.SetArgs()
data.SetEndpoints(queryUnitList.EndPointName)
sg.Error = data.GetData()
if sg.Error != nil {
break
}
sg.Error = data.OutputDataTables()
if sg.Error != nil {
break
}
}
return sg.Error
}
func (sg *SunGrow) GetIsolarcloudMqtt(appKey string) error {
for range Only.Once {
if appKey == "" {
appKey = sg.GetAppKey()
}
data := sg.NewSunGrowData()
data.SetArgs("AppKey:" + appKey)
data.SetEndpoints(getMqttConfigInfoByAppkey.EndPointName)
sg.Error = data.GetData()
if sg.Error != nil {
break
}
sg.Error = data.Output()
if sg.Error != nil {
break
}
// ep := sg.GetByStruct(getMqttConfigInfoByAppkey.EndPointName,
// getMqttConfigInfoByAppkey.RequestData{AppKey: valueTypes.SetStringValue(appKey)},
// DefaultCacheTimeout,
// )
// if sg.IsError() {
// break
// }
//
// data := getMqttConfigInfoByAppkey.Assert(ep)
// table := data.GetEndPointResultTable()
// if table.Error != nil {
// sg.Error = table.Error
// break
// }
//
// table.SetTitle("MQTT info")
// table.SetFilePrefix(data.SetFilenamePrefix(""))
// table.SetGraphFilter("")
// table.SetSaveFile(sg.SaveAsFile)
// table.OutputType = sg.OutputType
// sg.Error = table.Output()
// if sg.IsError() {
// break
// }
}
return sg.Error
}
func (sg *SunGrow) GetRealTimeData(psKey string) error {
for range Only.Once {
if psKey == "" {
// var psKeys []string
// psKeys, sg.Error = sg.GetPsKeys()
// if sg.IsError() {
// break
// }
// fmt.Printf("psKeys: %v\n", psKeys)
// psKey = strings.Join(psKeys, ",")
}
// fmt.Println("TO FIX")
// break
ep := sg.GetByStruct(queryDeviceRealTimeDataByPsKeys.EndPointName,
queryDeviceRealTimeDataByPsKeys.RequestData{PsKeyList: valueTypes.SetStringValue(psKey)},
DefaultCacheTimeout,
)
if sg.IsError() {
break
}
data := queryDeviceRealTimeDataByPsKeys.Assert(ep)
table := data.GetEndPointResultTable()
if table.Error != nil {
sg.Error = table.Error
break
}
table.SetTitle("Real Time Data %s", psKey)
table.SetFilePrefix(data.SetFilenamePrefix(""))
table.SetGraphFilter("")
table.SetSaveFile(sg.SaveAsFile)
table.OutputType = sg.OutputType
sg.Error = table.Output()
if sg.IsError() {
break
}
}
return sg.Error
}