Skip to content

Commit

Permalink
v1.2.4
Browse files Browse the repository at this point in the history
  • Loading branch information
MickMake committed Feb 27, 2022
1 parent 9c30f56 commit 3930b52
Show file tree
Hide file tree
Showing 12 changed files with 927 additions and 1,460 deletions.
1,138 changes: 79 additions & 1,059 deletions .idea/workspace.xml

Large diffs are not rendered by default.

20 changes: 20 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,26 @@ 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"}'
```

Show all data points used in a report template.
```
./bin/GoSungrow data get template-points 8040
┏━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━┓
┃ PointId ┃ Description ┃ Unit ┃
┣━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━┫
┃ p13008 │ Phase A Current │ A ┃
┃ p13162 │ Max. Charging Current (BMS) │ A ┃
┃ p18063 │ Phase B Backup Current │ A ┃
┃ p13009 │ Phase B Current │ A ┃
┃ p18062 │ Phase A Backup Current │ A ┃
┃ p13163 │ Max. Discharging Current (BMS) │ A ┃
┃ p13106 │ MPPT2 Current │ A ┃
┃ p13139 │ Battery Current │ A ┃
┃ p18064 │ Phase C Backup Current │ A ┃
┃ p13002 │ MPPT1 Current │ A ┃
┃ p13010 │ Phase C Current │ A ┃
┗━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━┛
```

Get the household storage report
```
./bin/GoSungrow api get getHouseholdStoragePsReport '{"date_id":"2022","date_type":"4","ps_id":"1129147"}'
Expand Down
168 changes: 107 additions & 61 deletions cmd/cmd_data.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,27 +16,29 @@ func AttachCmdData(cmd *cobra.Command) *cobra.Command {
DisableFlagParsing: false,
DisableFlagsInUseLine: false,
PreRunE: Cmd.ProcessArgs,
Run: cmdDataFunc,
RunE: func(cmd *cobra.Command, args []string) error {
return cmd.Help()
},
Args: cobra.MinimumNArgs(1),
}
cmd.AddCommand(cmdData)
cmdData.Example = PrintExamples(cmdData, "get <endpoint>", "put <endpoint>")


// ********************************************************************************
var cmdDataList = &cobra.Command{
Use: "ls",
Aliases: []string{"list"},
Short: fmt.Sprintf("List iSolarCloud high-level data commands."),
Long: fmt.Sprintf("List iSolarCloud high-level data commands."),
DisableFlagParsing: false,
DisableFlagsInUseLine: false,
// PreRunE: Cmd.SunGrowArgs,
Run: cmdDataListFunc,
Args: cobra.RangeArgs(0, 1),
}
cmdData.AddCommand(cmdDataList)
cmdDataList.Example = PrintExamples(cmdDataList, "", "areas", "endpoints", "<area name>")
// // ********************************************************************************
// var cmdDataList = &cobra.Command{
// Use: "ls",
// Aliases: []string{"list"},
// Short: fmt.Sprintf("List iSolarCloud high-level data commands."),
// Long: fmt.Sprintf("List iSolarCloud high-level data commands."),
// DisableFlagParsing: false,
// DisableFlagsInUseLine: false,
// // PreRunE: Cmd.SunGrowArgs,
// Run: cmdDataListFunc,
// Args: cobra.RangeArgs(0, 1),
// }
// cmdData.AddCommand(cmdDataList)
// cmdDataList.Example = PrintExamples(cmdDataList, "", "areas", "endpoints", "<area name>")

// ********************************************************************************
var cmdDataLogin = &cobra.Command{
Expand All @@ -53,6 +55,7 @@ func AttachCmdData(cmd *cobra.Command) *cobra.Command {
cmdData.AddCommand(cmdDataLogin)
cmdDataLogin.Example = PrintExamples(cmdDataLogin, "")


// ********************************************************************************
var cmdDataGet = &cobra.Command{
Use: "get",
Expand All @@ -62,11 +65,17 @@ func AttachCmdData(cmd *cobra.Command) *cobra.Command {
DisableFlagParsing: false,
DisableFlagsInUseLine: false,
PreRunE: Cmd.SunGrowArgs,
Run: cmdDataGetFunc,
RunE: func(cmd *cobra.Command, args []string) error {
return cmd.Help()
},
Args: cobra.MinimumNArgs(1),
}
cmdData.AddCommand(cmdDataGet)
cmdDataGet.Example = PrintExamples(cmdDataGet, "[area.]<endpoint>")
AttachCmdDataStats(cmdDataGet)
AttachCmdDataTemplate(cmdDataGet)
AttachCmdDataTemplatePoints(cmdDataGet)
AttachCmdDataPoints(cmdDataGet)

// ********************************************************************************
var cmdDataRaw = &cobra.Command{
Expand All @@ -77,11 +86,16 @@ func AttachCmdData(cmd *cobra.Command) *cobra.Command {
DisableFlagParsing: false,
DisableFlagsInUseLine: false,
PreRunE: Cmd.SunGrowArgs,
Run: cmdDataRawFunc,
RunE: func(cmd *cobra.Command, args []string) error {
return cmd.Help()
},
Args: cobra.MinimumNArgs(1),
}
cmdData.AddCommand(cmdDataRaw)
cmdDataRaw.Example = PrintExamples(cmdDataRaw, "[area.]<endpoint>")
AttachCmdDataStats(cmdDataRaw)
AttachCmdDataTemplate(cmdDataRaw)
AttachCmdDataPoints(cmdDataRaw)

// ********************************************************************************
var cmdDataSave = &cobra.Command{
Expand All @@ -92,11 +106,16 @@ func AttachCmdData(cmd *cobra.Command) *cobra.Command {
DisableFlagParsing: false,
DisableFlagsInUseLine: false,
PreRunE: Cmd.SunGrowArgs,
Run: cmdDataSaveFunc,
RunE: func(cmd *cobra.Command, args []string) error {
return cmd.Help()
},
Args: cobra.MinimumNArgs(1),
}
cmdData.AddCommand(cmdDataSave)
cmdDataSave.Example = PrintExamples(cmdDataSave, "[area.]<endpoint>")
AttachCmdDataStats(cmdDataSave)
AttachCmdDataTemplate(cmdDataSave)
AttachCmdDataPoints(cmdDataSave)

// ********************************************************************************
var cmdDataGraph = &cobra.Command{
Expand All @@ -107,11 +126,16 @@ func AttachCmdData(cmd *cobra.Command) *cobra.Command {
DisableFlagParsing: false,
DisableFlagsInUseLine: false,
PreRunE: Cmd.SunGrowArgs,
Run: cmdDataGraphFunc,
RunE: func(cmd *cobra.Command, args []string) error {
return cmd.Help()
},
Args: cobra.MinimumNArgs(1),
}
cmdData.AddCommand(cmdDataGraph)
cmdDataGraph.Example = PrintExamples(cmdDataGraph, "[area.]<endpoint> ''")
AttachCmdDataStats(cmdDataGraph)
AttachCmdDataTemplate(cmdDataGraph)
AttachCmdDataPoints(cmdDataGraph)

// ********************************************************************************
var cmdDataPut = &cobra.Command{
Expand All @@ -132,55 +156,77 @@ func AttachCmdData(cmd *cobra.Command) *cobra.Command {
}


func cmdDataFunc(cmd *cobra.Command, _ []string) {
Cmd.Error = cmd.Help()
}

func cmdDataListFunc(_ *cobra.Command, _ []string) {
Cmd.SunGrow.ListHighLevel()
}
// func cmdDataFunc(cmd *cobra.Command, _ []string) {
// Cmd.Error = cmd.Help()
// }
//
// func cmdDataListFunc(_ *cobra.Command, _ []string) {
// Cmd.SunGrow.ListHighLevel()
// }
//
// func cmdDataGetFunc(_ *cobra.Command, args []string) {
// for range Only.Once {
// Cmd.SunGrow.OutputType.SetHuman()
//
// args = fillArray(3, args)
// Cmd.Error = Cmd.SunGrow.GetHighLevel(args[0], args[1:]...)
// }
// }
//
// func cmdDataRawFunc(_ *cobra.Command, args []string) {
// for range Only.Once {
// Cmd.SunGrow.OutputType.SetRaw()
//
// args = fillArray(3, args)
// Cmd.Error = Cmd.SunGrow.GetHighLevel(args[0], args[1:]...)
// }
// }
//
// func cmdDataSaveFunc(_ *cobra.Command, args []string) {
// for range Only.Once {
// Cmd.SunGrow.OutputType.SetFile()
//
// args = fillArray(3, args)
// Cmd.Error = Cmd.SunGrow.GetHighLevel(args[0], args[1:]...)
// }
// }
//
// func cmdDataGraphFunc(_ *cobra.Command, args []string) {
// for range Only.Once {
// Cmd.SunGrow.OutputType.SetGraph()
//
// args = fillArray(4, args)
// Cmd.Error = Cmd.SunGrow.GetHighLevel(args[0], args[1:]...)
// }
// }

func cmdDataGetFunc(_ *cobra.Command, args []string) {
for range Only.Once {
Cmd.SunGrow.OutputType.SetHuman()

args = fillArray(3, args)
Cmd.Error = Cmd.SunGrow.GetHighLevel(args[0], args[1:]...)
}
}

func cmdDataRawFunc(_ *cobra.Command, args []string) {
for range Only.Once {
Cmd.SunGrow.OutputType.SetRaw()

args = fillArray(3, args)
Cmd.Error = Cmd.SunGrow.GetHighLevel(args[0], args[1:]...)
}
}

func cmdDataSaveFunc(_ *cobra.Command, args []string) {
func cmdDataPutFunc(_ *cobra.Command, args []string) {
for range Only.Once {
fmt.Println("Not yet implemented.")
Cmd.SunGrow.OutputType.SetFile()

args = fillArray(3, args)
Cmd.Error = Cmd.SunGrow.GetHighLevel(args[0], args[1:]...)
args = fillArray(2, args)
// Cmd.Error = SunGrow.PutHighLevel(args[0], args[1])
}
}

func cmdDataGraphFunc(_ *cobra.Command, args []string) {
for range Only.Once {
Cmd.SunGrow.OutputType.SetGraph()

args = fillArray(4, args)
Cmd.Error = Cmd.SunGrow.GetHighLevel(args[0], args[1:]...)
}
}

func cmdDataPutFunc(_ *cobra.Command, args []string) {
func SwitchOutput(cmd *cobra.Command) error {
var err error
for range Only.Once {
fmt.Println("Not yet implemented.")
Cmd.SunGrow.OutputType.SetFile()
args = fillArray(2, args)
// Cmd.Error = SunGrow.PutHighLevel(args[0], args[1])
foo := cmd.Parent()
switch foo.Use {
case "get":
Cmd.SunGrow.OutputType.SetHuman()
case "raw":
Cmd.SunGrow.OutputType.SetRaw()
case "save":
Cmd.SunGrow.OutputType.SetFile()
case "graph":
Cmd.SunGrow.OutputType.SetGraph()
default:
Cmd.SunGrow.OutputType.SetHuman()
}
}

return err
}
97 changes: 81 additions & 16 deletions cmd/cmd_data_sub.go
Original file line number Diff line number Diff line change
@@ -1,30 +1,95 @@
package cmd

import (
"GoSungrow/Only"
"GoSungrow/iSolarCloud/api"
"fmt"
"github.com/spf13/cobra"
)


// ********************************************************************************
var cmdDataStats = &cobra.Command{
Use: "stats",
// Aliases: []string{""},
Short: fmt.Sprintf("Get live data from iSolarCloud"),
Long: fmt.Sprintf("Get live data from iSolarCloud"),
DisableFlagParsing: false,
DisableFlagsInUseLine: false,
PreRunE: Cmd.SunGrowArgs,
Run: cmdDataStatsFunc,
Args: cobra.MinimumNArgs(1),
func AttachCmdDataTemplatePoints(cmd *cobra.Command) *cobra.Command {
// ********************************************************************************
var cmdDataTemplatePoints = &cobra.Command{
Use: "template-points <template_id>",
Aliases: []string{""},
Short: fmt.Sprintf("List data points used in report template."),
Long: fmt.Sprintf("List data points used in report template."),
DisableFlagParsing: false,
DisableFlagsInUseLine: false,
PreRunE: Cmd.SunGrowArgs,
RunE: func(cmd *cobra.Command, args []string) error {
_ = SwitchOutput(cmd)
return Cmd.SunGrow.GetTemplatePoints(args[0])
},
Args: cobra.ExactArgs(1),
}
cmd.AddCommand(cmdDataTemplatePoints)
cmdDataTemplatePoints.Example = PrintExamples(cmdDataTemplatePoints, "8042", "8040")

return cmd
}

func cmdDataStatsFunc(_ *cobra.Command, args []string) {
for range Only.Once {
Cmd.SunGrow.OutputType.SetFile()
func AttachCmdDataTemplate(cmd *cobra.Command) *cobra.Command {
// ********************************************************************************
var cmdDataGetTemplate = &cobra.Command{
Use: "template <template_id> <date> [filter]",
Short: fmt.Sprintf("Get data from report template."),
Long: fmt.Sprintf("Get data from report template."),
DisableFlagParsing: false,
DisableFlagsInUseLine: false,
PreRunE: Cmd.SunGrowArgs,
RunE: func(cmd *cobra.Command, args []string) error {
_ = SwitchOutput(cmd)
return Cmd.SunGrow.GetTemplateData(args[0], args[1], args[2])
},
Args: cobra.MinimumNArgs(2),
}
cmd.AddCommand(cmdDataGetTemplate)
cmdDataGetTemplate.Example = PrintExamples(cmdDataGetTemplate, "8042 20220212", "8042 20220212 '{\"search_string\":\"p83106\",\"min_left_axis\":-6000,\"max_left_axis\":12000}'")

return cmd
}

Cmd.Error = Cmd.SunGrow.GetCurrentStats()
func AttachCmdDataStats(cmd *cobra.Command) *cobra.Command {
// ********************************************************************************
var cmdDataStats = &cobra.Command{
Use: "stats",
Aliases: []string{""},
Short: fmt.Sprintf("Get current inverter stats, (last 5 minutes)."),
Long: fmt.Sprintf("Get current inverter stats, (last 5 minutes)."),
DisableFlagParsing: false,
DisableFlagsInUseLine: false,
PreRunE: Cmd.SunGrowArgs,
RunE: func(cmd *cobra.Command, args []string) error {
_ = SwitchOutput(cmd)
return Cmd.SunGrow.GetCurrentStats()
},
Args: cobra.ExactArgs(0),
}
cmd.AddCommand(cmdDataStats)
cmdDataStats.Example = PrintExamples(cmdDataStats, "")

return cmd
}

func AttachCmdDataPoints(cmd *cobra.Command) *cobra.Command {
// ********************************************************************************
var cmdDataStats = &cobra.Command{
Use: "points <date> <device_id.point_id> ...",
Aliases: []string{""},
Short: fmt.Sprintf("Get points data for a specific date."),
Long: fmt.Sprintf("Get points data for a specific date."),
DisableFlagParsing: false,
DisableFlagsInUseLine: false,
PreRunE: Cmd.SunGrowArgs,
RunE: func(cmd *cobra.Command, args []string) error {
_ = SwitchOutput(cmd)
return Cmd.SunGrow.GetPointData(args[0], api.CreatePoints(args[1:]))
},
Args: cobra.MinimumNArgs(2),
}
cmd.AddCommand(cmdDataStats)
cmdDataStats.Example = PrintExamples(cmdDataStats, "20220202 1129147.p13019 1129147.p83106")

return cmd
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 3930b52

Please sign in to comment.