-
Notifications
You must be signed in to change notification settings - Fork 4
Handler: WindowCoveringTilt
Dieser Handler ist gedacht um eine Jalousiesteuerung inkl. Lammellenneigung anzubinden.
Dabei werden die KNX-Objekte so zugeordnet:
Objektfunktion in ETS | Bedeutung KNX | DPT | Characteristic im Handler | Wertebereich im HomeKit |
---|---|---|---|---|
Langzeitbetrieb | Rolladen Fahrt | DPT1, Subtype auf/ab | ShutterMove | NA |
Rückmeldung Rolladenposition | Rückmeldung in Prozent | DPT5 | CurrentPosition | 0-100% |
Position Rollade/Markise | Anfahrt Position | DPT5 | TargetPosition | 0-100% |
Rückmeldung Lamellenposition | Rückmeldung Lamellenposition in Prozent | DPT5 | CurrentHorizontalTiltAngle | -90° - +90° |
Position Lamelle | Anfahrt Lamellenposition in Prozent | DPT5 | TargetHorizontalTiltAngle | -90° - +90° |
Zusätzlich werden das Characteristic PositionState
verwendet. Dabei wird PositionState
nur deklariert, aber nicht mit Gruppenadressen verknüpft. Diese Eigenschaft müssen wir nur deklarieren, damit das Add-in darauf in Richtung HomeKit schreiben kann.
Als lokale Konstante wird ninetyDegRotation
benötigt. Mögliche Werte sind true
und false
, wobei der Wert auf true
zu setzen ist, wenn die verbauten Raffstores (Lamellen) nur eine Positionierung zwischen 0° und 90° erlauben. Ansonsten steht der wert auf false
(Lamellen können von -90° bis +90° gedreht werden). Für den Fall das man ninetyDegRotation
auf true
setzt, reagiert das AddIn nur auf Änderungen wenn diese Sich zwischen 0° und 90° befinden, andernfalls wird immer auf 0° gesetzt.
Die CurrentPosition ist aus Sicht von HomeKit nicht beschreibbar - wir bekommen diesen Wert nur vom Aktor, daher brauchen wir keine Set
-Einträge. Selbiges gilt für CurrentHorizontalTiltAngle.
Die TargetPosition ist aus Sicht von HomeKit beschreibbar (das heisst, man kann auf dem iPhone eine neue Zielposition vorgeben, so dass der Rollo diese Position anfährt), brauchen wir (mindestens) eine Set
-Adresse. Damit das iPhone auch den Zielwert richtig anzeigt, falls wir über KNX die Position ändern, lauschen wir mit Listen
auf der gleichen Adresse.
Selbiges gilt auch für TargetHorizontalTiltAngle.
ShutterMove ist nicht mit einer echten HomeKit-Eigenschaft verknüpft, deshalb taucht es nicht bei den Characteristics, sondern in den KNXObjects auf - diese werden nur vom Handler beschrieben/gelesen. Wir benötigen hier nur eine hörende Adresse. Die Angabe des DPT ist zwingend und es funktioniert in diesem Handler für diese Adresse nur DPT1!
Für die Positionen gilt, und das ist fest verdrahtet: In KNX: 0% ist oben/geöffnet; 100% ist unten/geschlossen. HomeKit verhält sich genau umgekehrt. Es gibt aktuell keine Möglichkeit die Bedeutung der Positionen umzudrehen!
Das Beispiel sieht daher folgendermaßen aus: ###Beispiel
{
"ServiceType": "WindowCovering",
"Handler": "WindowCoveringTilt",
"ServiceName": "Jalousie Wohnzimmer",
"Characteristics": [
{
"Type": "TargetPosition",
"Set": [
"2/1/32"
],
"Listen": [
"2/1/32"
],
"DPT": "DPT5"
},
{
"Type": "CurrentPosition",
"Listen": [
"2/1/33"
],
"DPT": "DPT5"
},
{
"Type": "PositionState"
},
{
"Type": "TargetHorizontalTiltAngle",
"Set": [
"2/1/34"
],
"Listen": [
"2/1/34"
],
"DPT": "DPT5"
},
{
"Type": "CurrentHorizontalTiltAngle",
"Listen": [
"2/1/35"
],
"DPT": "DPT5"
}
],
"KNXObjects": [
{
"Type": "ShutterMove",
"Listen": "2/1/30",
"DPT": "DPT1"
}
],
"KNXReadRequests": [
"2/1/33",
"2/1/35"
],
"LocalConstants": {
"ninetyDegRotation": "true"
}
}