{"id":15018786,"url":"https://github.com/calimero-project/calimero-core","last_synced_at":"2025-05-16T09:07:10.697Z","repository":{"id":5804820,"uuid":"7019571","full_name":"calimero-project/calimero-core","owner":"calimero-project","description":"Core library for KNX network access and management","archived":false,"fork":false,"pushed_at":"2025-05-12T09:40:29.000Z","size":9176,"stargazers_count":135,"open_issues_count":5,"forks_count":69,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-05-12T10:47:28.959Z","etag":null,"topics":["ft12","java","knx","knx-ip","knx-usb","rf","tp-uart"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/calimero-project.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2012-12-05T15:21:41.000Z","updated_at":"2025-05-12T09:40:32.000Z","dependencies_parsed_at":"2023-10-01T18:33:03.641Z","dependency_job_id":"87b6e047-c797-4a36-87b3-ce66c1875e6d","html_url":"https://github.com/calimero-project/calimero-core","commit_stats":{"total_commits":2006,"total_committers":17,"mean_commits":118.0,"dds":"0.014955134596211339","last_synced_commit":"4ac10783f35741f73773e00dcf4f7721a3026d1e"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calimero-project%2Fcalimero-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calimero-project%2Fcalimero-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calimero-project%2Fcalimero-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calimero-project%2Fcalimero-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/calimero-project","download_url":"https://codeload.github.com/calimero-project/calimero-core/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254501558,"owners_count":22081528,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ft12","java","knx","knx-ip","knx-usb","rf","tp-uart"],"created_at":"2024-09-24T19:52:27.781Z","updated_at":"2025-05-16T09:07:05.688Z","avatar_url":"https://github.com/calimero-project.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Calimero-core [![CI with Gradle](https://github.com/calimero-project/calimero-core/actions/workflows/gradle.yml/badge.svg)](https://github.com/calimero-project/calimero-core/actions/workflows/gradle.yml)\n=============\n~~~ sh\ngit clone https://github.com/calimero-project/calimero-core.git\n~~~\n\nCalimero-core provides (secure) KNX communication protocols, KNX datapoint \u0026 property access, and management functionality. [JDK 17](https://openjdk.org/projects/jdk/17/) (_java.base_) is the minimum required runtime environment.\nCalimero was developed with a focus on applications that run on embedded devices and require a small footprint.\n\nCode examples for using this library are shown in the [introduction](https://github.com/calimero-project/introduction).\n\n**Changes with Calimero v3 snapshots**\n\n|                          | Prior                  | =\u003e  | New           |\n|--------------------------|------------------------|-----|---------------|\n| _Maven group ID_         | com.github.calimero    |     | io.calimero   |\n| _Modules_                | n/a                    |     | io.calimero.* |\n| _Packages_               | tuwien.auto.calimero.* |     | io.calimero.* |\n| _Logging prefix_         | calimero.*             |     | io.calimero.* |\n| _Logging API_            | SLF4J                  |     | System.Logger |\n\nSupported Features\n--------\n\n### Access Protocols\n* KNX IP Secure\n    * Discovery and Self-description\n    * Tunneling\n    * Multicast ([example](https://github.com/calimero-project/introduction/blob/master/src/main/java/KnxipSecure.java) of creating a secure network link)\n    * Busmonitor\n    * Device Management\n* KNXnet/IP\n    * Discovery and Self-description\n    * Tunneling\n    * Routing\n    * Busmonitor\n    * Device Management\n* KNX IP\n* KNX RF USB\n* KNX USB\n* KNX FT1.2 protocol (serial connections using EMI2 or cEMI)\n* TP-UART (access TP1 networks over serial connections)\n* BAOS (Bus Access und Object Server)\n\n### Process Communication\n* DPT encoding/decoding of Java/KNX data types\n* Process Communicator client\n* Group Monitor\n* KNX Data Secure\n\n#### Supported Datapoint Types (DPTs)\n* 1.x - Boolean, e.g., Switch, Alarm\n* 2.x - Boolean controlled, e.g., Switch Controlled, Enable Controlled\n* 3.x - 3 Bit controlled, e.g., Dimming, Blinds\n* 5.x - 8 Bit unsigned value, e.g., Scaling, Tariff information\n* 6.x - 8 Bit signed value, e.g., Percent (8 Bit), Status with mode\n* 7.x - 2 octet unsigned value, e.g., Unsigned count, Time period\n* 8.x - 2 octet signed value, e.g., Percent, Delta time seconds\n* 9.x - 2 octet float value, e.g., Temperature, Humidity\n* 10.x - Time\n* 11.x - Date\n* 12.x - 4 octet unsigned value\n* 13.x - 4 octet signed value, e.g., Counter pulses, Active Energy\n* 14.x - 4 octet float value, e.g., Acceleration, Electric charge\n* 16.x - String, e.g., ASCII string, ISO-8859-1 string (Latin 1)\n* 17.x - Scene number\n* 18.x - Scene control\n* 19.x - Date with time\n* 20.x - 8 Bit enumeration, e.g., Occupancy Mode, Blinds Control Mode\n* 21.x - Bit array of length 8, e.g., General Status, Room Heating Controller Status, 8-bit Cannel Activation\n* 22.x - Bit array of length 16, implemented are DHW Controller Status, RHCC Status, Media Type, 16-bit Channel Activation\n* 28.x - UTF-8 string\n* 29.x - 64 Bit signed value, e.g., Active Energy, Apparent energy\n* 229.001 - M-Bus metering value, with the various M-Bus VIF/VIFE codings\n* 232.x - RGB color value\n* 242.600 - xyY color\n* 243.600 - color transition xyY\n* 249.600 - brightness \u0026 color temperature transition\n* 250.600 - brightness \u0026 color temperature control\n* 251.600 - RGBW color \n* 252.600 - relative control RGBW\n* 253.600 - relative control xyY\n* 254.600 - relative control RGB\n\n### Network Monitor / Busmonitor\nAccess via KNXnet/IP, KNX USB, KNX RF USB, TP-UART, and FT1.2\n\n#### Raw Frame Decoding\n* TP1\n* KNX IP\n* PL110\n* RF\n\n### Management\n* KNX Management Layer\n* KNX Management Procedures\n* cEMI Local Device Management\n* KNX Data Secure\n\n### EMI Support\n* cEMI standard and extend L-Data\n* cEMI Busmonitor \n* cEMI Device Management\n* EMI1/2 standard L-Data \n* EMI1/2 Busmonitor\n\n### Network Buffer\n* State/command-based datapoint buffer to answer .reqs, buffer incoming .ind updates\n\n\nLogging\n-------\n\nCalimero uses the [System.Logger](https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/lang/System.Logger.html). Bind any desired logging frameworks of your choice.\n\n\nTesting\n-------\n\nFor unit tests, Calimero provides a [test network](https://github.com/calimero-project/calimero-testnetwork) consisting of a [KNXnet/IP server](https://github.com/calimero-project/calimero-server) and a virtual KNX network with two [KNX devices](https://github.com/calimero-project/calimero-device). The complete test network is implemented in software, and can be executed in any J2SE runtime environment. The network provides the remote KNXnet/IP endpoint for executing unit tests for KNXnet/IP tunneling, busmonitoring, routing, device management, and KNX IP protocols. The same network setup is used for Calimero CI on Github.\n\nStart the test network (`gradle run`) in the directory \"_calimero-core/test/testnetwork-launcher_\" before running any KNXnet/IP or KNX IP tests. When using Gradle, KNXnet/IP tests can be excluded via `useJUnitPlatform() { excludeTags 'knxnetip' }`.\n\nCurrently, the TP-UART and FT1.2 protocols can only be tested if the corresponding hardware is available. \n\n\nMore Features, Tools, Examples\n------------------------------\n\n* [introduction](https://github.com/calimero-project/introduction) provides code examples in Java and Kotlin for programming with Calimero.\n* [calimero-tools](https://github.com/calimero-project/calimero-tools) offers command-line tools for (secure) KNX process communication, monitoring, and management, BAOS communication, and ETS 5 datapoint import.\n* [calimero-gui](https://github.com/calimero-project/calimero-gui) provides a graphical user interface (based on SWT) for (secure) process communication, monitoring, and management.\n* [calimero-server](https://github.com/calimero-project/calimero-server) is the Calimero KNXnet/IP Server and provides KNXnet/IP (Secure) access to KNX networks.\n* [calimero-device](https://github.com/calimero-project/calimero-device) is the communication stack to implement a KNX device.\n* [serial-native](https://github.com/calimero-project/serial-native) provides native libraries for serial port access (using JNI) on Windows, Linux, and MacOS.\n* [import-ets-xml](https://github.com/calimero-project/import-ets-xml) imports ETS XML KNX datapoints for use with Calimero (ETS 5.7 and later is not supported, use [calimero-tools](https://github.com/calimero-project/calimero-tools)).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcalimero-project%2Fcalimero-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcalimero-project%2Fcalimero-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcalimero-project%2Fcalimero-core/lists"}