Ja, ich hatte zwar nur die englische gefunden, passt aber genauso. Schau mal auf Seite 3, da steht ganz oben "ApplikationenSchalten, 3 Grenzwerte 704C01"
und auf Seite 6 "ApplikationenSchalten, Wertgeber, 4 Helligkeitsbereiche 704D01" Das sind die zwei möglichen Applikationen. Du müsstest beide Applikationen in die ETS laden können und das Gerät kannst Du mit beiden Applikationen programmieren. Je nach Applikation stehen dann halt unterschiedliche Funktionen zur Verfügung.
Wie funktioniert die Steuerung über die Taster? Lange drücken hoch bzw. runter, kurz Drücken stop? Oder andersrum, kurz drücken hoch bzw. runter, lang drücken stop? jedenfalls sollten die Tasterschnittstellen jeweils zwei GA parametriert haben, die an den Aktoren jeweils auf Kurz und Lang eines Aktorkanals gehen. Es kann gut sein, dass noch weitere GA in den Kanälen angelgt sind, die wären dann für die Gruppenfahrten (Alle Läden auf/zu).
In openHAB solltest Du nur die GA abbilden, welche jeweils genau einen Aktorkanal steuern. Beispiel:
Code: Alles auswählen
UID: knx:device:roll1
label: Rollladen 1
thingTypeUID: knx:device
configuration:
pingInterval: 600
readInterval: 0
fetch: false
bridgeUID: knx:ip:bridge
channels:
- id: ch1
channelTypeUID: knx:rollershutter
label: Kanal 1
description: ""
configuration:
upDown: 1/1/1
stopMove: 1/1/2
position: 1/1/3+<1/1/4
- id: ch2
channelTypeUID: knx:rollershutter
label: Kanal 2
description: null
configuration:
upDown: 1/2/1
stopMove: 1/2/2
position: 1/2/3+<1/2/4
- id: ch3
channelTypeUID: knx:rollershutter
label: Kanal 3
description: null
configuration:
upDown: 1/3/1
stopMove: 1/3/2
position: 1/3/3+<1/3/4
- id: ch4
channelTypeUID: knx:rollershutter
label: Kanal 4
description: null
configuration:
upDown: 1/4/1
stopMove: 1/4/2
position: 1/4/3+<1/4/4
- id: ch5
channelTypeUID: knx:rollershutter
label: Kanal 5
description: null
configuration:
upDown: 1/5/1
stopMove: 1/5/2
position: 1/5/3+<1/5/4
- id: ch6
channelTypeUID: knx:rollershutter
label: Kanal 6
description: null
configuration:
upDown: 1/6/1
stopMove: 1/6/2
position: 1/6/3+<1/6/4
Das wäre ein vollständiger Aktor. Falls Du keine Positionsmeldung hast (kommt ja auf den Aktor an, ob der das unterstützt) lässt Du die GA weg.
In meinem Beispiel ist die GA 1/x/1 für die lange Fahrt zuständig, die GA 1/x/2 ist für die kurze Fahrt (welche hier Stop bedeutet)
Die GA 1/x/3 gibt die gewünschte Position an, die GA 1/x/4 liefert die aktuelle Position. Diese GA ist auch lesbar und openHAB ermittelt beim Start über diese GA die Position.
Nun kannst Du diese Channel mit Items verknüpfen und fortan die Rollläden über diese Items steuern und visualisieren.
Wenn Du die Läden über Sonnenstand und Zeit steuern willst, reicht das Astro Binding vollkommen aus. Du installierst das Astro Binding, und falls Du im System den genauen Standort eingestellt hast (Main UI->Administration->Einstellungen->System Services->Regional Settings->Location), findest Du anschließend in der Inbox zwei Things, das eine heißt Moon, das andere heißt Sun (oder so).
Im Sun Thing kannst Du für das Range Event CivilDusk und CivilDawn Grenzwerte und einen Offset konfigurieren, Offset negativ: x Minuten vor dem eigentlichen Ereignis, Offset positiv: x Minuten nach dem eigentlichen Ereignis. Earliest: frühestens zu diesem Zeitpunkt. Latest: spätestens zu diesem Zeitpunkt.
Leider wird die Konfiguration nicht im Code angezeigt. Deshalb gebe ich hier mal den Code an, so wie er in einer *.things Datei geschrieben wird:
Code: Alles auswählen
// Astro
Thing astro:sun:local "Sonne" @ "zuhause" [geolocation="49.91,8.66,130", interval=300] {
Channels:
Type rangeEvent : civilDawn#event [
offset=10,
earliest="06:00",
latest="08:00"
]
Type rangeEvent : civilDusk#event [
offset=15,
earliest="16:00",
latest="22:00"
]
}
Dieser Code bedeutet, dass zehn Minuten nach der bürgerlichen Morgendämmerung, aber nicht vor 6 Uhr und nicht nach 8 Uhr der Trigger civilDawn ausgelöst wird. Weiterhin wird fünfzehn Minuten nach der bürgerlichen Abenddämmerung, jedoch frühstens 16 Uhr und spätestens 22 Uhr der Trigger civilDusk ausgelöst.
Nun reichen zwei Rules, eine für Öffnen und eine für Schließen, die jeweils auf den passenden Trigger konfiguriert sind:
Code: Alles auswählen
rule "frueh"
when
Channel 'astro:sun:local:civilDawn#event' triggered START
then
gShutters.members.forEach[ m | m.sendCommand(UP) ]
end
rule "spaet"
when
Channel 'astro:sun:local:civilDusk#event' triggered START
then
gShutters.members.forEach[ m | m.sendCommand(DOWN) ]
end
um alle Rollläden (die sind in der Gruppe gShutters zusammengefasst) zu öffnen, bzw. zu schließen.
Natürlich kannst Du auch die GA der verschiedenen Schwellwerte Deines Helligkeitssensors verwenden, die musst Du halt ebenfalls als Switch (Contact ist Quatsch...) angeben, dann kannst Du diese auch als Trigger verwenden (aber das Astro Modell funktioniert meiner Erfahrung nach besser als ein Helligkeitssensor).
Die Verschattung ist, wie gesagt, ein anderes Thema, lässt sich aber ebenfalls recht einfach abbilden. Natürlich braucht es auch dafür entweder Sensorwerte oder eine Berechnung, ob (und wann) eine Verschattung stattfinden soll. Meist möchte man diese dann nur partiell durchführen, also morgens die Ostseite, mittags den Süden und Abends den Westen, wobei die anderen Seiten dann auch wieder öffnen sollen. Das ist aber alles recht einfach zu bewerksteligen. Über Astro bekommst Du auch Elevation und Azimuth, womit Du einfach die verschiedenen Bereiche abgrenzen kannst (soweit Du die Lage Deines Hauses genau genug kennst). Eine entsprechende Rule muss dann bei Änderung der Werte triggern - die werden sich jedes Mal gleichzeitig ändern, je nach Einstellung, z.B. in obigem Code alle 6 Minuten (interval=300), dann triggert eine Rule, die die beiden Werte in Bezug auf verschiedene Grenzwerte prüft und entsprechend die Läden in bestimmte Positionen fährt. Da kommt es sehr drauf an, was die Aktoren können (Positionsfahrten, Szenen usw.). Man kann die Rule zusätzlich abhängig von der Außentemperatur machen oder auch den Helligkeitssensor mit verwenden (dafür böte es sich aber an, die Applikation 704D01 zu laden, damit Du direkt den Messwert verwenden kannst).