ziggs/internal/cli/info.go

70 lines
2.1 KiB
Go

package cli
import (
"github.com/yunginnanet/huego"
"git.tcp.direct/kayos/ziggs/internal/ziggy"
)
func printUpdateInfo(c *huego.Config) {
log.Info().Msgf("Software version: %s", c.SwVersion)
log.Info().Msgf("API version: %s", c.APIVersion)
log.Info().Msgf("Datastore version: %s", c.DatastoreVersion)
if len(c.SwUpdate2.LastInstall) > 0 {
log.Info().Msgf("Last update: %v", c.SwUpdate2.LastInstall)
}
log.Info().Msgf("Auto install enabled: %t", c.SwUpdate2.AutoInstall.On)
log.Info().Msgf("Auto install time: %v", c.SwUpdate2.AutoInstall.UpdateTime)
log.Info().Msgf("Update state: %v", c.SwUpdate2.State)
}
func printNetworkInfo(c *huego.Config) {
log.Info().Msgf("Zigbee channel: %d", c.ZigbeeChannel)
log.Info().Msgf("IP address: %s", c.IPAddress)
log.Info().Msgf("Netmask: %s", c.NetMask)
log.Info().Msgf("Gateway: %s", c.Gateway)
log.Info().Msgf("DHCP enabled: %t", c.Dhcp)
log.Info().Msgf("Proxy address: %s", c.ProxyAddress)
log.Info().Msgf("Proxy port: %d", c.ProxyPort)
}
func printRemoteServicesInfo(c *huego.Config) {
log.Info().Msgf("WAN state: %s", c.InternetService.Internet)
log.Info().Msgf("Remote access: %s", c.InternetService.RemoteAccess)
log.Info().Msgf("NTP: %s", c.InternetService.Time)
log.Info().Msgf("Update server: %s", c.InternetService.SwUpdate)
}
func printPortalInfo(c *huego.Config) {
log.Info().Msgf("Portal connection: %s", c.PortalState.Communication)
log.Info().Msgf("Portal signed on: %t", c.PortalState.SignedOn)
log.Info().Msgf("Portal I/O: %t/%t", c.PortalState.Incoming, c.PortalState.Outgoing)
}
func cmdInfo(br *ziggy.Bridge, args []string) error {
return printBridgeInfo(br)
}
func printBridgeInfo(br *ziggy.Bridge) error {
c, err := br.GetConfig()
if err != nil {
return err
}
log.Info().Msgf("Name: %s", c.Name)
log.Info().Msgf("ID: %s", c.BridgeID)
log.Info().Msgf("MAC: %s", c.Mac)
log.Info().Msgf("Model: %s", c.ModelID)
println()
printUpdateInfo(c)
println()
printNetworkInfo(c)
println()
printRemoteServicesInfo(c)
println()
printPortalInfo(c)
println()
log.Info().Msgf("Local Time: %s", c.LocalTime)
log.Info().Msgf("Link Button Enabled: %t", c.LinkButton)
return nil
}