feat: KNX device programming, knxproj support, and GUI improvements - #23
Closed
knx-ai wants to merge 2 commits into
Closed
feat: KNX device programming, knxproj support, and GUI improvements#23knx-ai wants to merge 2 commits into
knx-ai wants to merge 2 commits into
Conversation
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.
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. |
Author
|
Ok I understand this but I don't plan to create multiple PRs |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Added xknx-download to program any knx device
Add knxproj import/export
knx-gui: gui improvements
Please add me as contributor for further improvements