Files
invertergui/plugins/cli/cli.go
Nathan Coad a31a0b4829
Some checks failed
build / inverter_gui_pipeline (push) Has been cancelled
Modernize invertergui: MQTT write support, HA integration, UI updates
2026-02-19 12:03:52 +11:00

48 lines
1.1 KiB
Go

package cli
import (
"invertergui/mk2driver"
"github.com/sirupsen/logrus"
)
var log = logrus.WithField("ctx", "inverter-gui-cli")
type Cli struct {
mk2driver.Mk2
}
func NewCli(mk2 mk2driver.Mk2) {
newCli := &Cli{
Mk2: mk2,
}
go newCli.run()
}
func (c *Cli) run() {
for e := range c.C() {
if e.Valid {
printInfo(e)
}
}
}
func printInfo(info *mk2driver.Mk2Info) {
log.Infof("Version: %v", info.Version)
log.Infof("Bat Volt: %.2fV Bat Cur: %.2fA", info.BatVoltage, info.BatCurrent)
log.Infof("In Volt: %.2fV In Cur: %.2fA In Freq %.2fHz", info.InVoltage, info.InCurrent, info.InFrequency)
log.Infof("Out Volt: %.2fV Out Cur: %.2fA Out Freq %.2fHz", info.OutVoltage, info.OutCurrent, info.OutFrequency)
log.Infof("In Power %.2fW Out Power %.2fW", info.InVoltage*info.InCurrent, info.OutVoltage*info.OutCurrent)
log.Infof("Charge State: %.2f%%", info.ChargeState*100)
log.Info("LEDs state:")
for k, v := range info.LEDs {
log.Infof(" %s %s", mk2driver.LedNames[k], mk2driver.StateNames[v])
}
if len(info.Errors) != 0 {
log.Info("Errors:")
for _, err := range info.Errors {
log.Error(err)
}
}
}