started knx integration

This commit is contained in:
John
2022-05-01 12:13:13 +02:00
parent ac7654e14d
commit 232164c866
12 changed files with 1335 additions and 0 deletions
+70
View File
@@ -0,0 +1,70 @@
# Configuration file for ebusd KNX integration with knxd (https://github.com/knxd/knxd).
# Use this file with ebusd to establish a bridge between KNX and eBUS for a set of messages.
# The commandline options to ebusd should contain e.g.:
# --knxurl=ip:localhost --knxint=/etc/ebusd/knx.cfg
# Currently only reading from and writing to group addresses as defined here is supported.
# Setting the addresses via ETS is not (yet) possible as well as setting the physical address.
# All entries are set to group address flags as follows:
# - for read and passive write messages: "Read", "Transmit"
# - for active write messages: "Write", (no "Update")
# The physical address depends on how knxd is configured and might change each time ebusd and/or knxd is restarted when
# a range of possible client addresses were configured on knxd side (which is recommended when there is more than one
# client using knxd).
# the global value group assignments for running, version, signal, uptime, updatecheck, and scan.
# running: 1 bit, 1=running, DPT 1.002
global/running = 9/0
# version: 2 octets, major in MSB, minor in LSB, DPT 217.001 "DPT_Version"
global/version = 9/1
# signal: 1 bit, 1=signal acquired, DPT 1.002
global/signal = 9/2
# uptime: 4 octets int, seconds since start, sent once every hour, DPT 12.100
global/uptime = 9/3
# updatecheck: 1 bit, 1=update available, DPT 1.002
global/updatecheck = 9/4
# scan: 1 bit, 1=running, DPT 1.002
global/scan = 9/5
# the message field value group assignments by circuit/message/field name.
# the value coding depends on the field datatype and currently only numeric datatypes are supported.
# the mapping is as follows:
# - BI0:1 - BI7:1, length 1: 1 bit, DPT 1
# - without divisor:
# - BI0 - BI6, length >1: 1 octet, unsigned, DPT 5.010
# - UCH: 1 octet, unsigned, DPT 5.010
# - SCH, D1B: 1 octet, signed, DPT 6.010
# - UIN, UIR, PIN: 2 octet, unsigned, DPT 7.001
# - SIN, SIR: 2 octet, signed, DPT 8.001
# - U3N, U3R, ULG, ULR: 4 octet, unsigned, DPT 12.001
# - U3N, U3R, SLG, SLR: 4 octet, signed, DPT 13.001
# - with divisor:
# - BI0 - BI6, length >1: 2 octet, signed float, DPT 9.*
# - UCH, SCH, D1B, UIN, UIR, SIN, SIR: 2 octet, signed float, DPT 9.*
# - U3N, U3R, ULG, ULR, SLG, SLR: 4 octet, signed float, DPT 14.*
# - with or without divisor:
# - D1C, D2B, D2C, FLT, FLR: 2 octet, signed float, DPT 9.*
# - EXP, EXR: 4 octet, signed float, DPT 14.*
#
# note: the float conversion from ebus to KNX may loose precision due to the KNX DPT 9 not being able to carry more than
# two digits after the decimal point and having a mantissa of only 11 bits.
# Consequently, when writing a 2-octet float to ebusd, a consecutive read on the same group address is likely to reveal
# a different value if it was using more than two digits after the decimal point or exceeding the KNX float mantissa
# range, e.g.:
# - an ebus D2B value of 10.004 will read as 10.00 2-octet float on KNX,
# - an ebus UIN with divisor 100 (like heating curve) value of 655.34 will read as 655.04 2-octet float on KNX,
# - writing a KNX 2-octet float value of 12.34 to an ebus UIN with divisor 10 will actually write 12.3 and read as 12.3.
#
# note: writing to ebus via KNX currently is only possible if the ebus message contains a single field respectively at
# most one non-ignored field. this is due to otherwise the value to be set for the other fields would have to be
# determined first which is mostly not possible. Group associations to write messages not fulfilling this requirement
# are silently ignored.
#
# note: the mapping for reads/writes from KNX is done as follows:
# - for KNX read, the precedence on picking the ebus message is: active read, passive read+write.
# - for KNX write, the precedence on picking the ebus message is: active write only.
broadcast/datetime/outsidetemp = 9/10