EIB / KNX: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Randnotiz EIB deprecated eingefügt)
 
(5 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Fhem kann auch Geräte über EIB bzw KNX steuern.
FHEM kann auch Geräte über '''EIB''' bzw. '''KNX''' steuern.


'''Hinweis''': Obwohl hier explizit ein Raspberry Pi verwendet wird, sollte die Ableitung für jedes Debian-Basierte (also auch Ubuntu) anwendbar sein.
'''Hinweis''': Obwohl hier explizit ein Raspberry Pi verwendet wird, sollte die Ableitung für jedes Debian-basierte System (also auch Ubuntu) anwendbar sein.
 
Zu diesem Zweck habe ich mir einen Raspberry Pi und einen [http://busware.de/tiki-index.php?page=TUL TUL] (''TPUART USB light'' von busware.de) besorgt. Der TPUART ist ein Baustein, der die Verbindung zwischen dem EIB und einer seriellen Schnittstelle herstellt. In dem USB TUL ist dem TPUART ein Microcontroller vorgeschaltet, der eine Wandlung von USB nach seriell vornimmt.


Zu diesem Zweck habe ich mir einen Raspberry Pi und einen TUL ([http://busware.de/tiki-index.php?page=TUL http://busware.de/tiki-index.php?page=TUL]) besorgt.
Der TPUART ist ein Baustein, der die Verbindung zwischen dem EIB und einer seriellen Schnittstelle herstellt. In dem USB TUL ist dem TPUART ein Microcontroller vorgeschaltet, der eine Wandlung von USB nach seriell vornimmt.
== Vorbereitung ==
== Vorbereitung ==
Der TUL wird ohne Firmware ausgeliefert und muss entsprechend vor der ersten Benutzung programmiert werden. Dies kann direkt über den Raspberry Pi geschehen:
Der TUL wird ohne Firmware ausgeliefert und muss entsprechend vor der ersten Benutzung programmiert werden. Dies kann direkt über den Raspberry Pi geschehen:


  <nowiki>sudo apt-get install dfu-programmer
  <nowiki>sudo apt-get install dfu-programmer
wget -O TPUARTtransparent.hex [http://busware.de/tiki-download_file.php?fileId=54 http://busware.de/tiki-download_file.php?fileId=54]
wget -O TPUARTtransparent.hex http://busware.de/tiki-download_file.php?fileId=54
sudo dfu-programmer atmega32u4 erase
sudo dfu-programmer atmega32u4 erase
sudo dfu-programmer atmega32u4 flash TPUARTtransparent.hex
sudo dfu-programmer atmega32u4 flash TPUARTtransparent.hex
sudo dfu-programmer atmega32u4 reset
sudo dfu-programmer atmega32u4 reset
sudo reboot</nowiki>
sudo reboot</nowiki>
Der Raspberry Pi wird wie auf [http://www.fhemwiki.de/wiki/Kategorie:Raspberry_Pi http://www.fhemwiki.de/wiki/Kategorie:Raspberry_Pi] beschrieben vorbereitet.
Der Raspberry Pi wird wie in [[Raspberry Pi#Installation / Setup|Installation / Setup]] beschrieben vorbereitet.
 
{{Randnotiz|RNText=Die Konfiguationen und Beispiele verwenden das Modul EIB! Dieses Modul ist seit 2018 deprecated, wird nicht mehr als Modul verteilt und wird nicht mehr gewartet. Beispiele für KNX sind auf der Seite [[KNX Device Definition - Beispiele]] zu finden.|RNTyp=}}


Den TUL kann man wohl per eibd oder direkt einbinden. Die direkte Einbindung erfolgt über ein
Den TUL kann man wohl per eibd oder direkt einbinden. Die direkte Einbindung erfolgt über ein
:<code>define EIB TUL tul:/dev/ttyACM0@57600 1.1.255</code>
in der fhem.cfg. Der letzte Parameter ist die EIB-Adresse, unter der sich der TUL einbucht. Somit muss es eine freie Adresse sein.


<nowiki>define EIB TUL tul:/dev/ttyACM0@57600 1.1.255</nowiki>
In diesem Fall ist die Adresse in der Punkt-Notation angegeben. FHEM versteht diese Notation, verwendet aber meist folgende "Schreibweise":
in der fhem.cfg . Der letzte Parameter ist die EIB-Adresse unter der sich der TUL einbucht. Somit sollte es eine freie Adresse sein.
:<code>abcc</code>
 
wobei a und b hexadezimale Werte von 0-f und cc hexadezimale Werte von 0-255 annehmen können. Dies entspricht dann der Adresse
In diesem Fall ist die Adresse in der Punkt-Notation angegeben. Die Fhem versteht diese Notation, verwendet aber meist folgende Notation:
:<code>a.b.cc</code>
 
<nowiki>abcc</nowiki>
wobei a und b hexadezimale Werte von 0-f und cc hexadezimale Werte von 0-255 einnehmen können. Dies entspricht dann der Adresse


<nowiki>a.b.cc</nowiki>
Weitere Informationen sind in der {{Link2CmdRef|Anker=KNX}} dokumentiert.
genaueres kann man in der Dokumentation unter [http://fhem.de/commandref.html#EIB http://fhem.de/commandref.html#EIB] nachlesen.


== Inbetriebnahme ==
== Inbetriebnahme ==
Jetzt ist es Zeit das Web-Interface von Fhem aufzurufen. Der RaspberryPi sollte jetzt schon im eigenen Intranet unter [http://raspberrypi:8083/ http://raspberrypi:8083/] erreichbar sein. Durch das autocreate feature kennt das System schon einige Geräte.
FHEM auf dem RaspberryPi sollte jetzt schon im eigenen Intranet unter <nowiki>[http://raspberrypi:8083/</nowiki> erreichbar sein. Durch die autocreate Funktion kennt das System unter Umständen auch schon einige Geräte.


=== Lampen ===
=== Lampen ===
Wenn man nun mal alle Lichtschalter betätigt, kennt das System schon die Adressen der im EIB eingebundenen Lampen. Diese sind die einfachsten Geräte im Fhem - sie lassen sich sofort über das Webinterface steuern. Über das Attribut "Raum" können die Lampen den verschiedenen Räumen zugeordnet werden, wobei das Interface nur ein Dropdown mit den schon bekannten Räumen anbietet - also erstmal nicht brauchbar ist&#160;:-(
Werden nun alle Lichtschalter einmal betätigt, kennt das System bereits die Adressen der im EIB eingebundenen Lampen. Diese sind die einfachsten Geräte in FHEM - sie lassen sich sofort über das Webinterface steuern. Über das Attribut "room" können die Lampen den verschiedenen Räumen zugeordnet werden, wobei das Interface nur ein Dropdown mit den schon "definierten" Räumen anbietet.


Die Lösung besteht darin die "attr"-Zeile im Interface in das obere Eingabefeld abzutippen - also z.B.
Neue Räume können aber einfach durch Eingabe des Befehls
:<code>attr <gerätename> room <neuerRaum></code>
in das Eingabefeld erzeugt werden (mit der Eingabetaste bestätigen, nicht mit dem "Save" Button).


<nowiki>attr EIB_abcd room Wohnzimmer</nowiki>
Nach dieser Eingabe taucht der neue Raum auch im entsprechenden Dropdown auf.  
und anschliessend '''die Eingabetaste drücken'''. Der "save" Button neben dem Eingabefeld führt nicht zum gewünschten Ergebnis. Er scheint dem Festschreiben der neuen Konfiguration in der fhem.cfg zu dienen und sollte somit ab und zu betätigt werden.
 
Nach dieser Eingabe taucht der neue Raum auch im entsprechenden Dropdown auf.


Den kryptischen Namen der Lampe ändert man auf gleichem Weg über die Eingabe von
Den kryptischen Namen der Lampe ändert man auf gleichem Weg über die Eingabe von
:<code>rename EIB_abcd wohnzimmer.deckenleuchte</code>


<nowiki>rename EIB_abcd wohnzimmer.deckenleuchte</nowiki>
Hierbei gilt zu beachten, dass die Namen aller Objekte in FHEM eindeutig sein müssen. Eine Bezeichnung "deckenleuchte" wird es für mehrere Räume geben und reicht somit nicht aus.
Auch hier ein Achtung: der Name aller Objekte muss in Fhem eindeutig sein. Eine Bezeichnung 'deckenleuchte' wird es für mehrere Räume geben und reicht somit nicht aus.


=== Temperatursensoren ===
=== Temperatursensoren ===
Definiert werden die Sensoren zunächst wie die Lampen. Damit das System allerdings weiss, dass sie als Temperatur angezeigt werden sollen, muss noch ein
Definiert werden die Sensoren zunächst wie die Lampen. Damit das System allerdings weiss, dass sie als Temperatur angezeigt werden sollen, muss noch ein
:<code>attr &lt;name temp sensor&gt; model tempsensor</code>
gesetzt werden. Für Heizungsventile gilt das gleiche, nur dass man dem System hier sagen muss, dass es sich um einen Prozent-Wert handelt. Je nach Information entweder
:<code>attr &lt;name ventil&gt; model percent</code>
oder
:<code>attr &lt;name ventil&gt; model percent255</code> (noch nicht von mir getestet)
Um zu verhindern, dass FHEM für diese Sensoren Schaltflächen anzeigt, kann man
:<code>attr &lt;name sensor&gt; dummy 1</code>
setzen. Achtung: sollte für dieses Element schon ein webCmd-Attribut gesetzt sein, werden die Schaltflächen '''nicht''' deaktiviert.
'''Ergänzung: Seit neuestem müssen die Datenmodelle gemäß KNX-Datenpunkttypen-Listen gesetzt werden!'''
Zudem funktioniert die Zuweisung über das Attribut "model" nicht mehr.
Es ist direkt in der Definiton einzuarbeiten.
Damit ergibt sich z.B.


<nowiki>attr &lt;name temp sensor&gt; model tempsensor</nowiki>
<code> define &lt;name temp sensor&gt; KNX 0/1/1:dpt5.001</code>  
gesetzt werden. Für Heizungsventile gilt das gleiche, nur dass man dem System hier sagen muss, dass es sich um einen Prozent-Wert handelt. Je nach Information entweder


<nowiki>attr &lt;name ventil&gt; model percent</nowiki>
wobei <code>:dpt5.001</code> anstatt <code> model percent</code> verwendet wird.
oder


<nowiki>attr &lt;name ventil&gt; model percent255 (noch nicht von mir getestet)</nowiki>
Die mögliche Datenpunktliste findet sich in der FHEM referenz.
Um zu verhindern, dass Fhem für diese Sensoren Schaltflächen anzeigt, kann man
Was der Sensor liefert ist in der Beschreibung des Sensors bzw. bei konfigurationsabhängigen Werten aus der ETS abzulesen.


<nowiki>attr &lt;name sensor&gt; dummy 1</nowiki>
In der FHEM Wiki ist diese Änderung noch nicht in allen KNX-Artikeln nachgezogen worden.
setzen. Achtung: sollte für dieses Element schon ein webCmd gesetzt sein, werden die Schaltschlächen _nicht_ deaktiviert.


=== Tipps ===
=== Tipps ===
Die Fhem Kommandos unterstützen anscheinend reguläre Ausdrücke. Hat man z.B. viele Temperatursensoren mit dem Namen "ist.&lt;raum&gt;" angelegt und möchte ihnen nun das attribut "dummy" setzen, kann man das mit
Die FHEM Kommandos unterstützen reguläre Ausdrücke. Sind beispielsweise viele Temperatursensoren mit dem Namen "ist.&lt;raum&gt;" angelegt und es soll dafür nun das attribut "dummy" gesetzt werden, kann das mit
 
:<code>attr ist.* dummy 1</code>
<nowiki>attr ist.* dummy 1</nowiki>
vereinfacht werden.
vereinfachen.


[[Kategorie:HOWTOS]]
[[Kategorie:HOWTOS]]
[[Kategorie:Glossary]]
[[Kategorie:EIB/KNX]]

Aktuelle Version vom 28. November 2022, 10:34 Uhr

FHEM kann auch Geräte über EIB bzw. KNX steuern.

Hinweis: Obwohl hier explizit ein Raspberry Pi verwendet wird, sollte die Ableitung für jedes Debian-basierte System (also auch Ubuntu) anwendbar sein.

Zu diesem Zweck habe ich mir einen Raspberry Pi und einen TUL (TPUART USB light von busware.de) besorgt. Der TPUART ist ein Baustein, der die Verbindung zwischen dem EIB und einer seriellen Schnittstelle herstellt. In dem USB TUL ist dem TPUART ein Microcontroller vorgeschaltet, der eine Wandlung von USB nach seriell vornimmt.

Vorbereitung

Der TUL wird ohne Firmware ausgeliefert und muss entsprechend vor der ersten Benutzung programmiert werden. Dies kann direkt über den Raspberry Pi geschehen:

sudo apt-get install dfu-programmer
 wget -O TPUARTtransparent.hex http://busware.de/tiki-download_file.php?fileId=54
 sudo dfu-programmer atmega32u4 erase
 sudo dfu-programmer atmega32u4 flash TPUARTtransparent.hex
 sudo dfu-programmer atmega32u4 reset
 sudo reboot

Der Raspberry Pi wird wie in Installation / Setup beschrieben vorbereitet.

Info green.pngDie Konfiguationen und Beispiele verwenden das Modul EIB! Dieses Modul ist seit 2018 deprecated, wird nicht mehr als Modul verteilt und wird nicht mehr gewartet. Beispiele für KNX sind auf der Seite KNX Device Definition - Beispiele zu finden.


Den TUL kann man wohl per eibd oder direkt einbinden. Die direkte Einbindung erfolgt über ein

define EIB TUL tul:/dev/ttyACM0@57600 1.1.255

in der fhem.cfg. Der letzte Parameter ist die EIB-Adresse, unter der sich der TUL einbucht. Somit muss es eine freie Adresse sein.

In diesem Fall ist die Adresse in der Punkt-Notation angegeben. FHEM versteht diese Notation, verwendet aber meist folgende "Schreibweise":

abcc

wobei a und b hexadezimale Werte von 0-f und cc hexadezimale Werte von 0-255 annehmen können. Dies entspricht dann der Adresse

a.b.cc

Weitere Informationen sind in der commandref/KNX dokumentiert.

Inbetriebnahme

FHEM auf dem RaspberryPi sollte jetzt schon im eigenen Intranet unter [http://raspberrypi:8083/ erreichbar sein. Durch die autocreate Funktion kennt das System unter Umständen auch schon einige Geräte.

Lampen

Werden nun alle Lichtschalter einmal betätigt, kennt das System bereits die Adressen der im EIB eingebundenen Lampen. Diese sind die einfachsten Geräte in FHEM - sie lassen sich sofort über das Webinterface steuern. Über das Attribut "room" können die Lampen den verschiedenen Räumen zugeordnet werden, wobei das Interface nur ein Dropdown mit den schon "definierten" Räumen anbietet.

Neue Räume können aber einfach durch Eingabe des Befehls

attr <gerätename> room <neuerRaum>

in das Eingabefeld erzeugt werden (mit der Eingabetaste bestätigen, nicht mit dem "Save" Button).

Nach dieser Eingabe taucht der neue Raum auch im entsprechenden Dropdown auf.

Den kryptischen Namen der Lampe ändert man auf gleichem Weg über die Eingabe von

rename EIB_abcd wohnzimmer.deckenleuchte

Hierbei gilt zu beachten, dass die Namen aller Objekte in FHEM eindeutig sein müssen. Eine Bezeichnung "deckenleuchte" wird es für mehrere Räume geben und reicht somit nicht aus.

Temperatursensoren

Definiert werden die Sensoren zunächst wie die Lampen. Damit das System allerdings weiss, dass sie als Temperatur angezeigt werden sollen, muss noch ein

attr <name temp sensor> model tempsensor

gesetzt werden. Für Heizungsventile gilt das gleiche, nur dass man dem System hier sagen muss, dass es sich um einen Prozent-Wert handelt. Je nach Information entweder

attr <name ventil> model percent

oder

attr <name ventil> model percent255 (noch nicht von mir getestet)

Um zu verhindern, dass FHEM für diese Sensoren Schaltflächen anzeigt, kann man

attr <name sensor> dummy 1

setzen. Achtung: sollte für dieses Element schon ein webCmd-Attribut gesetzt sein, werden die Schaltflächen nicht deaktiviert.

Ergänzung: Seit neuestem müssen die Datenmodelle gemäß KNX-Datenpunkttypen-Listen gesetzt werden!

Zudem funktioniert die Zuweisung über das Attribut "model" nicht mehr. Es ist direkt in der Definiton einzuarbeiten. Damit ergibt sich z.B.

define <name temp sensor> KNX 0/1/1:dpt5.001

wobei :dpt5.001 anstatt model percent verwendet wird.

Die mögliche Datenpunktliste findet sich in der FHEM referenz. Was der Sensor liefert ist in der Beschreibung des Sensors bzw. bei konfigurationsabhängigen Werten aus der ETS abzulesen.

In der FHEM Wiki ist diese Änderung noch nicht in allen KNX-Artikeln nachgezogen worden.

Tipps

Die FHEM Kommandos unterstützen reguläre Ausdrücke. Sind beispielsweise viele Temperatursensoren mit dem Namen "ist.<raum>" angelegt und es soll dafür nun das attribut "dummy" gesetzt werden, kann das mit

attr ist.* dummy 1

vereinfacht werden.