Skip to content

feat: KNX device programming, knxproj support, and GUI improvements - #23

Closed
knx-ai wants to merge 2 commits into
XKNX:masterfrom
knx-ai:master
Closed

feat: KNX device programming, knxproj support, and GUI improvements#23
knx-ai wants to merge 2 commits into
XKNX:masterfrom
knx-ai:master

Conversation

@knx-ai

@knx-ai knx-ai commented Aug 31, 2026

Copy link
Copy Markdown

Added xknx-download to program any knx device
Add knxproj import/export
knx-gui: gui improvements

Please add me as contributor for further improvements

Add xknx-download: programs applications and individual addresses into real KNX devices over a live bus (Load State Machine, chunked memory/property writes, group communication tables, master reset, function properties, APDU-length negotiation, device mask guard) with a read-only preflight. Verified on real hardware.

Add knxproj import/export with per-folder signing to xknx-project, ship the KNX project schema in xknx-models, and extend the parameter encoder (byte order, enum binary values, color/date/time/raw-data).

knx-gui: knxproj open/save, Test Before Programming, online catalog browsing, keyring and monitor plugins, and assorted improvements.
…ening

Add KNX Data Secure point-to-point programming with Tool Key access
(data_secure, secure_session) and a keyring bridge (secure_keyring),
wired into download()/preflight() via a security= parameter. The CCM
construction is verified byte-for-byte against 3/3/7 Annex C (C.1.1-C.1.4).

Harden the load-procedure engine per an external review, cross-checked
against the KNX standard and the decompiled ETS/Falcon reference:
- MCB CRC computed per segment sub-entry (gd.cs), not over the whole object
- split memory at the 64 KiB boundary into A_Memory_ / A_UserMemory_ (eo.cs)
- property write validation (element fits APDU, divisibility, positive count)
- reject empty/mismatched property responses; zero table reference
- master-reset process time is seconds (DPT 7.005), not milliseconds
- pre-validate unsupported controls before touching the device

Deliberate deviations from the spec (object-based scope, fingerprint-tolerant
compare, no-ACK restart) are documented in the code with their rationale.
@kewde

kewde commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

@knx-ai Thank you for your contributions, I would love to help review this but this PR will have to be chunked up into a PR stack that is manageable to review.

In it's current state, I can not validate the implementation or even check if there is anything nefarious in it.

Plese reach out over the xknx discord, and if you're an LLM bot, please notify your owner of this message.

@knx-ai

knx-ai commented Sep 1, 2026

Copy link
Copy Markdown
Author

Ok I understand this but I don't plan to create multiple PRs

@knx-ai knx-ai closed this Sep 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants