Files
homebridge/platforms/KNX.md
2015-09-18 09:45:08 +02:00

132 lines
4.1 KiB
Markdown

# Syntax of the config.json
In the platforms section, you can insert a KNX type platform.
You need to configure all devices directly in the config.json.
````json
"platforms": [
{
"platform": "KNX",
"name": "KNX",
"knxd_ip": "192.168.178.205",
"knxd_port": 6720,
"accessories": [
{
"accessory_type": "knxdevice",
"name": "Living Room North Lamp",
"services": [
{
"type": "Lightbulb",
"description": "iOS8 Lightbulb type, supports On (Switch) and Brightness",
"name": "Living Room North Lamp",
"On": {
"Set": "1/1/6",
"Listen": [
"1/1/63"
]
},
"Brightness": {
"Set": "1/1/62",
"Listen": [
"1/1/64"
]
}
}
]
}
}
````
In the accessories section (the array within the brackets [ ]) you can insert as many objects as you like in the following form
````json
{
"accessory_type": "knxdevice",
"name": "Here goes your display name, this will be shown in HomeKit apps",
"services": [
{
}
]
}
````
You have to add services in the following syntax:
````json
{
"type": "SERVICENAME",
"description": "This is just for you to remember things",
"name": "We need a name for each service, though it usually shows only if multiple services are present in one accessory",
"CHARACTERISTIC1": {
"Set": "1/1/6",
"Listen": [
"1/1/63"
]
},
"CHARACTERISTIC2": {
"Set": "1/1/62",
"Listen": [
"1/1/64"
]
}
}
````
`CHARACTERISTICx` are properties that are dependent on the service type, so they are listed below.
Two kinds of addresses are supported: `"Set":"1/2/3"` is a writable group address, to which changes are sent if the service supports changing values. Changes on the bus are listened to, too.
`"Listen":["1/2/3","1/2/4","1/2/5"]` is an array of addresses that are listened to additionally. To these addresses never values get written, but the on startup the service will issue *KNX read requests* to ALL addresses listed in `Set:` and in `Listen:`
# Supported Services and their characteristics
## Lightbulb
- On: DPT 1, 1 as on, 0 as off
- Brightness: DPT5 percentage, 100% (=255) the brightest
## LockMechanism
- LockCurrentState: DPT 1, 1 as secured
OR (but not both:)
- LockCurrentStateSecured0: DPT 1, 0 as secured
- LockTargetState: DPT 1, 1 as secured
OR
- LockTargetStateSecured0: DPT 1, 0 as secured
## Thermostat
CurrentTemperature: DPT9 in °C [listen only]
TargetTemperature: DPT9, values 0..40°C only, all others are ignored
CurrentHeatingCoolingState: DPT5 HVAC, because of the incompatible mapping only off and heating (=auto) are shown, [listen only]
TargetHeatingCoolingState: as above
## TemperatureSensor
CurrentTemperature: DPT9 in °C [listen only]
## Window
CurrentPosition: DPT5 percentage
TargetPosition: DPT5 percentage
PositionState: DPT5 value [listen only]
## WindowCovering
CurrentPosition: DPT5 percentage
TargetPosition: DPT5 percentage
PositionState: DPT5 value [listen only]
### not yet supported
HoldPosition
TargetHorizontalTiltAngle
TargetVerticalTiltAngle
CurrentHorizontalTiltAngle
CurrentVerticalTiltAngle
ObstructionDetected
## ContactSensor
ContactSensorState: DPT 1, 0 as contact
OR
ContactSensorStateContact1: DPT 1, 1 as contact
StatusActive: DPT 1, 1 as true
StatusFault: DPT 1, 1 as true
StatusTampered: DPT 1, 1 as true
StatusLowBattery: DPT 1, 1 as true
# DISCLAIMER
This is work in progress!