knxkit 0.1.1

High-level API for KNX devices and networks
Documentation

High-level API for KNX devices and networks

knxkit is a library for interfacing with KNX devices and networks. It provides a high-level API for interacting with KNX devices and networks, and is designed to be easy to use and flexible.

  • major data structures — individual and group addresses, CEMI, APDU, DataPoint, KNXnet/IP frames

  • KNXnet/IP services — search, describe, tunneling are implemented.

  • Project files — knxkit can process .knxproj files, which are used by ETS to store KNX project information. Devices and group definitions can be extracted. In addition it DPT definitions, that are used for code generation.

  • data structures for all Data point types (DPT) generated from knx_master.xml contents. Serialzation to and from JSON is supported. Display implementations are generated.

  • command line utilities for data structures generation and knx network interaction.

Related crates

Status

Currently the library is in development. It may be used for testing and experimentation, but is not yet ready for production use. The API is subject to change. The library is being developed in the open, and contributions are welcome.

Plan

In addition to general improvements and bug fixes, the following features are planned for the library:

  • KNXnet/IP routing
  • KNXnet/IP secure
  • USB tunneling
  • multiplexing of single tunnel connection over unix domain socket

Tools and applications

  • knx2mqtt
  • knx2ws (WebSocket)
  • knx2prometheus
  • scriptable logic engine