61 lines
881 B
Go
61 lines
881 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"strings"
|
|
|
|
"github.com/andig/evcc/internal/vehicle"
|
|
"github.com/andig/evcc/util"
|
|
)
|
|
|
|
func usage() {
|
|
fmt.Print(`
|
|
soc
|
|
|
|
Usage:
|
|
soc vehicle [--log level] [--param value [...]]
|
|
`)
|
|
}
|
|
|
|
func main() {
|
|
if len(os.Args) < 3 {
|
|
usage()
|
|
log.Fatal("not enough arguments")
|
|
}
|
|
|
|
params := make(map[string]interface{})
|
|
params["brand"] = strings.ToLower(os.Args[1])
|
|
|
|
var key string
|
|
for _, arg := range os.Args[2:] {
|
|
if key == "" {
|
|
key = strings.ToLower(strings.TrimLeft(arg, "-"))
|
|
} else {
|
|
if key == "log" {
|
|
util.LogLevel(arg, nil)
|
|
} else {
|
|
params[key] = arg
|
|
}
|
|
key = ""
|
|
}
|
|
}
|
|
|
|
if key != "" {
|
|
usage()
|
|
log.Fatal("unexpected number of parameters")
|
|
}
|
|
|
|
v, err := vehicle.NewCloudFromConfig(params)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
soc, err := v.SoC()
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
fmt.Println(soc)
|
|
}
|