Difference between revisions of "EIB/KNX"

From LinuxMCE
Jump to: navigation, search
m (How to add devices)
 
(20 intermediate revisions by 11 users not shown)
Line 1: Line 1:
 +
{{versioninfo}}
 +
{| align="right"
 +
  | __TOC__
 +
  |}
 +
[[Category: EIB/KNX]]
 +
[[category: Automation]]
 +
 
KNX (EIB) is a standardised (EN 50090,ISO/IEC 14543), OSI-based network communications protocol for intelligent buildings. KNX is the successor to, and convergence of, three previous standards: the European Home Systems Protocol (EHS), BatiBUS, and the European Installation Bus (EIB).
 
KNX (EIB) is a standardised (EN 50090,ISO/IEC 14543), OSI-based network communications protocol for intelligent buildings. KNX is the successor to, and convergence of, three previous standards: the European Home Systems Protocol (EHS), BatiBUS, and the European Installation Bus (EIB).
  
The KNX standard is administered by the Konnex Association. [http://www.konnex.org konnex.org]
+
The KNX standard is administered by the [http://www.konnex.org Konnex Association]
  
  
 
== How to install and use EIB ==
 
== How to install and use EIB ==
  
Connect your Core-Server with a serial cable to the EIB. Your BUS Connector has to have the FT1.2Protocol. (like [http://http://www.eibmarkt.com/cgi-bin/eibmarkt.storefront/46f9364200e19a48274450f3362b0652/Product/View/N434019 this]. You can use it from any Company (Gira, Berker, Siemens, ... ) but it is very important to have the correct protocol. (I bought the wrong one).  
+
''' There is also new driver available supporting bidirectional communication and "eibd" (e.g. for KNX/IP, ...): [[EIB/KNX_with_eibd|EIB/KNX with eibd]] '''
 +
 
 +
Connect your Core-Server with a serial cable to the EIB. To connect to the EIB, you need a data interface (speaking FT1.2 protocol), for example the GIRA RS-2323 (SKU 050403), a bus connector to connect the interface to the EIB, for example the GIRA (SKU 064500). You can use it from any Company (Gira, Berker, Siemens, ... ) but it is very important to have the correct protocol. (I bought the wrong one).  
 
When you have connect it you have to add the EIB Interface in the WebAdmin. Go to Devices-->Interface and choose EIB, select the correct COM-Port, do a reload - router and you are ready to use it.
 
When you have connect it you have to add the EIB Interface in the WebAdmin. Go to Devices-->Interface and choose EIB, select the correct COM-Port, do a reload - router and you are ready to use it.
You can also go in a console and look into the log file (DeviceID_EIB.log) to see if everything works fine.  
+
You can also go in a console and look into the log file (DeviceID_EIB.log) to see if everything works fine.
  
 
== How to add devices ==
 
== How to add devices ==
Line 42: Line 51:
  
 
I don't really have sensors. I only tried to create a sensor that is a light-switch. Every time I turn on the light the sensor was tripped and the Commands were executed.
 
I don't really have sensors. I only tried to create a sensor that is a light-switch. Every time I turn on the light the sensor was tripped and the Commands were executed.
 +
 +
=== Send Time to the bus ===
 +
 +
I found the solution! The question was the correct format - because LMCE Implementation uses integer values. Here is a short script which you can add to the crontab. Just change the groupadress.
 +
<pre>
 +
#!/usr/bin/perl
 +
$ENV{'PATH'}="/usr/bin";
 +
 +
($second, $minute, $hour, $dayOfMonth, $month, $yearOffset, $dayOfWeek) = localtime(time);
 +
$dayOfWeek = 7 if ($dayOfWeek==0);
 +
$time2 = sprintf '%s\n', ($second << 16) | ( $minute << 8) | ($hour) | ($dayOfWeek << 5);
 +
@args = ("/usr/pluto/bin/MessageSend localhost -r 0 40 1 273 108 \"3/0/50\" 109 \"$time2\" 110 \"3\"");
 +
system(@args);
 +
</pre>
 +
 +
== Additional Information ==
 +
To control a light with EIB the light has to be connected to an EIB actor. For example the GIRA Dimmaktor (SKU 105800). It is important to note, that you have to have special software (ETS) to programm (name) your EIB devices, before you can use LinuxMCE to control the devices.
  
 
== Problems ==
 
== Problems ==
Line 47: Line 73:
 
=== How to send the Time on the bus? ===
 
=== How to send the Time on the bus? ===
  
I want to send the system time of the server every ten minutes to the bus. The reason is, the internal clocks of the thermostats don't have a real clock, so they need the correct time/date every hour to synchronize.  
+
solved. see above.
Has anyone tried this???
+
  
 
=== Can't read from the bus ===
 
=== Can't read from the bus ===
  
 
I want to read data from the bus. Like how warm is it in the rooms or is a light on or off.  
 
I want to read data from the bus. Like how warm is it in the rooms or is a light on or off.  
I think this function isn't implemented yet?!?!? I would try to implement it, but i don't know how to build a working development system.
+
I think this function isn't implemented yet... I will try to implement it, but i don't know how to build a working development system.
 
+
== Links ==
 
+
https://www.auto.tuwien.ac.at/%7Emkoegler/index.php/eibd
 
+
sorry for the bad english :)
+

Latest revision as of 01:19, 28 September 2015

Version Status Date Updated Updated By
710 Unknown N/A N/A
810 Unknown N/A N/A
1004 Unknown N/A N/A
1204 Unknown N/A N/A
1404 Unknown N/A N/A
Usage Information

KNX (EIB) is a standardised (EN 50090,ISO/IEC 14543), OSI-based network communications protocol for intelligent buildings. KNX is the successor to, and convergence of, three previous standards: the European Home Systems Protocol (EHS), BatiBUS, and the European Installation Bus (EIB).

The KNX standard is administered by the Konnex Association


How to install and use EIB

There is also new driver available supporting bidirectional communication and "eibd" (e.g. for KNX/IP, ...): EIB/KNX with eibd

Connect your Core-Server with a serial cable to the EIB. To connect to the EIB, you need a data interface (speaking FT1.2 protocol), for example the GIRA RS-2323 (SKU 050403), a bus connector to connect the interface to the EIB, for example the GIRA (SKU 064500). You can use it from any Company (Gira, Berker, Siemens, ... ) but it is very important to have the correct protocol. (I bought the wrong one). When you have connect it you have to add the EIB Interface in the WebAdmin. Go to Devices-->Interface and choose EIB, select the correct COM-Port, do a reload - router and you are ready to use it. You can also go in a console and look into the log file (DeviceID_EIB.log) to see if everything works fine.

How to add devices

In the Webadmin you have on the left side new menu buttons for Lights, Drapes, Sensors and Thermostats. At first you have to add the groupadresses. You have to upload a file with the correct information about your System. The format is:

"LichtARschalt"/"0"/"0"/"1"
"Licht-SZ-schalt"/"0"/"0"/"10"
"Licht-SZ-dimm"/"0"/"0"/"11"
"Licht-SZ-wert"/"0"/"0"/"12"

Lights

Goto EIB Lights on the Webadmin. Give the Name of your Light and choose if it is dimmable or not. Click on the "Pick" Button -> choose the correct groupaddress for on/off and dim. In Webadmin->Lights you can add the room and type of your light. After that you can put the EIB light on the floorplan.

Thermostats

In my house the thermostats have two states (cold and warm). I don't want to change the temperature with LinuxMCE, i only want to turn on and off the heating. When the temperature is reached the EIB turns off the heating by itself. So, what did i do? At first i allowed my thermostat to change the state (on/off) by the bus and gave it a groupaddress (like 2/0/10) I go to the Webadmin->Scenarios->Climate and create for every room two scenarios (on and off). Then go to the Webadmin->Advanced->Configuration->Scenarios-Climate and choose the first Scenario. Add the EIB Device and the Command EIB_Write. Now you have to insert the groupaddress, data string and data type. Insert the groupaddress (2/0/10), the data string (1=on, 2=off) and for the data type put 6 in the field. Press save and you can test it.

This is a lot of work, but so you can write a very small php-page to execute one of the scenarios. That's very comfortable because you can turn on and off the heating from anywhere with the browser of a mobile phone.

Drapes

It's the same as the thermostats. I don't use the EIB-Drapes, I create my own scenarios and send the commands with EIB_Write to the bus. This works very well.

Sensors

I don't really have sensors. I only tried to create a sensor that is a light-switch. Every time I turn on the light the sensor was tripped and the Commands were executed.

Send Time to the bus

I found the solution! The question was the correct format - because LMCE Implementation uses integer values. Here is a short script which you can add to the crontab. Just change the groupadress.

#!/usr/bin/perl
$ENV{'PATH'}="/usr/bin";

($second, $minute, $hour, $dayOfMonth, $month, $yearOffset, $dayOfWeek) = localtime(time);
$dayOfWeek = 7 if ($dayOfWeek==0);
$time2 = sprintf '%s\n', ($second << 16) | ( $minute << 8) | ($hour) | ($dayOfWeek << 5);
@args = ("/usr/pluto/bin/MessageSend localhost -r 0 40 1 273 108 \"3/0/50\" 109 \"$time2\" 110 \"3\"");
system(@args);

Additional Information

To control a light with EIB the light has to be connected to an EIB actor. For example the GIRA Dimmaktor (SKU 105800). It is important to note, that you have to have special software (ETS) to programm (name) your EIB devices, before you can use LinuxMCE to control the devices.

Problems

How to send the Time on the bus?

solved. see above.

Can't read from the bus

I want to read data from the bus. Like how warm is it in the rooms or is a light on or off. I think this function isn't implemented yet... I will try to implement it, but i don't know how to build a working development system.

Links

https://www.auto.tuwien.ac.at/%7Emkoegler/index.php/eibd