Dokumentation
KNX
KNX ist ein kabelgebundenes sowie funkbasierendes System (KNX-RF). Eine Verbindung mit IP-Symcon ist über ein serielles oder KNX IP Interface möglich. Zur Konfiguration des Systems wird eine Engineering-Tool-Software (kurz "ETS") benötigt.
Folgende Geräte werden von IP-Symcon unterstützt:
Unterstützte Komponenten (Auszug)
KNX Data Secure und KNX IP Secure werden unterstützt!
Inhaltsverzeichnis
Einleitung
KNX ist eine Vernetzung von Haus- und Gebäudesystemtechnik gemäß EN 50090 und ISO/IEC 14543. Es werden gewerkeübergreifend zum Beispiel Heizung, Beleuchtung, Jalousien, Belüftung und Sicherheitstechnik gesteuert. Das System nutzt in der Regel Leitungen (Bezeichnung u.a. J-Y (St) Y 2x2x0,8 EIB bzw. YCYM 2x2x0,8) mit zwei Aderpaaren (rot-schwarz und weiß-gelb). Die KNX-Anlage wird von einer Spannungsversorgung mit 30 V Nennspannung [Gleichspannung] versorgt. Diese Spannung versorgt die Busankoppler, über die jedes KNX-Gerät mit den anderen vernetzten KNX-Geräten kommuniziert. Der Datenaustausch zwischen den KNX-Geräten erfolgt über Telegramme.
Die Programmierung der Teilnehmer und das Zuweisen der Gruppenadressen erfolgt mit der Engineering-Tool-Software (ETS). Die ETS wird von der Dachorganisation Konnex bereitgestellt und sichert die problemlose Zusammenarbeit von Komponenten verschiedener Hersteller.
Die Anbindung an IP-Symcon erfolgt über ein serielles oder IP-Gateway.
Als Regel gilt, dass alle seriellen Gateways “PEI Typ 10″ mit FT1.2 Protokoll (Interfaces des Typs PEI 16 funktionieren nicht) unterstützt werden und alle KNX/IP Gateways, die das Tunneling Protokoll anbieten. Sollte ein KNX Gateway diese Voraussetzungen erfüllen und nicht funktionieren, ist der Symcon Support zu kontaktieren. Das Problem wird so schnell wie möglich gelöst.
Seit IP-Symcon 6.4 wird ebenfalls KNX Data Secure und KNX IP Secure vollständig unterstützt. Zusätzlich unterstützen alle KNX IP Secure Interface auch das neue KNX/IP over TCP, welches wesentlich robuster als das ältere KNX/IP over UDP ist.
Installation
Wenn alle KNX-Geräte korrekt aufgestellt und angeschlossen sind, müssen diese mit der ETS konfiguriert werden. Dazu wird die dreistufige Adressvergabe genutzt.
Zur Zeit werden nur dreistufige Adressen (z.B. 10/2/5) unterstützt. Zweistufige oder freie Adressen unterstützt IP-Symcon zur Zeit nicht. Über die Umrechnung kann jede zweistufige Adresse über die übersetzte dreistufige Adresse Angesteuert werden.
Falls die Installation durch einen Elektriker vorgenommen wurde, so sollte dieser den nachfolgend erklärten OPC/XML Export und die damit verbundene Datei vom Typ XML mitliefern.
Um KNX in IP-Symcon nutzen zu können, ist entweder ein serielles FT1.2 Gateway oder ein kompatibles KNX/IP Gateway notwendig. Die Einrichtung der verschiedenen Gateways unterscheidet sich geringfügig. Es kann direkt eine KNX Instanz in IP-Symcon erstellt und von dieser aus das Gateway konfiguriert werden. Alternativ kann der XML Export aus der ETS genutzt werden.
Die Nutzung des XML Exports mit Hilfe des IP-Symcon Konfigurators erlaubt eine schnelle Einbindung aller KNX Komponenten.
Ab IP-Symcon 5.3 wird der Export als XML empfohlen, da dieser die neuen KNX DPT-Instanzen unterstützt.
XML Export in ETS
Ein XML-Export kann innerhalb der ETS im geöffneten Projekt via Rechtsklick auf die Gruppenadressen gespeichert werden.
Videoanleitung zum Export:
Ab Version 6.0.0
Ab Version 5.6.5
Einbindung in IP-Symcon
Die KNX Schnittstelle kann über die Gerätesuche eingebunden werden. Hierfür muss als System "KNX Discovery" gewählt werden. Die Discovery-Instanz bietet dann die Erstellung eines KNX Konfigurators an. Nachdem der Konfigurator erstellt wurde, können über diesen die einzelnen Geräte wie unten beschrieben hinzugefügt werden.
Bevor mit dem Import der Gruppenadressen begonnen werden kann, muss die Schnittstelle korrekt ausgwählt und konfiguriert werden. Dazu muss im oberen Bereich der Konfiguration auf das "Zahnrad" geklickt werden. Es sollte sich nachfolgender Dialog öffnen.
Wenn KNX Data Secure genutzt werden soll, kann im Kapitel KNX Data Secure weitergelesen werden.
Einbindung ohne KNX Data Secure
Unter Modus muss der Typ des Gateways ausgewählt werden. Für alle gängigen IP-Gateways kann der Modus "KNX/IP (UDP)" ausgewählt werden. Für die KNX IP Interfaces mit Secure Unterstützung kann auch der zuverlässigere Modul "KNX/IP (TCP)" gewählt werden oder das passende Secure equivalent. Änderungen werden mit dem Button "Übernehmen" gespeichert werden. Um für die Schnittstelle die Adresse eintragen zu können, muss erneut auf das "Zahnrad" im oberen Bereich geklickt werden. Je nach Modus muss entweder die IP-Adresse eingetragen oder der serielle Port der zu der Schnittstelle gehört eingetragen werden. Im Zweifelsfall kann die IP-Adresse auch mit Hilfe der ETS herausgefunden werden. Weitere Einstellungen sind nicht notwendig. Die Änderungen werden mit "Übernehmen" bestätigt. In der Konfiguration des Gateways können nun über "Informationen neu laden" die Parameter des Gateways ausgelesen werden. Wenn diese korrekt Ausgelesen wurden, ist die Konfiguration vollständig.
Videoanleitung:
Einbindung in IP-Symcon mit KNX IP Secure / KNX Data Secure
Um KNX IP Secure und/oder KNX Data Secure in IP-Symcon zu nutzen, wird zusätzlich zu der XML Datei ein Backup von einem Schlüsselbund benötigt.
Videoanleitung zum Exportieren des Schlüsselbundes:
Im KNX Gateway muss der Modus "KNX/IP Secure (TCP)" ausgewählt werden. In das Feld "Schlüsselbund auswählen" wird die Schlüsselbund-Datei importiert und das Kennwort in das Feld "Schlüsselbund Kennwort" eingeben. Änderungen werden mit dem Button "Übernehmen" gespeichert werden. Nun erscheint das Feld "Sicherer Tunnel" über welchem der konfigurierte Tunnel des Interfaces ausgewählt werden kann. Um für die Schnittstelle die Adresse eintragen zu können, muss erneut auf das "Zahnrad" im oberen Bereich geklickt werden. Hier muss die IP-Adresse eingetragen gehört eingetragen werden. Im Zweifelsfall kann die IP-Adresse auch mit Hilfe der ETS herausgefunden werden. Weitere Einstellungen sind nicht notwendig. Die Änderungen werden mit "Übernehmen" bestätigt. In der Konfiguration des Gateways können nun über "Informationen neu laden" die Parameter des Gateways ausgelesen werden. Wenn diese korrekt Ausgelesen wurden, ist die Konfiguration vollständig.
Videoanleitung für KNX Data Secure mit KNX IP Secure Interface:
Videoanleitung für KNX Data Secure mit SymBox mit KNX Erweiterung:
IP-Adresse herrausfinden
Einzelne Aktoren einrichten
Im KNX Konfigurator können nach dem Hochladen der XML-Datei alle zuvor konfigurierten KNX-Aktoren in IP-Symcon eingebunden und visualisiert werden.
Dazu müssen Geräte durch drücken von "Erstellen" erstellt werden. Die Geräte sind jetzt bedienbar.
Bei der danach erscheinenden ID auf der rechten Seite handelt es sich um die von IP-Symcon zugeordnete InstanzID. Diese ist einmalig und unveränderbar.
Nach einem Klick auf ein ausgewähltes KNX-Gerät und dann einen Klick auf “Konfigurieren” kann die Funktionalität jedes einzelnen Gerätes getestet werden.
Die Geräte sind im Objektbaum wieder zu finden.
Über die Visualisierung können nun die erstellten Geräte geschaltet werden.
Automatische Erkennung von Rückmeldeadressen
Wenn ein Gerät eine Rückmeldeadresse eingerichtet hat, kann diese automatisch erkannt und als Rückmeldeadresse gesetzt werden. Dazu muss im KNX Konfigurator auf den Button "Erkenne Rückmelde-GA automatisch" geklickt und über den Punkt "Aktiviere Erkennung" muss dies aktiviert werden.
Danach muss ausgewählt werden über welche Ebenen die Gruppenadressen verknüpft werden sollen. Liegt die Rückmeldeadresse und das Gerät in der selben Mittelgruppe, so wird der Punkt "Verknüpfe auf der selben Ebene (1/1/x)" ausgewählt. Liegen Rückmeldeadresse und Gerät in unterschiedlichen Mittelgruppen so wird der Punkt "Verknüpfe über zwei Ebenen (1/x/x)" ausgewählt. Liegen die Adressen in verschiedenen Hauptgruppen wird der Punkt "Verknüpfe auf allen Ebenen (x/x/x)" ausgewählt.
Die Verknüpfung der Gruppenadressen erfolgt über die angegebenen Schlüsselwörter. Ist der Name einer Rückmeldeadresse nach Entfernen des Schlüsselwortes identisch mit dem Namen einer Gruppenadressen so werden diese miteinander verknüpft. Die Groß-/Kleinschreibung wird dabei ignoriert. Die Rückmeldeadresse wird dann als Rückmeldeadresse der Gruppenadresse gesetzt.
Video zur Einrichtung mit automatischen Rückmeldeadressen:
Beispiele
Temperaturwerte auf den KNX-Bus senden
Um Werte wie z.B. die Temperatur auf den KNX-Bus senden zu können, ist ein Aktionsskript erforderlich. Dieses bildet die Verknüpfung zwischen der Visualisierung und den Aktoren. Es muss ein Skript mit folgendem Inhalt erstellt werden:
EIB_Value(IPS_GetParent($_IPS['VARIABLE']), $_IPS['VALUE']);
Für jedes gewünschte Gerät, dass veränderbar sein soll, muss die entsprechende Variable mit diesem Aktionsskript verknüpft werden. Dies muss in der Konfiguration der jeweiligen Variable geschehen. Dazu muss die Variable doppelt angeklickt werden. Im Bereich "Profileinstellungen" befindet sich die Auswahl des Aktionsskripts. Hier muss das eben erstelle Skript ausgewählt werden. Über "Eigenes Profil" sollte zusätzlich ein passendes Profil (z.B. ~Temperature) ausgewählt werden.
Der letzte Schritt ist beliebig oft wiederholbar. Es ist nur erforderlich, das Skript einmalig mit den o.g. Inhalt anzulegen.
Bessere Rollladensteuerung mit KNX Shutter
Aufgrund der vielen Einstellungsmöglichkeiten und verknüpften Adressen können Shutter nicht über den Konfigurator hinzugefügt werden.
Bewegen
Hier muss die Adresse für die Auf- und Abbewegung des Rollladen eingetragen werden. Im Bereich "Mehr?" können weitere Adressen eingetragen werden, auf welche die Instanz zum Auf-/Abbewegen hören soll.
Stop
Hier muss die Adresse für das Stoppen des Rollladen eingetragen werden. Im Bereich "Mehr?" können weitere Adressen eingetragen werden, auf welche die Instanz zum Stoppen hören soll.
Aktiviere Schritte/Lamelle
Diese Adresse kann zugeschaltet werden und steuert das Schrittweise bewegen des Rollladen. Dies dient dazu, die Lamellen des Rollladen zu verstellen. Im Bereich "Mehr?" können weitere Adressen eingetragen werden, auf welche die Instanz zur Schrittsteuerung hören soll.
Aktiviere prozentuale Positionierung
Diese zwei Adressen können zugeschaltet werden und steuern entweder das prozentuale Positionieren des Rollladen oder der Lamellen.
Test Center
Im Test Center können grundlegende Funktionen adhoc getestet werden.
Tipps und Tricks
Umrechnen von Gruppenadressen
Umrechnen von zweistufigen Gruppenadressen zu dreistufigen Gruppenadressen
Falls in der ETS eine zweistufige Darstellung der Gruppenadressen gewählt wurde, können die Adressen mit Hilfe dieses Tools umgerechnet werden. Wenn der OPC-Export genutzt wird, übernimmt die ETS diesen Prozess automatisch.
Umrechnen von freien Gruppenadressen zu dreistufigen Gruppenadressen
Falls Sie in der ETS die freie Darstellung der Gruppenadressen gewählt wurde, so ist leider ein OPC-Export nicht möglich. Mit Hilfe dieses Tools können die Adressen umgerechnet werden.
KNX mit QNAP, Synology oder Docker
Soll KNX mit QNAP, Synology oder Docker verwendet werden, so muss der NATSupport eingerichtet werden um Antworten des Systems zu erhalten. Dieser Vorgang ist hier erklärt.
Skript zum Auslesen der Zustände vom Bus
Da nur Variablenänderungen von IP-Symcon wahrgenommen werden ist beim Neustart von von IP-Symcon abzufragen ob es Statusänderungen gab, um eine konsistente Darstellung zu ermöglichen.
Hierzu kann ein Startskript im Event-Control hinzugefügt werden.
$gatewayIDs = IPS_GetInstanceListByModuleID("{1C902193-B044-43B8-9433-419F09C641B8}"); $instanceIDs = IPS_GetInstanceList(); foreach($gatewayIDs as $gatewayID) { foreach($instanceIDs as $instanceID) { $i = IPS_GetInstance($instanceID); if($i['ConnectionID'] == $gatewayID) { switch($i['ModuleInfo']['ModuleID']) { case "{24A9D68D-7B98-4D74-9BAE-3645D435A9EF}": //Shutter case "81F54858-72B1-4C2C-8CE3-7E00A3168378": //RGB (Legacy until IP-Symcon 5.0) case "{81F54858-72B1-4C2C-8CE3-7E00A3168378}": //RGB (IP-Symcon 5.1+) case "4D7F7548-0979-4ABD-9BB3-81F9477C0903": //RGBW (Legacy until IP-Symcon 5.0) case "{4D7F7548-0979-4ABD-9BB3-81F9477C0903}": //RGBW (IP-Symcon 5.1+) EIB_RequestStatus($instanceID); break; case "{D62B95D3-0C5E-406E-B1D9-8D102E50F64B}": //Group if(IPS_GetProperty($instanceID, "GroupCapabilityRead")) { EIB_RequestStatus($instanceID); } break; case "{FB223058-3084-C5D0-C7A2-3B8D2E73FE8A}": //Device KNX_RequestStatus($instanceID); break; default: //DPTs if(strpos($i['ModuleInfo']['ModuleName'], "DPT") !== false) { if(IPS_GetProperty($instanceID, "CapabilityRead")) { KNX_RequestStatus($instanceID); } } break; } } } }
Skript zur Ausgabe der Gruppenadressen
Das folgende Skript kann dazu genutzt werden die Gruppenadressen samt Id, Name und Location auszugeben.
echo "ID,Name,Location,GA,MoreGA" . PHP_EOL; $gatewayIDs = IPS_GetInstanceListByModuleID("{1C902193-B044-43B8-9433-419F09C641B8}"); $instanceIDs = IPS_GetInstanceList(); foreach($gatewayIDs as $gatewayID) { foreach($instanceIDs as $instanceID) { $i = IPS_GetInstance($instanceID); if($i['ConnectionID'] == $gatewayID) { switch($i['ModuleInfo']['ModuleID']) { case "{24A9D68D-7B98-4D74-9BAE-3645D435A9EF}": //Shutter printGA($instanceID, "GroupMove"); if (IPS_GetProperty($instanceID, "EnableStep")) { printGA($instanceID, "GroupStep"); } printGA($instanceID, "GroupStop"); if (IPS_GetProperty($instanceID, "EnablePosition")) { printGA($instanceID, "GroupPosition"); } if (IPS_GetProperty($instanceID, "EnableBladePosition")) { printGA($instanceID, "GroupBladePosition"); } break; case "81F54858-72B1-4C2C-8CE3-7E00A3168378": //RGB (Legacy until IP-Symcon 5.0) case "{81F54858-72B1-4C2C-8CE3-7E00A3168378}": //RGB (IP-Symcon 5.1+) case "4D7F7548-0979-4ABD-9BB3-81F9477C0903": //RGBW (Legacy until IP-Symcon 5.0) case "{4D7F7548-0979-4ABD-9BB3-81F9477C0903}": //RGBW (IP-Symcon 5.1+) case "{D62B95D3-0C5E-406E-B1D9-8D102E50F64B}": //Group printGA($instanceID, "Group"); break; default: //DPTs if(strpos($i['ModuleInfo']['ModuleName'], "DPT") !== false) { printGA($instanceID, ""); } break; } } } } function printGA($id, $prefix) { $c = json_decode(IPS_GetConfiguration($id), true); echo sprintf("%d,%s,%s,", $id, IPS_GetName($id), IPS_GetLocation($id)); echo sprintf("%d/%d/%d", $c[$prefix . "Address1"], $c[$prefix . "Address2"], $c[$prefix . "Address3"]); foreach (json_decode($c[$prefix . "Mapping"], true) as $a) { echo "," . sprintf("%d/%d/%d", $a[$prefix . "Address1"], $a[$prefix . "Address2"], $a[$prefix . "Address3"]); } echo PHP_EOL; }
Legacy
OPC Export in ETS
Videoanleitung zum Export:
Einrichten mit OPC
Zuordnung der einzelnen Funktionen zum EIS-Typ/DPT
Funktion | EIS-Typ | DPT |
---|---|---|
EIB_Char | EIS13 | DPT4 |
EIB_Counter8bit | EIS14 | DPT5, DPT6 |
EIB_Counter16bit | EIS10 | DPT7, DPT8 |
EIB_Counter32bit | EIS11 | DPT12, DPT13 |
EIB_Date | EIS4 | DPT11 |
EIB_DimControl | EIS2 | DPT3 |
EIB_DimValue | EIS6 | DPT5 |
EIB_DriveBladeValue | EIS6 | DPT5 |
EIB_DriveMove | EIS7 | DPT1 |
EIB_DriveShutterValue | EIS6 | DPT5 |
EIB_DriveStep | EIS7 | DPT1 |
EIB_FloatValue | EIS9 | DPT14 |
EIB_Move | EIS7 | DPT1 |
EIB_Position | EIS6 | DPT5 |
EIB_PriorityControl | EIS8 | DPT2 |
EIB_PriorityPosition | EIS1 | DPT1 |
EIB_Scale | EIS6 | DPT5 |
EIB_Str | EIS15 | DPT16 |
EIB_Switch | EIS1 | DPT1 |
EIB_Time | EIS3 | DPT10 |
EIB_Value | EIS5 | DPT9 |
N/A | EIS12 | DPT15 |