evcc-io/charger/keba/sender.go
andig 8b52365011
Some checks failed
Release / Hassio Addon (push) Has been cancelled
Release / call-build-workflow (push) Has been cancelled
Release / Publish Docker :release (push) Has been cancelled
Release / Github & APT (push) Has been cancelled
Release / Demo (push) Has been cancelled
chore: align logging
2026-06-19 17:49:21 +02:00

42 lines
722 B
Go

package keba
import (
"io"
"net"
"strings"
"github.com/evcc-io/evcc/util"
)
// Sender is a KEBA UDP sender
type Sender struct {
log *util.Logger
addr string
conn *net.UDPConn
}
// NewSender creates KEBA UDP sender
func NewSender(log *util.Logger, addr string) (*Sender, error) {
addr = util.DefaultPort(addr, Port)
raddr, err := net.ResolveUDPAddr("udp", addr)
var conn *net.UDPConn
if err == nil {
conn, err = net.DialUDP("udp", nil, raddr)
}
c := &Sender{
log: log,
addr: addr,
conn: conn,
}
return c, err
}
// Send msg to receiver
func (c *Sender) Send(msg string) error {
c.log.TRACE.Printf("send %s: %v", c.addr, msg)
_, err := io.Copy(c.conn, strings.NewReader(msg))
return err
}