EIB / KNX: Unterschied zwischen den Versionen
Geoker (Diskussion | Beiträge) |
Krikan (Diskussion | Beiträge) (FHEM(R)) |
||
Zeile 1: | Zeile 1: | ||
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. | '''Hinweis''': Obwohl hier explizit ein Raspberry Pi verwendet wird, sollte die Ableitung für jedes Debian-basierte System (also auch Ubuntu) anwendbar sein. | ||
Zeile 20: | Zeile 20: | ||
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 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. | In diesem Fall ist die Adresse in der Punkt-Notation angegeben. FHEM versteht diese Notation, verwendet aber meist folgende "Schreibweise": | ||
:<code>abcc</code> | :<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 | wobei a und b hexadezimale Werte von 0-f und cc hexadezimale Werte von 0-255 annehmen können. Dies entspricht dann der Adresse | ||
Zeile 28: | Zeile 28: | ||
== Inbetriebnahme == | == Inbetriebnahme == | ||
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 === | ||
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 | 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 | Neue Räume können aber einfach durch Eingabe des Befehls | ||
Zeile 42: | Zeile 42: | ||
:<code>rename EIB_abcd wohnzimmer.deckenleuchte</code> | :<code>rename EIB_abcd wohnzimmer.deckenleuchte</code> | ||
Hierbei gilt zu beachten, dass die Namen aller Objekte in | 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 === | === Temperatursensoren === | ||
Zeile 51: | Zeile 51: | ||
oder | oder | ||
:<code>attr <name ventil> model percent255</code> (noch nicht von mir getestet) | :<code>attr <name ventil> model percent255</code> (noch nicht von mir getestet) | ||
Um zu verhindern, dass | Um zu verhindern, dass FHEM für diese Sensoren Schaltflächen anzeigt, kann man | ||
:<code>attr <name sensor> dummy 1</code> | :<code>attr <name sensor> dummy 1</code> | ||
setzen. Achtung: sollte für dieses Element schon ein webCmd-Attribut gesetzt sein, werden die Schaltflächen '''nicht''' deaktiviert. | setzen. Achtung: sollte für dieses Element schon ein webCmd-Attribut gesetzt sein, werden die Schaltflächen '''nicht''' deaktiviert. | ||
Zeile 71: | Zeile 71: | ||
=== Tipps === | === Tipps === | ||
Die | 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 | ||
:<code>attr ist.* dummy 1</code> | :<code>attr ist.* dummy 1</code> | ||
vereinfacht werden. | vereinfacht werden. |
Version vom 24. Januar 2017, 15:02 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.
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 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.