Aus diesem Grund habe ich mich für ein Bus System in meinem Haus entschieden.
Hier ein Bild meiner zukünftigen Visu (lauffähig im jedem Browser und auch als selbstgeschriebenes Android App).
Die nicht Technik interessierten können das Lesen hier abbrechen.
Konkret entschieden habe ich mich für KNX aus folgenden Gründen:
- kein Single point of failure wie bei SPS Lösungen ala Loxone, abgesehen von der Stromversorgung
- Verfügbarkeit von sehr vielen Herstellern
- Open Source Implementierungen verfügbar, zum Beispiel das bcu-sdk
Als kompletter Anfänger in dem Bereich musste ich mich sehr viel einlesen. Aber als ehemaliger Softwareentwickler mit Erfahrung in der Industrieautomatisierung tat ich mich relativ leicht. Nach kurzer Zeit hatte ich mir alle Geräte rausgesucht, die ich so brauche und einen Teil davon über www.voltus.de bestellt.
Mein Testaufbau sieht so aus:
Wie man erkennen kann, ist dabei folgendes integriert:
- Stromversorgung
- 20fach Schaltaktor
- 4fach Rolloaktor
- 6fach Heizungsaktor
- USB Schnittstelle
- IP Schnittstelle
- EIB-PC
- 1 Gira Smartsensor
- 4 herkömmliche Schalter/Taster über eine Tasterschnittstelle angeschlossen
- 2 Glühbirnen
- Raspberry Pi
Das Testsystem ist bereits komplett konfiguriert. Wenn man nicht gerade IT Anfänger ist und ein bißchen etwas von Automatisierung versteht, ist das auch nicht wirklich schwer.
Neben den normalen Tastern kann man die Glühbirnen auch per Weboberfläche steuern. Die Heizungsregelung werde ich nur per Browser einstellbar machen, so oft wird man die Solltemperatur nicht ändern müssen.
Nun, was man dazu braucht, darauf möchte ich gerne eingehen:
- Ein Linux PC oder eben auch einen Raspberry Pi
- eibd (Teil des bcu-sdk http://www.auto.tuwien.ac.at/~mkoegler/index.php/bcusdk)
- linknx (http://linknx.sourceforge.net/)
- smartvisu (https://code.google.com/p/smartvisu/)
Da nicht gleich alles von Beginn weg gelaufen ist hier noch eine Anleitung, auch für mich als Gedächtnisstütze:
- Für den Pi habe ich mir das Image von smarthome.py und smartVISU geladen und installiert, zu bekommen unter https://github.com/mknx/smarthome/wiki/SmartHome.pi
- Verwendet man die IP Schnittstelle zur Kommunikation, kann man den installierten eibd verwenden, nimmt man aber eine USB Schnittstelle muss man selbst Hand anlegen und zwar wie folgt:
- ausführen von "apt-get install patch automake autoconf unzip libtool pkg-config" auf der shell des Pis
- erstellen eines Verzeichnisses /usr/local/src/bcusdk
- Download des cEMI Patches von hier und kopieren nach /usr/local/src/bcusdk, wenn man eine cEMI USB Schnittstelle verwendet (zB MDT KNX USB Interface)
- Download des USB Patches von hier und kopieren nach /usr/local/src/bcusdk
- ausführen der folgenden Kommandos:
export LD_LIBRARY_PATH=/usr/local/lib
cd /usr/local/src/
wget https://www.auto.tuwien.ac.at/~mkoegler/pth/pthsem_2.0.8.tar.gz
tar xvfz pthsem_2.0.8.tar.gz
cd pthsem-2.0.8
./configure
make
make install
cd ..
git clone git://bcusdk.git.sourceforge.net/gitroot/bcusdk/bcusdk
cd bcusdk/
patch -p1 < bcusdk-usb-cemi.patch
patch -p3 < read-within-callback.patch
autoreconf -fi
./configure --with-pth=yes --without-pth-test --enable-onlyeibd --enable-eibnetip --enable-eibnetiptunnel --enable-eibnetipserver --enable-usb
make
make install
cp /usr/local/bin/eibd /usr/bin/
- unter "/etc/default/eibd" muss dann noch EIB_IF angepasst werden, bei mir sieht das so aus: "EIB_IF="usb:1:4:1:0:0""
- Den richtigen Eintrag findet man mit dem Kommando "findknxusb" heraus.
- erstellen eines Files /etc/udev/rules.d/70-persistent-eib.rules mit folgendem Inhalt, damit eibd nicht als root laufen muss:
# MDT Technologies GmbH: KNX-USB Interface (REG)
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTR{idVendor}=="16d0", ATTR{idProduct}=="0491",GROUP="root",MODE="0666"
- nach einem Neustart wird dann der "neue" eibd verwendet.
- Wenn man den Android Standardbrowser verwenden möchte, dann kann man leider nicht smarthome.py als Backend für die Visu nehmen, da dabei WebSockets verwendet werden und der Android-Standard-Browser kann dies leider nicht. Deswegen habe ich mich für LinKNX als Backend entschieden. smartVISU liefert dafür auch einen Treiber mit. Installation auf dem Pi:
- Download der Sourcen vom Link oben
- Die genauen commands habe ich leider nicht mehr, aber soweit ich mich erinnere: entpacken, "./configure", "make", "make install"
- Konfigurieren mittels XML-File
- Aufruf als Daemon mittels "linknx -c/usr/local/linknx/linknx.xml -d"
- Konfiguration in smartVISU abschließen und dann sollte die Kommunikation laufen
- Anschließend muss man sich nur mehr die gewünschten Webseitenelemente für smartVISU zusammenstellen, hier ist etwas HTML Kenntnis von Vorteil
Zusammenfassend bin ich mit dem Ergebnis mehr als zufrieden. Die USB Schnittstelle braucht man zum Programmieren sowieso und mit dem Pi hat man um 35$ einen komplette und ziemlich gut aussehende Visu.
Was bleibt jetzt noch?
- heraussuchen und bestellen der restlichen KNX-Komponenten, aber natürlich auch normale Dinge wie Steckdosen
- Umsiedelung der Komponenten in den Neubau und programmieren der Geräte
- Vervollständigen der Visu
- Android Tablet besorgen und an die Wand hängen
- mit dem EIB-PC von Enertex (http://www.enertex.de/d-eibpc.html) muss ich mich noch beschäftigen, was der kann weiß ich gar noch nicht
- Fertigstellung meines privat entwickelten WinCC OA Treibers für eibd
Auf jeden Fall freue ich mich bereits darauf, wenn alles fertig ist und läuft. Aktuell schauts ziemlich gut aus.
lg,
Andreas