« Zurück zu Produkt

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.

Warning

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.

Warning

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.

KNX ETS

Die Nutzung des XML Exports mit Hilfe des IP-Symcon Konfigurators erlaubt eine schnelle Einbindung aller KNX Komponenten.

Warning

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.

KNX XML Export

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.

KNX Konfigurator

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.

KNX Gaetway
Warning

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.

Variable-Profil
Warning

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.

Shutterkonfiguration

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;
                case "{FB223058-3084-C5D0-C7A2-3B8D2E73FE8A}": //Device
                    printGAs($instanceID);
                    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;
}

function printGAs($id) {
    $c = json_decode(IPS_GetConfiguration($id), true);
    foreach(json_decode($c['GroupAddresses'], true) as $ga) {
        echo sprintf("%d,%s,%s,", $id, IPS_GetName($id), IPS_GetLocation($id));
        echo sprintf("%d/%d/%d", $ga["Address1"], $ga["Address2"], $ga["Address3"]);
        foreach ($ga["Mapping"] as $a) {
            echo "," . sprintf("%d/%d/%d", $a["Address1"], $a["Address2"], $a["Address3"]);
        }
        echo PHP_EOL;
    }
}

Legacy

OPC Export in ETS
KNX OPC Export

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
Haben Sie noch Fragen?