KNX is a wired and radio-based system. A connection to IP-Symcon is possible via a serial or LAN-IP gateway. Engineering tool software ("ETS" for short) is required to configure the system.
The following devices are supported by IP-Symcon:
KNX is a network of house and building system technology according to EN 50090 and ISO/IEC 14543. For example, heating, lighting, blinds, ventilation and security technology are controlled across trades. The system usually uses cables (names include JY (St) Y 2x2x0.8 EIB or YCYM 2x2x0.8) with two wire pairs (red-black and white-yellow). The KNX system is powered by a power supply with a nominal voltage of 30 V [direct current]. This voltage supplies the bus coupler, via which each KNX device communicates with the other networked KNX devices. The data exchange between the KNX devices takes place via telegrams.
The participants are programmed and the group addresses are assigned using the engineering tool software (ETS). The ETS is provided by the umbrella organization Konnex and ensures smooth cooperation between components from different manufacturers.
The connection to IP-Symcon takes place via a serial or IP gateway.
As a rule, all serial gateways "PEI type 10" with FT1.2 protocol (interfaces of type PEI 16 do not work), and all KNX/IP gateways that offer the tunneling protocol, are supported. If a KNX gateway meets these requirements and does not work, Symcon Support should be contacted. The problem will be solved as soon as possible.
Since IP-Symcon 5.3, an XML export from the ETS can be read in via the configurator. This uses the current DPTs.
If all KNX devices are set up and connected correctly, they must be configured with the ETS. The three-stage address allocation is used for this.
Currently only three-level addresses (e.g. 10/2/5) are supported. IP-Symcon currently does not support two-stage or free addresses. Using the conversion , each two-stage address can be controlled via the translated three-stage address.
If the installation was carried out by an electrician, they should supply the OPC/XML export explained below and the associated ESF/XML file.
In order to be able to use KNX in IP-Symcon, either a serial FT1.2 gateway or a compatible KNX/IP gateway is required. The setup of the various gateways differs slightly. A KNX instance can be created directly in IP-Symcon and the gateway can be configured from there. Alternatively, the OPC/XML export from the ETS can be used.
The use of the OPC or XML export with the help of the IP-Symcon configurator allows a quick integration of all KNX components.
Since IP-Symcon 5.3, the export as XML is recommended because it supports the new KNX DPT instances.
An XML export can be saved within the ETS in the open project by right-clicking on the group addresses.
Export video guide:
Since version 6.0.0
Since version 5.6.5
Export video guide:
The KNX interface can be integrated via the Device search. To do this, "KNX Discovery" must be selected as the system. The discovery instance then offers to create a KNX configurator. After the configurator has been created, the individual devices can be added as described below.
Before starting to import the group addresses, the interface must be correctly selected and configured. To do this, the "cogwheel" in the upper area of the configuration must be clicked on. The following dialog should open.
The gateway type must be selected under Mode. The "KNX/IP (UDP)" mode must be selected for all common IP gateways. Changes will be saved with the "Apply" button. In order to be able to enter the address for the interface, the "cogwheel" in the upper area must be clicked on again. Depending on the mode, either the IP address must be entered or the serial port belonging to the interface must be entered. If in doubt, the IP address can also be found using the ETS. Further settings are not necessary. The changes are confirmed with "Apply". In the configuration of the gateway, the parameters of the gateway can now be read out via "Reload information". If these have been read out correctly, the configuration is complete.
IP-Address Video Guide:
After uploading the ESF/XML file in the KNX configurator, all previously configured KNX actuators can be integrated and visualized in IP-Symcon.
To do this, devices must be created by pressing "Create". The devices can now be operated.
The ID that then appears on the right-hand side is the InstanceID assigned by IP-Symcon. This is unique and unchangeable.
After clicking on a selected KNX device and then clicking on "Configure", the functionality of each individual device can be tested.
The devices can be found in the object tree.
The created devices can now be switched via the "WebFront".
In order to be able to send values such as the temperature to the KNX bus, an action script is required. This forms the link between the visualization and the actuators. A script with the following content must be created:
EIB_Value(IPS_GetParent($_IPS['VARIABLE']), $_IPS['VALUE']);
For each desired device that should be changeable, the corresponding variable must be linked to this action script. This must be done in the configuration of the respective variable. To do this, the variable must be double-clicked. The selection of the action script is located in the "Profile settings" area. The script just created must be selected here. A suitable profile (e.g. ~Temperature) should also be selected via "Custom Profile".
The last step can be repeated as often as desired. It is only necessary to create the script once with the above content.
Due to the many setting options and linked addresses, shutters cannot be added via the configurator.
The address for the up and down movement of the roller shutter must be entered here. In the "More?" area, further addresses can be entered to which the instance should listen for moving up/down.
The address for stopping the roller shutter must be entered here. In the "More?" area, further addresses can be entered to which the instance should listen for stopping.
This address can be switched on and controls the incremental movement of the roller shutter. This serves to adjust the slats of the roller shutter. In the "More?" area, further addresses can be entered to which the instance should listen for step control.
These two addresses can be switched on and control either the percentage positioning of the roller shutter or the slats.
Basic functions can be tested ad hoc in the Test Center.
If a two-level representation of the group addresses was selected in the ETS, the addresses can be converted using this tool. If the OPC export is used, the ETS automatically takes over this process.
If the free representation of the group addresses was selected in the ETS, an OPC export is unfortunately not possible. With the help of this tool, the addresses can be converted.
If HomeMatic is to be used with QNAP, Synology or Docker, NAT support must be set up to receive responses from the system. This process is explained here.
Since IP-Symcon only recognizes variable changes, it must, after a restart, be queried whether there have been status changes in order to enable a consistent display.
A start script can be added to the Event-Control for this purpose.
$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; default: //DPTs if(strpos($i['ModuleInfo']['ModuleName'], "DPT") !== false) { if(IPS_GetProperty($instanceID, "CapabilityRead")) { KNX_RequestStatus($instanceID); } } break; } } } }
The following script can be used to output the group addresses including ID, name and location.
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; }
Function | EIS type | 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 |