Smarter Smart Homes Ihr verlässlicher Partner für Loxone, KNX und intelligente Gebäude

Low Cost Fenster- und Türsensoren für KNX (bis 15 Sensoren)

05.10.2019 Achtung: Nachdem meine Lieferung mit den Sensoren für das Haus angekommen sind bin ich über ein Problem mit den Tasmota rules gestolpert, welche diese Lösung auf 15 Geräte beschränkt. Es gibt demnächst eine alternative Lösung über MQTT, Loxberry und Loxone.

Auf der Suche nach einer Alternative zu den etablierten Sensoren für KNX habe ich eine interessante Lösung entwickelt welche sogar über Funk funktioniert. Diese Lösung ist mit 4-9€ pro Sensor und 20€ für die Bridge sehr kostengünstig und funktioniert bis jetzt sehr zuverlässig. Nach dem derzeitigen Stand werde ich unser Haus nächstes Jahr damit ausstatten und weitere Sensortypen werden folgen.

Voraussetzungen

Wie immer braucht man einige Abhängigkeiten, bei mir sind diese aber ohnehin bis auf die Bridge sowie die Sensoren vorhanden gewesen. Wer technisch versiert ist kann sicherlich auch andere Produkte nutzen, die Logik und das Vorgehen ist hier das eigentlich Innovative. Im Detail benötigt man:

In Klammern habe ich euch die von mir eingesetzten Produkte als Kauflink angegeben.

Dinge die ich voraussetze:

  • Wie KNX over IP (KNXoIP) funktioniert
  • Eine vorhandene und funktionierende KNX Topologie
  • Ein funktionierendes Netzwerk
  • Grundlegendes Verständnis von Elektronik und Sicherheitsregeln

Und dann geht es los!

1. Schritt – Bridge KNXoIP fähig machen

Auf die Sonoff RF Bridge muss das Tasmota KNX Image (Link zur Firmware) aufgespielt werden. Hierauf gehe ich nicht gesondert ein, es gibt viele Anleitungen (Link zur Tasmota Seite) wie das funktioniert. Die RF Firmware müsst ihr meiner Meinung nach nicht umflashen, dies kann jedoch für andere Projekte hilfreich sein. Diese spezielle Firmware nennt sich Portisch und kann nach dem Flashen mit Tasmota über das Webinterface eingespielt werden, indem man einfach zwei Lötaugen mit Kabeln verbindet. Hierzu nur ein Tipp: Statt die Leiterbahnen zu durchschneiden versorgt ihr einfach das Modul für den Flashvorgang über den TTL Konverter mit Strom und lasst das USB-Kabel ausgesteckt.

Ergebnis: Sonoff RF Bridge mit Tasmota KNX Firmware und Netzwerkverbindung

Tasmota Webinterface

2. Schritt – KNX Grundkonfiguration

Zunächst ermitteln wir eine freie Geräteadresse, diese kann auch in der Backbone-Linie liegen wenn diese IP als Medium hat, ähnlich einem Gira G1. Notwendig ist jedoch nur, dass sie eindeutig sein muss und der KNX IP Router muss die Telegramme weiterleiten. Solltet ihr automatische Filterlisten nutzen müsst ihr in der ETS einen Dummy anlegen mit der Adresse und die Gruppenadresse(n) den Dummy Objekten zuweisen, anschließend sollte die Filterliste korrekt berechnet werden. Ich für meinen Teil pflege die Liste aber manuell im Router. Anschließend noch eine neue Gruppenadresse mit Datentyp 9.* für die Fensterkontakte in der ETS erstellen, diese dient zunächst nur für die Übertragung zum Logikmodul, die einzelnen Fenster folgen später.

Anschließend findet ihr im Tasmota Webinterface unter Configuration -> Configure KNX die Optionen für KNX. Hier stellt ihr bei Physical Address die Geräteadresse ein, setzt den Haken bei Enable KNX und klickt auf Save. Anschließend ruft ihr erneut Configure KNX auf. Die Adresse sollte nun übernommen sein. Im Block Data to Send to Group Addresses wählt ihr aus dem Drop Down KNX TX 1 aus und gebt dahinter die freie Gruppenadresse an die in der ETS angelegt wurde. Jetzt den Add Button drücken und anschließend auf Save klicken. Beim erneuten öffnen des Configure KNX Dialogs sollte es anschließend ähnlich dem Bild unten aussehen.

Bonuslevel:
Auch wenn es nicht notwendig ist empfehle ich euch noch einige Änderungen an Tasmota. So werden später im Log die richtige Uhrzeit angezeigt und das Modul läuft stabiler.

  1. Unter Configure Other den Haken für MQTT enable entfernen und ein Web Admin Password vergeben und den Haken setzen, anschließend Save.
  2. Zeitzone, NTP-Server und Geokoordinaten setzen. Hierzu muss man auf die Console zurückgreifen, folgenden Befehl eingeben und mit Enter bestätigen: backlog NtpServer time.google.com; timezone 99; latitude 49.xxxxxx ; longitude 12.xxxxxx
    Eure Koordinaten könnt ihr auf https://www.laengengrad-breitengrad.de/ ermitteln. Timezone 99 setzt die Zeitzone und Einstellungen für Sommer- und Winterzeit in Deutschland. NTP-Server könnt ihr auch andere verwenden, Google ist jedoch hochpräzise und sehr zu empfehlen.

3. Schritt – Telegramme der Sensoren auslesen

Nachdem wir für das Bonuslevel ohnehin schon auf der Console sind bleiben wir auch vorerst dort – für alle Verweigerer im Main Menu auf Console klicken. Jetzt habt ihr idealerweise die Funksensoren bei euch, einen Zettel und einen Stift um die Sensoren zu beschriften. Geht folgendermaßen für jeden Sensor vor:

  1. Sensor betriebsbereit machen, also Batterie einlegen und Magnet an die vorgesehen Stelle damit der Sensor im Zustand geschlossen ist.
  2. Console beobachten und merken was die letzte Zeile war.
  3. Magnet vom Sensor entfernen, LED leuchtet dabei kurz auf.
  4. In der Console erscheint eine Zeile die mit Uhrzeit RSL: RESULT = {„RfReceived“ beginnt, aus dieser Zeile notieren wir uns die Kombination hinter „Data“: auf dem Zettel mit Sensor Data öffnen
  5. Magnet wieder an den Sensor, LED leuchtet dabei wieder kurz auf.
  6. In der Console erscheint eine weitere Zeile die mit Uhrzeit RSL: RESULT = {„RfReceived“ beginnt, aus dieser Zeile notieren wir uns wieder die Kombination hinter „Data“: auf dem Zettel mit Sensor Data schließen
  7. Sensornamen auf der Rückseite des Sensors notieren

In der Liste sollten sich keine Werte bei verschiedenen Sensoren überschneiden, falls doch kann man evtl. den Sensor parametrieren um eine andere Kombination zu senden.

4. Schritt – Regeln für Tasmota erstellen

Damit unsere Sensoren jetzt etwas auf den KNX Bus senden müssen wir Regeln schreiben. Tasmota unterstütz aktuell nur 3 Regelsätze, das ist aber nicht schlimm, weil verschiedene Regeln einfach innerhalb eines Regelsatzes verknüpft werden können. Aber erstellt euch zunächst eine Zuordnung indem ihr der Tabelle mit den Data Werten noch zwei Spalten hinzufügt, nämlich „Wert offen“ und „Wert geschlossen“. In diese tragt ihr die Werte ein welche gesendet werden sollen. Ich habe hier das Schema das gerade Zahlen ein Öffnen und ungerade Zahlen ein Schließen anzeigen. Ein Beispiel:

NameData öffnenData schließenWert offenWert geschlossen
Sensor 155ED0A55ED0E1011
Sensor 235DF0A35DF0E1213
Sensor 332AF0A32AF0E1415

Jetzt wo wir also einen Plan haben geht es daran die Regeln zu schreiben, dies geht in einem Texteditor eurer Wahl folgendermaßen:

on rfreceived#Data=Data öffnen do knxtx_val1 Wert offen endon

Also in unserem Fall für Sensor 1 „on rfreceived#Data=55ED0A do knxtx_val1 10 endon„. Das machen wir jetzt für alle Sensoren für den Wert offen und verketten diese einfach hintereinander durch ein Leerzeichen getrennt, also in meinem Beispiel „on rfreceived#Data=55ED0A do knxtx_val1 10 endon on rfreceived#Data=35DF0A do knxtx_val1 12 endon on rfreceived#Data=32AF0A do knxtx_val1 14 endon„. Dies wiederholen wir in einer neuen Zeile nach dem selben Schema für den Fall, dass der Kontakt geschlossen wird.

Nach dieser Schreibarbeit setzen wir nun den ersten Regelsatz im Tasmota, hierzu gehen wir wieder in die Console. Anschließend geben wir „rule1“ gefolgt von unseren Regeln der ersten Zeile ein, also „rule1 on rfreceived#Data=55ED0A do knxtx_val1 10 endon on rfreceived#Data=35DF0A do knxtx_val1 12 endon on rfreceived#Data=32AF0A do knxtx_val1 14 endon„. Anschließend wiederholen wir das jedoch mit „rule2“ und der Zeile die wir für die geschlossenen Sensoren erstellt haben. Bis jetzt passiert nichts, außer das Tasmota die Regeln quittiert hat, wir müssen diese also noch aktivieren. Dies geschieht durch die Eingabe von jeweils „rule1 1“ und „rule2 1“ in der Console.

Anschließend sind die Regeln aktiv und die Sensoren senden bei den Aktionen Werte über KNXoIP, natürlich nur wenn alles richtig konfiguriert ist 😉 In der Console seht ihr aber auch das KNX Telegramme verschickt werden. In der ETS könnt ihr auf dem Busmonitor oder mit Wert lesen auf der Gruppenadresse sehen, ob die Werte der Bridge auch am Bus ankommen.

5. Schritt – Die Logik

Da wir nun die Sensordaten auf dem Bus haben müssen wir etwas aus den Daten machen. Hier gab es bei mir zwei Ziele, 1. Anzeige des Status in der Visualisierung und 2. Aufbereitung für KNX Geräte wie Taster, G1 & Co. Hierzu verwende ich den Loxon Miniserver als eine Art Logikmodul. Dabei bin ich folgendermaßen vorgegangen:

  1. Datenpunkte in Form von KNX Sensoren und Aktoren anlegen.
    1. KNX Sensor einfügen.
    2. Gruppenadresse und Datentyp EIS5 setzen.
    3. Für jedes Fenster / Tür den man im KNX haben will einen Aktor anlegen.
    4. Die Gruppenadressen für die Fenster / Türen in der ETS anlegen und Datentyp 1.* 1-Bit auswählen.
    5. Den Aktoren im Loxone diese Gruppenadressen zuweisen und Datentyp EIS1 wählen.
  2. Neue Seite in Loxone erstellen.
  3. Voraussetzungen schaffen.
    1. KNX Sensor und KNX Aktoren auf Seite ziehen.
    2. Anlegen von Konstanten für die Werte für offen und geschlossen aus der Tabelle von Schritt 4
    3. Konstanten auf Seite ziehen.
  4. Pro Sensor benötigt man:
    1. Zwei „Gleich“-Bausteine
    2. Einen „Impulsschalter (RS)“ mit aktivierten Ramenzeingang und negierten Ausgang
  5. Jetzt beschriften wir die „Gleich“-Bausteine mit den Namen „Sensorname auf“ und „Sensorname zu“.
  6. Die Impulsschalter beschriften wir mit dem Sensornamen, dieser wird später in der Visualisierung anzeigt.
  7. Für die Visualisierung fügen wir einen „Fenster- und Türüberwachung“-Baustein ein.
  8. Jetzt verbinden wir alles!
    1. Den Ausgang des KNX Sensors auf den ersten Eingang aller „Gleich“-Bausteine.
    2. Die Konstanten auf den zweiten Eingang der korrespondieren „Gleich“-Bausteine. Also zum Beispiel Konstante 10 auf Baustein „Sensor 1 auf“.
    3. Den Ausgang der „Gleich“-Bausteine für „auf“ verbinden wir mit dem S-Eingang der zugehörigen Impulsschalter und den „Gleich“-Baustein für „zu“ mit dem R-Eingang der zugehörigen Impulsschalter.
    4. Den Ausgang der Impulsschalter verbinden wir mit den zugehörigen Eingängen der KNX Aktoren.
    5. Den Ausgang jedes Impulsschalters verbinden wir mit dem Iw-Eingang des „Fenster- und Türüberwachung“-Baustein.
  9. Überprüfen wir noch die Zuordnung des „Fenster- und Türüberwachung“-Baustein und den Haken bei Visualisierung Verwenden.
  10. In den Miniserver hochladen.

Geschafft! Jetzt sollten alle Sensoren die Gruppenadresse im KNX setzen und in der Visualisierung angezeigt werden.

Anmerkungen

Natürlich kann man analog diesem Vorgehen auch zwei Sensoren pro Fenster verbauen und so sogar gekippt und geöffnet unterscheiden. Hierfür gibt es im Loxone sogar einen Baustein um diese getrennten Signale zusammenzuführen.

Auch andere Logikmodule und Home Server sollten nach diesem Schema funktionieren, solange die Funktionalität vorhanden ist um die Logik abzubilden.

Was noch kommen wird ist ein Artikel für einen Funk Wassermelder der auch die Sonoff RF Bridge nutzt.

Schlusswort

Ich bedanke mich bei dir und würde mich über einen Kommentar, Anregungen und Unterstützung freuen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

2 Gedanken zu “Low Cost Fenster- und Türsensoren für KNX (bis 15 Sensoren)”