Documentation
¶
Index ¶
- func DecodeValue(data []byte, dataType string, addr *ParsedAddress, scale, offset float64) (any, error)
- func EncodeValue(value any, dataType string, addr *ParsedAddress) ([]byte, error)
- func NewKNXnetIPDriver() driver.Driver
- type GatewayInfo
- type KNXDecoder
- type KNXScheduler
- type KNXTransport
- func (t *KNXTransport) Connect(ctx context.Context) error
- func (t *KNXTransport) Disconnect() error
- func (t *KNXTransport) GetCached(group uint16) ([]byte, bool)
- func (t *KNXTransport) GetConnectionMetrics() (connectionSeconds int64, reconnectCount int64, localAddr string, ...)
- func (t *KNXTransport) IsConnected() bool
- func (t *KNXTransport) ReadGroup(ctx context.Context, group uint16) ([]byte, error)
- func (t *KNXTransport) WriteGroup(ctx context.Context, group uint16, payload []byte) error
- type KNXnetIPDriver
- func (d *KNXnetIPDriver) BindLinkMutex(mu *sync.Mutex)
- func (d *KNXnetIPDriver) Connect(ctx context.Context) error
- func (d *KNXnetIPDriver) Disconnect() error
- func (d *KNXnetIPDriver) GetConnectionMetrics() (connectionSeconds int64, reconnectCount int64, localAddr string, ...)
- func (d *KNXnetIPDriver) GetMetrics() model.ChannelMetrics
- func (d *KNXnetIPDriver) Health() driver.HealthStatus
- func (d *KNXnetIPDriver) Init(cfg model.DriverConfig) error
- func (d *KNXnetIPDriver) ReadPoints(ctx context.Context, points []model.Point) (map[string]model.Value, error)
- func (d *KNXnetIPDriver) SetDeviceConfig(_ map[string]any) error
- func (d *KNXnetIPDriver) SetSlaveID(_ uint8) error
- func (d *KNXnetIPDriver) WritePoint(ctx context.Context, p model.Point, value any) error
- type ParsedAddress
- type Simulator
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DecodeValue ¶
func EncodeValue ¶
func EncodeValue(value any, dataType string, addr *ParsedAddress) ([]byte, error)
func NewKNXnetIPDriver ¶
Types ¶
type GatewayInfo ¶
GatewayInfo describes a KNX IP interface discovered via SEARCH_RESPONSE.
func DiscoverGateways ¶
func DiscoverGateways(ctx context.Context, cfg transportConfig) ([]GatewayInfo, error)
DiscoverGateways sends SEARCH_REQUEST and collects SEARCH_RESPONSE results until timeout.
type KNXDecoder ¶
type KNXDecoder struct{}
KNXDecoder handles group address value encoding/decoding.
func NewKNXDecoder ¶
func NewKNXDecoder() *KNXDecoder
func (*KNXDecoder) ParseAddress ¶
func (d *KNXDecoder) ParseAddress(addr string) (*ParsedAddress, error)
type KNXScheduler ¶
type KNXScheduler struct {
// contains filtered or unexported fields
}
KNXScheduler coordinates point reads and writes.
func NewKNXScheduler ¶
func NewKNXScheduler(transport *KNXTransport, decoder *KNXDecoder) *KNXScheduler
func (*KNXScheduler) GetStats ¶
func (s *KNXScheduler) GetStats() (totalRequests, successCount, failureCount int64)
func (*KNXScheduler) ReadPoints ¶
func (*KNXScheduler) WritePoint ¶
type KNXTransport ¶
type KNXTransport struct {
// contains filtered or unexported fields
}
KNXTransport manages KNXnet/IP tunneling over UDP or TCP.
func NewKNXTransport ¶
func NewKNXTransport(cfg map[string]any) *KNXTransport
func (*KNXTransport) Disconnect ¶
func (t *KNXTransport) Disconnect() error
func (*KNXTransport) GetConnectionMetrics ¶
func (*KNXTransport) IsConnected ¶
func (t *KNXTransport) IsConnected() bool
func (*KNXTransport) WriteGroup ¶
type KNXnetIPDriver ¶
type KNXnetIPDriver struct {
// contains filtered or unexported fields
}
KNXnetIPDriver implements KNXnet/IP tunneling for group address read/write.
func (*KNXnetIPDriver) BindLinkMutex ¶
func (d *KNXnetIPDriver) BindLinkMutex(mu *sync.Mutex)
BindLinkMutex injects channelMu into ConnectionManager for shared-link reconnect.
func (*KNXnetIPDriver) Disconnect ¶
func (d *KNXnetIPDriver) Disconnect() error
func (*KNXnetIPDriver) GetConnectionMetrics ¶
func (*KNXnetIPDriver) GetMetrics ¶
func (d *KNXnetIPDriver) GetMetrics() model.ChannelMetrics
func (*KNXnetIPDriver) Health ¶
func (d *KNXnetIPDriver) Health() driver.HealthStatus
func (*KNXnetIPDriver) Init ¶
func (d *KNXnetIPDriver) Init(cfg model.DriverConfig) error
func (*KNXnetIPDriver) ReadPoints ¶
func (*KNXnetIPDriver) SetDeviceConfig ¶
func (d *KNXnetIPDriver) SetDeviceConfig(_ map[string]any) error
func (*KNXnetIPDriver) SetSlaveID ¶
func (d *KNXnetIPDriver) SetSlaveID(_ uint8) error
func (*KNXnetIPDriver) WritePoint ¶
type ParsedAddress ¶
type ParsedAddress struct {
GroupAddr uint16
IndividualAddr uint16
BitWidth int // 0 means full byte(s); 1-7 for sub-byte DPT types
}
ParsedAddress holds a KNX group address and optional individual address / bit width.
func ParseAddress ¶
func ParseAddress(addr string) (*ParsedAddress, error)
ParseAddress parses group address formats:
- "main/middle/sub" or "main/sub" (2-level)
- "main/middle/sub,area.line.device" with optional ",BIT"
type Simulator ¶
type Simulator struct {
// contains filtered or unexported fields
}
Simulator is a minimal KNXnet/IP tunneling gateway for unit tests.
func NewSimulator ¶
func NewSimulator() *Simulator