Contributing

How to report problems, propose changes and add support for more devices.

Tinkerbus is early and welcomes help, in particular from people with KNX devices and installations the author does not have.

The repository

The source lives on git.tinkerbus.org. A written contribution process does not exist yet. Until it does, you can reach the maintainer at [email protected].

Report a problem

Useful reports contain:

  • what you did and what you expected,
  • the version (commit hash) and platform,
  • for bus problems, the output of the command line tool and, if it is safe to share, a capture (tshark output that knxcap can decode),
  • for project problems, what is special about the project, and a reduced example if you can make one. Do not post project files of customers or passwords.

Support another device

The most valuable contribution is a verified mask or device family. A new mask needs:

  1. a reference download of a device of that family, recorded with tshark and decoded with knxcap -fixture;
  2. a plan builder in internal/download whose output equals the fixture (see the capture_*_test.go files);
  3. a run on a real device with knxprogram, first without -write, with the result noted.

Build and test

See Build and Testing. Run go test ./... before sending a change.

Code style

  • Go code is formatted with gofmt. The comments in the tree explain why rather than what, and say where a rule was observed rather than guessed.
  • Where the behaviour of a device or of ETS is not known, the code states what is established and what is missing, and does not guess. internal/falcon/secure is an example.
  • Changes to anything that sends to the bus or writes a device need a test, and a note about what hardware it was run on.

Licence

The licence has not been chosen yet. Ask in your first change or report before you contribute code, so that terms are settled. See Legal.