All Projects → calimero-project → calimero-core

calimero-project / calimero-core

Licence: other
Core library for KNX network access and management

Programming Languages

java
68154 projects - #9 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to calimero-core

calimero-gui
A graphical user interface for Calimero based on the Eclipse Standard Widget Toolkit (SWT)
Stars: ✭ 18 (-83.02%)
Mutual labels:  knx
ant-arduino
An implementation of a ANT driver for Arduino, Mbed and ESP-IDF
Stars: ✭ 69 (-34.91%)
Mutual labels:  rf
Hackrf
low cost software radio platform
Stars: ✭ 4,286 (+3943.4%)
Mutual labels:  rf
calimero-tools
A collection of KNX network tools for device discovery, process communication, and monitoring
Stars: ✭ 25 (-76.42%)
Mutual labels:  knx
dzetsaka
dzetsaka : classification plugin for Qgis
Stars: ✭ 61 (-42.45%)
Mutual labels:  rf
UA3REO-DDC-Transceiver
DDC/DUC SDR Tranceiver project
Stars: ✭ 93 (-12.26%)
Mutual labels:  rf
CometVisu
Repository for the CometVisu building automation visualisation.
Stars: ✭ 60 (-43.4%)
Mutual labels:  knx
Marconi.jl
A Julia Library for DC to Daylight
Stars: ✭ 15 (-85.85%)
Mutual labels:  rf
Picosat Horus
Desenvolvimento e produção de um picossatélite para realizações de medições atmosféricas e envio de telemetria por RF.
Stars: ✭ 26 (-75.47%)
Mutual labels:  rf
Rtl 433
Program to decode radio transmissions from devices on the ISM bands (and other frequencies)
Stars: ✭ 3,379 (+3087.74%)
Mutual labels:  rf
hkknx-public
hkknx is a HomeKit KNX bridge for KNX.
Stars: ✭ 65 (-38.68%)
Mutual labels:  knx
Tasmota
Alternative firmware for ESP8266 with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at
Stars: ✭ 16,624 (+15583.02%)
Mutual labels:  knx
Virgo
📡 Virgo: A Versatile Spectrometer for Radio Astronomy
Stars: ✭ 85 (-19.81%)
Mutual labels:  rf
ioBroker.knx
connect KNX via eibd
Stars: ✭ 46 (-56.6%)
Mutual labels:  knx
Ubertooth
Software, firmware and hardware designs for Ubertooth
Stars: ✭ 1,551 (+1363.21%)
Mutual labels:  rf
node-eibd
node.js eibd client (EIB/KNX daemon)
Stars: ✭ 52 (-50.94%)
Mutual labels:  knx
LibreVNA
100kHz to 6GHz 2 port USB based VNA
Stars: ✭ 447 (+321.7%)
Mutual labels:  rf
linknx
Linknx is a service aimed at interacting with KNX devices. It features a value cache to save bus bandwidth and exposes a rules engine allowing to automate actions based on powerful logical conditions and timers.
Stars: ✭ 37 (-65.09%)
Mutual labels:  knx
rf bridge
RF (433Mhz) to MQTT Bridge - with hardware
Stars: ✭ 38 (-64.15%)
Mutual labels:  rf
cariboulite
CaribouLite turns any 40-pin Raspberry-Pi into a Tx/Rx 6GHz SDR
Stars: ✭ 785 (+640.57%)
Mutual labels:  rf

Calimero-core CI with Gradle

git clone https://github.com/calimero-project/calimero-core.git

Calimero-core provides (secure) KNX communication protocols, KNX datapoint & property access, and management functionality. Java SE 11 (java.base) is the minimum required runtime environment. Calimero was developed with a focus on applications that run on embedded devices and require a small footprint.

Code examples for using this library are shown in the introduction.

Supported Features

Access Protocols

  • KNX IP Secure
    • Discovery and Self-description
    • Tunneling
    • Multicast (example of creating a secure network link)
    • Busmonitor
    • Device Management
  • KNXnet/IP
    • Discovery and Self-description
    • Tunneling
    • Routing
    • Busmonitor
    • Device Management
  • KNX IP
  • KNX RF USB
  • KNX USB
  • KNX FT1.2 protocol (serial connections using EMI2 or cEMI)
  • TP-UART (access TP1 networks over serial connections)
  • BAOS (Bus Access und Object Server)

Process Communication

  • DPT encoding/decoding of Java/KNX data types
  • Process Communicator client
  • Group Monitor
  • KNX Data Secure

Supported Datapoint Types (DPTs)

  • 1.x - Boolean, e.g., Switch, Alarm
  • 2.x - Boolean controlled, e.g., Switch Controlled, Enable Controlled
  • 3.x - 3 Bit controlled, e.g., Dimming, Blinds
  • 5.x - 8 Bit unsigned value, e.g., Scaling, Tariff information
  • 6.x - 8 Bit signed value, e.g., Percent (8 Bit), Status with mode
  • 7.x - 2 octet unsigned value, e.g., Unsigned count, Time period
  • 8.x - 2 octet signed value, e.g., Percent, Delta time seconds
  • 9.x - 2 octet float value, e.g., Temperature, Humidity
  • 10.x - Time
  • 11.x - Date
  • 12.x - 4 octet unsigned value
  • 13.x - 4 octet signed value, e.g., Counter pulses, Active Energy
  • 14.x - 4 octet float value, e.g., Acceleration, Electric charge
  • 16.x - String, e.g., ASCII string, ISO-8859-1 string (Latin 1)
  • 17.x - Scene number
  • 18.x - Scene control
  • 19.x - Date with time
  • 20.x - 8 Bit enumeration, e.g., Occupancy Mode, Blinds Control Mode
  • 21.x - Bit array of length 8, e.g., General Status, Room Heating Controller Status
  • 22.x - Bit array of length 16, implemented are DPT 22.101 and DPT 22.1000
  • 28.x - UTF-8 string
  • 29.x - 64 Bit signed value, e.g., Active Energy, Apparent energy
  • 229.001 - M-Bus metering value, with the various M-Bus VIF/VIFE codings
  • 232.x - RGB color value
  • 242.600 - xyY color
  • 243.600 - color transition xyY
  • 249.600 - brightness & color temperature transition
  • 250.600 - brightness & color temperature control
  • 251.600 - RGBW color
  • 252.600 - relative control RGBW
  • 253.600 - relative control xyY
  • 254.600 - relative control RGB

Network Monitor / Busmonitor

Access via KNXnet/IP, KNX USB, KNX RF USB, TP-UART, and FT1.2

Raw Frame Decoding

  • TP1
  • KNX IP
  • PL110
  • RF

Management

  • KNX Management Layer
  • KNX Management Procedures
  • cEMI Local Device Management
  • KNX Data Secure

EMI Support

  • cEMI standard and extend L-Data
  • cEMI Busmonitor
  • cEMI Device Management
  • EMI1/2 standard L-Data
  • EMI1/2 Busmonitor

Network Buffer

  • State/command-based datapoint buffer to answer .reqs, buffer incoming .ind updates

Logging

Calimero uses the Simple Logging Facade for Java (slf4j). Users can bind any desired logging frameworks. The default dependency is the Simple Logger. The simple logger logs everything to standard output, and can be configured via the file simplelogger.properties, JVM system properties, or java command line options, e.g., -Dorg.slf4j.simpleLogger.defaultLogLevel=trace.

Testing

For unit tests, Calimero provides a test network consisting of a KNXnet/IP server and a virtual KNX network with two KNX devices. 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 Travis CI.

Start 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' }.

Currently, the TP-UART and FT1.2 protocols can only be tested if the corresponding hardware is available.

More Features, Tools, Examples

  • introduction provides code examples in Java and Kotlin for programming with Calimero.
  • calimero-tools offers command-line tools for (secure) KNX process communication, monitoring, and management, BAOS communication, and ETS 5 datapoint import.
  • calimero-gui provides a graphical user interface (based on SWT) for (secure) process communication, monitoring, and management.
  • calimero-server is the Calimero KNXnet/IP Server and provides KNXnet/IP (Secure) access to KNX networks.
  • calimero-device is the communication stack to implement a KNX device.
  • serial-native provides native libraries for serial port access (using JNI) on Windows, Linux, and MacOS.
  • import-ets-xml imports ETS XML KNX datapoints for use with Calimero (ETS 5.7 and later is not supported, use calimero-tools).
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].