54 lines
1.1 KiB
Go
54 lines
1.1 KiB
Go
package cmd
|
|
|
|
import (
|
|
"github.com/evcc-io/evcc/api"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
// handleCurtailFlag handles the --curtail flag for a given device.
|
|
// Returns true if the flag was used.
|
|
func handleCurtailFlag(cmd *cobra.Command, v any) bool {
|
|
if !cmd.Flags().Changed(flagCurtail) {
|
|
return false
|
|
}
|
|
|
|
val, err := cmd.Flags().GetInt(flagCurtail)
|
|
if err != nil {
|
|
log.ERROR.Println("curtail:", err)
|
|
return true
|
|
}
|
|
|
|
if vv, ok := api.Cap[api.Curtailer](v); ok {
|
|
if err := vv.SetCurtailPercent(val); err != nil {
|
|
log.ERROR.Println("curtail:", err)
|
|
}
|
|
} else {
|
|
log.ERROR.Println("curtail: not implemented")
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
// handleDimFlag handles the --dim flag for a given device.
|
|
// Returns true if the flag was used.
|
|
func handleDimFlag(cmd *cobra.Command, v any) bool {
|
|
if !cmd.Flags().Changed(flagDim) {
|
|
return false
|
|
}
|
|
|
|
val, err := cmd.Flags().GetInt(flagDim)
|
|
if err != nil {
|
|
log.ERROR.Println("dim:", err)
|
|
return true
|
|
}
|
|
|
|
if vv, ok := api.Cap[api.Dimmer](v); ok {
|
|
if err := vv.Dim(val > 0); err != nil {
|
|
log.ERROR.Println("dim:", err)
|
|
}
|
|
} else {
|
|
log.ERROR.Println("dim: not implemented")
|
|
}
|
|
|
|
return true
|
|
}
|