KNiXuino – Teil 2

Was soll KNiXuino genau sein und können. Hier wird’s konkreter.

Nachdem KNiXuino ein enorm umfangreiches Projekt ist habe ich mich entschlossen das KNiXuino Projekt auf eine eigene Homepage auszulagern.
www.knixuino.com

Nach einigen Planungen und ersten Testschaltungen hier in wenigen Worten, was KNiXuino kann und sein soll. Nachdem ich selber erst in einer frühen Prototypphase bin, kann ich noch nicht sagen, ob das alles so realisiert werden kann oder sich verschiedene Dinge ändern.

KNiXuino – Was ist das

Der KNiXuino ist ein Arduino mit KNX Anbindung über den SIM-KNX von Tapko. Durch die Verwendung das SIM-KNX hat man ein perfekt laufendes KNX Protokoll. Der SIM-KNX soll sowohl über ETS, als auch über den Arduino konfiguriert werden können. Prinzipiell ist es also möglich ein bestehendes KNX System zu erweitern, ohne eine ETS zu haben.

Der Arduino soll nach Bedarf programmiert werden. Dazu möchte ich einige Arduino Librarys herstellen, mit denen die Programmierung auch jeder Laie durchführen kann. Der Arduino wird also ganz konkret für den jeweiligen Einsatzzweck programmiert und optimiert.

Am Ende hat man also einen keinen „Computer“, der auf alles im KNX-System reagieren kann. Dies ermöglicht unendliche Einsatzgebiete.

Weitere Arduino Fähigkeiten können natürlich auch „drangebastelt“ werden. Auf jeden Fall möchte ich das Ethernet Shield für den Arduino verwenden und so einfachen Webzugriff ermöglichen. Wer Arduino kennt, weiss aber, dass es unendlich viele Anwendungen gibt. Das SIM-KNX bietet bereits eine galvanische Trennung. Somit kann man den Arduino nützen und erweitern wie man will und gefährdet nicht sein KNX System (SELV).

Was ist Arduino

Arduino UNO
Arduino UNO
Eine Einführung zu Arduino zu geben würde hier den Rahmen sprengen. Es gibt auch wirklich gute Tutorials online mit denen jeder Laie schnell den Einstieg in die Mikroprozessorprogrammierung mit Arduino schafft. Eine unglaublich spannende Welt. Es lohnt sich. Nicht nur wenn man einen KNiXuino bauen möchte. Ein guter Anfang ist die arduino Website. Wer Arduino nicht kennt sollte vielleicht die ersten Beispiele durchgehen um eine Vorstellung zu bekommen wie Arduino arbeitet. Es wird in C++ programmiert. Sollte man gar keine Ahnung von Programmieren haben, so müsste man es trotzdem schaffen die von mir zur Verfügung gestellten Files an sein System anzupassen. Ich werde entsprechend kommentieren und dokumentieren. Es muss aber eine Arduino Entwicklungsumgebung installiert sein und Programme (so genannte Sketches) müssen auf den Arduino upgeloaded werden können.

mein Arduino

Als ersten Testarduino verwende ich einen Arduino MEGA. Der Vorteil des Arduino MEGA liegt darin, dass er standardmäßig 4 serielle Ports bietet und richtig Power und Speicher hat. Arduino und SIM-KNX werden über ein serielles ACII Protokoll miteinander reden. Beim Mega bleibt somit trotzdem der serielle Standardport frei, über den ja der Arduino per USB mit dem Computer verbunden ist. Über diesen kann man Werte ausgeben usw.
Es gibt eine Erweiterung mit der man jeden digitalen Arduino Pin als serielle Schnittstelle verwenden kann. Anscheinend ist diese auch sehr stabil und performant. Ich werde trotzdem mal alles am MEGA entwickeln und erst am Schluss schauen, welcher Arduino für welchen Bedarf ausreichend ist.

SIM KNX

Das SIM-KNX gibt es in 2 Ausführungen. Eines mit 128 ETS Objekten, eines mit 265. Für mich reicht erst mal das kleinere leicht aus. Das SIM-KNX ist über die Firma Opternus zu beziehen. Prinzipiell verkauft Opternus nur an Wiederverkäufer. Sollte jemand Interesse haben kann ich aber ohne Mehrpreis eines bestellen.

Schaltung

Erste Aufgabe war das Verschalten von Arduino und SIM-KNX. Glücklicherweise ist das wirklich keine Hexerei, so dass es jeder Laie (wie auch ich) nachbauen kann. Die Schaltung ist nämlich erfreulich einfach und praktisch ohne Bauteile zu bewerkstelligen. Ich stecke vorerst alles auf einem Breadboard zusammen. Wie die endgültige Variante aussieht weiss ich jetzt noch nicht genau, aber natürlich möchte ich mal eine eigene Platine bauen, wo das alles ordentlich zusammengesteckt ist und hält.

Die Pins 1 & 4 werden direkt mit dem KNX Bus verbunden. Pins 2 & 3 kann man auch bleiben lassen. Man muss später nur einmalig Pin 1 & 2 kurzschliessen um das Gerät in den KNX Programmiermodus zu versetzen, damit die physikalische KNX Adresse programmiert wird. Das kann man aber einfach mit einem Kabel machen. Danach braucht man den Taster eigentlich nicht mehr. Weiters besteht die Möglichkeit den SIM-KNX auch über den Arduino in den Programmiermodus zu setzen. Pin 3 betreibt lediglich eine LED, die anzeigt, dass das Gerät im Programmiermodus ist. Also auch verzichtbar.

Auf der anderen Seite wird der Arduino angehängt. Pin 5 an den 3,3V Ausgang des Arduino (wahlweise auch 5V). Pin 8 an GND (egal welcher), Pin 6 an einem Rx Eingang (ich verwende Pin 19 RX1), Pin 7 am entsprechenden Tx (Pin 18 TX1).

Schaltplan KNiXunio V0.1
Schaltplan KNiXunio V0.1

Das wars auch schon. So verkabelt steht nichts mehr im Wege einen passenden Arduino Sketch zu entwerfen und hochzuladen.

KNiXuino Prototyp 0.1
mein erster Versuch

  1. Thorsten Gehrig

    Hi
    hast du ein „dokumentiertes“ ektch für Arduino und SimKNX?
    Ich bin gerade am suchen/basteln einer Arduino->KNX Anbindung – und das SimKNX hat mich auch schon interessiert… Jedoch finde ich ich die Doku NICHT so toll – zumindest das was ich auf der Webseite finde. Die ETS Datenbank dazu habe ich noch nicht anschauen können… Wäre aber über jedes Beispiel dankbar.

    Gruß
    Thorsten

    Antworten
    1. comment by losmuchachos
      admin

      Servus Thorsten,

      ich war wohl etwas voreilig mit den ersten beiden Beiträgen zu KNiXuino, weil ich die Programmierung noch mal grundlegend umgebaut hab. Jetzt wird es wohl noch ein wenig dauern, bis ich eine Version veröffentlichen kann. Es sieht aber gut aus. Ich kann problemlos schalten und Werte empfangen. Ich hab eine Anwesenheitssimulation, kann zeitversetzte Befehlsfolgen ausführen, kann dimmen, oder auch einen Lichtstatus für mehrere Lichter zur Verfügung stellen. (Damit der „Alle Lichter aus“ Schalter den Status korrekt anzeigt.

      Bin bis jetzt recht zufrieden. Nächste Ziele sind eine Webanbindung. Prinzipiell hab ich die, der Arduino muss man aber ehrlich sagen ist wenig geeignet um schöne Weboberflächen etc. darzustellen. Jetzt überlege ich, ob die Webvariante dann doch ein späteres Projekt wird für die Raspberry Pi.

      Ich bitte um Verständnis, dass ich keine halbfertigen Codeschnipsel veröffentliche, weil sich sicher noch einiges ändern wird. Hast du schon die Hardware?

      Antworten
  2. Frank

    Hallo,

    sehr interessantes Projekt. Ich bin auf Deine ersten Ergebnisse sehr gespannt.

    Viele Grüße
    Frank

    Antworten
  3. Ado

    warum realisierst du nicht das Projekt komplett mit Raspberry Pi

    Antworten
    1. comment by losmuchachos
      admin

      Hi ado,
      völlig berechtigte frage. einfache Antwort ich hab ein paar arduinos aber keine raspberry. ich kenne mich mit arduino ein wenig aus, aber gar nicht mit raspberry. nachdem bei solchen dingen zeit ein absolut limitierender Faktor ist, spielt es sehr wohl eine rolle, ob man sich in den raspberry einarbeiten muss oder nicht. Ich hab aber schon darüber nachgedacht mich gleich über den raspberry herzumachen. Im Prinzip spricht aber nicht so viel dafür. Arduino hat (wenigstens der Mega) genug Power für Webanbindung und alles was mir bis jetzt so eingefallen ist. Raspberry hat da eigentlich keinen Vorteil. Arduino braucht weniger Strom, Arduino ist in verschiedenen Größen verfügbar. Spannender finde ich nämlich eigentlich nicht noch größere Teile, die noch mehr können (das Ding kann alles was ich brauche), sondern Zukunftsvision wären eher kleinere Geräte, die ev. sogar über den Bus mit Strom versorgt werden etc. Das geht mit Raspberry alles nicht. Ich sehe daher beim Arduino interessanteres Potential.

      Antworten
  4. R.L.

    Hallo, ich wollte mal nachfragen ob ich eine vorhandende EIB/KNX Anlage mit einer Arduino nach und nach erstetzen kann, von vorne:
    Ich bin ein normaler Elektriker und habe das Verständnis der Technik bzw kann es erlernen.
    Ich hatte noch nie mit EIB/KNX oder mit Adruino gearbeitet , verstehe zwar jeweils den Hintergrund aber ich habe keine ETS (zu teuer) und kann diese auch nicht programmieren.
    Ich möchte eine vorhandene knx bus Leitung in der Zentrale auslesen (Schalterzustände) und diese an einer Adruino auslesen und dort neue Aktoren (Relais) schalten um die alten aussterben zu lassen(Kostensache), nach und nach sollen bis auf die knx Schalter in den Wänden alle eib/knx Bauteile verschwinden.

    Meine Frage ist das ohne ETS möglich? Ich bin wie gesagt Anfänger.

    Ich würde mich sehr freuen von Ihnen zu hören….lg
    RL

    Antworten
    1. comment by losmuchachos
      el muchacho

      Hallo !
      Klingt nach einem gröberen Vorhaben. Ich bin der Meinung der Arduino sollte KNX nicht ersetzen. Den Knixuino kann man verwenden um echt lustig Spielereien zu realisieren bzw. auch Geräte zu bauen, die man so gar nicht für KNX bekommt. Ich würde aber kein KNX System für ein Haus durch Knixuino ersetzen. Das ist dafür überhaupt nicht geeignet.

      Wenn du ein KNX System hast, ist es sicher besser du holst dir die gratis Demoversion der ETS. Wenn du zu viele Geräte hast, dann kannst du immer noch mehrere Häuser anlegen und die Geräte aufteilen. Ist dann aber einiges an Administartionarbeit um immer die Gruppenadressen etc. in beiden Häusern parallel zu halten.

      Knixuino funktioniert auch ohne ETS. Ein ganzes KNX System ohne ETS aufbauen ist aber nicht sinnvoll.

      KNX Autoren sind natürlich etwas teurer, da einen Arduino dran zu hängen und über Relais zu schalten geht natürlich. Ob das dafür steht ???

      http://www.losmuchachos.at/installation/knx/ets-4-light-gratis/

      lg

      Antworten
  5. Harry

    Hallo El Muchacho,

    zunächst vielen Dank für deine Berichte. Habe schon viel Zeit damit verbracht … 🙂

    Ich bin dabei mein Haus mit KNX auszustatten und verfolge seit Jahren die Entwicklung der einzelnen KNX-Steuerungen. HomeServer & Co sind für mich keine Lösung sondern eher ein schlanker Server als Integrationsplattform. Daher finde ich deinen Arduino-Ansatz spannend.

    Ich wollte Dich fragen warum du alles selber programmieren willst? Mein Favorit für einen felxiblen HomeServer ist OpenHAB. Hat eine saubere technologische Basis (Java) und viele Schnittstellen zur Integraition diverser Systeme im Haus. Klar, KNX ist auch dabei.

    Sorry, wenn ich nachfrage aber deine Motivation würde mich sehr interessieren.

    LG CrazyHarry

    Antworten

Schreibe einen Kommentar zu el muchacho Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert