Metadata-Version: 2.4 Name: xknxproject Version: 3.9.0 Summary: A library to gather information from ETS project files used for KNX Author-email: Marvin Wichmann , Matthias Alphart License-Expression: GPL-2.0-only Project-URL: homepage, https://github.com/XKNX/xknxproject Keywords: KNX,ETS,Home Assistant Classifier: Development Status :: 4 - Beta Classifier: Intended Audience :: Developers Classifier: Programming Language :: Python :: 3 Requires-Python: >=3.9.0 Description-Content-Type: text/markdown License-File: LICENSE Requires-Dist: pyzipper>=0.3.6 Requires-Dist: striprtf>=0.0.26 Dynamic: license-file # (X)KNX Project [![Pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=f8b424)](https://github.com/pre-commit/pre-commit) [![Discord](https://img.shields.io/discord/338619021215924227?color=7289da&label=Discord&logo=discord&logoColor=7289da)](https://discord.gg/bkZe9m4zvw) [![codecov](https://codecov.io/gh/XKNX/xknxproject/branch/main/graph/badge.svg?token=LgPvZpKK3k)](https://codecov.io/gh/XKNX/xknxproject) Extracts KNX projects and parses the underlying XML. This project aims to provide a library that can be used to extract and parse KNX project files and read out useful information including the group addresses, devices, their descriptions and possibly more. ## Documentation Currently, xknxproject supports extracting (password protected) ETS 4, 5 and 6 projects and can obtain the following information: * Areas, Lines, Devices and their individual address and channels * CommunicationObjectInstance references for their devices (GA assignments) * Group Addresses and their DPT type if set * The application programs communication objects, their respective flags and the DPT Type * Location information of devices (in which rooms they are) * Functions assigned to rooms Caution: Loading a middle-sized project with this tool takes about 1.5 seconds. For bigger projects this might as well be >3s. Not all supported languages are included in project / application data. If the configured language is not found, the default language will be used - which is manufacturer / product dependent. ## Installation `pip install xknxproject` ## Usage ```python """Extract and parse a KNX project file.""" from xknxproject.models import KNXProject from xknxproject import XKNXProj knxproj: XKNXProj = XKNXProj( path="path/to/your/file.knxproj", password="password", # optional language="de-DE", # optional ) project: KNXProject = knxproj.parse() ``` The resulting `KNXProject` is a typed dictionary and can be used just like a dictionary, or can be exported as JSON. You can find an example file (exported JSON) in our test suite under https://github.com/XKNX/xknxproject/tree/main/test/resources/stubs The full type definition can be found here: https://github.com/XKNX/xknxproject/blob/main/xknxproject/models/knxproject.py