Donnerstag, 16. Mai 2013

Spaßprojekt Hausvisualisierung

Wer mich kennt weiß, dass ich als IT Fan so vieles wie möglich rechnergesteuert erledigen will.

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).

Diese Visu wird auch auf einem Tablet bei mir an einer Wand dargestellt. Grundsätzliches Schalten von, zum Beispiel, Lichter kann aber nach wie vor über bessere "normale" Schalter erfolgen.

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:



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

3 Kommentare:

  1. Hallo Andreas,
    hab soeben deinen interessanten Beitrag bzgl. KNX gelesen. Nachdem ich derzeit ebenfalls mit der Planung für unser zukünftiges Haus beschäftigt bin wäre ich an ein paar weiteren Infos interessiert.
    - welche Lernquellen hast du verwendet (kannst du ein Buch/Webpage empfehlen)?
    - ich überlege ebenfalls wegen einer kleinen Testinstallation zum herumspielen - was haben diese Teile zusammen ca. gekostet?
    - warum braucht man eine USB Schnittstelle wenn man eine IP Schnittstelle hat bzw. wofür einen EIB PC bzw. Raspberry (braucht man da nicht dann nur einen davon)?

    Leider ist auf deinem Blog kein Kontaktformular, drum schreib ich das hier als Kommentar. ;-)
    Danke und Liebe Grüße aus Wien,
    Wolfgang

    AntwortenLöschen
  2. Hallo Wolfgang,

    Danke für die Anfrage. Erstmal Glückwunsch zur Entscheidung in Richtung KNX/EIB. Wenn man sowas mal hat, kann man sichs gar nicht mehr anders vorstellen.

    Hm, Lernquellen, also grundsätzlich nahm ich schon sehr viele Kenntnisse über Haussteuerungen oder SPSen aus meinem Beruf mit. Hab auch selbst schon an Treiber für S7, Modbus TCP oder auch IEC 60870-5-101/104 mitgearbeitet. Deswegen fiel mir das Einarbeiten in KNX recht leicht.

    Als Quellen kann ich empfehlen:
    http://www.eib-home.de/software/vergleich_eib-und_konventionelle_installation_engfeld.pdf
    http://www.eib-home.de/instabus_eib_infos.htm
    http://knx-user-forum.de/

    Meine erste Bestellung hat ca. 4800 EUR gekostet. Da war aber auch schon wesentlich mehr dabei, als auf dem Bild oben zu sehen, zB 2 zusätzliche 20fach Schaltaktoren oder auch Außen- und Innenbewegungsmelder.

    Ich habe über Voltus.de bestellt. Die sind super nett. Wenn du mal Fragen hast, ob etwas wirklich auch zusammen passt, dann helfen sie dir auch beim Check, ob du nichts vergessen hast. Ist mir so bei den Schaltern und Steckdosen für den Außenbereich gegangen. Ich habe eigentlich meine ganze E-Installation von dort bestellt.

    Wegen USB/IP, das war bei mir der Forschungsgedanke :-) Grundsätzlich ist mir USB lieber, da ich dann als einzigen Zugriffspunkt zum Bus den Pi hätte. Also aus Sicherheitsgründen. Aktuell verwende ich allerdings noch die IP Schnittstelle. Im wesentlichen aus historischen Gründen. So konnte ich nämlich mit dem Pi in meinem alten Haus schon auf den Bus im neuen Haus per VPN zugreifen.

    Wegen dem EibPC. Ich bin damit überhaupt nicht zurecht gekommen. Ich fand es mit dem Pi viel einfacher schnell zu einer Visu (mit smartVisu) zu kommen. Zusätzlich hat man mit linknx oder smarthome.py zwei tolle Backends mit denen man ganz einfach auch Logiken bauen kann (das ist aber optional).

    Kannst mich auch gerne anmailen ( andreas at gruber.info ). Antworten dauern leider manchmal länger, wenn ich beruflich im Stress bin :-)

    lg,
    Andreas

    AntwortenLöschen
    Antworten
    1. Der Standard Android Browser geht doch hervorragend mit sh.py und smartvisu. Jedenfalls alles, was so in Versionen 4.x drin ist.
      Ich migriere gerade von linknx zu sh.py und würde nicht mehr mit linknx anfangen wollen. Gruß

      Löschen