Integration einer Garagentorsteuerung in OpenHAB mittels Tinkerforge

Während des ZIM talks über Home automation und Datenvisualisierung wies Th. Eichstädt-Engelen vom OpenHAB-Projekt auf die mittlerweile gute Unterstützung seitens OpenHAB für die Module von Tinkerforge hin.

Inspiriert von seiner Anmerkung und durch diesen Beitrag wird im Folgenden exemplarisch dargestellt, wie eine Umsetzung in OpenHAB möglich ist. Als Anwendungsbeispiel dient eine Handfernsteuerung für ein Garagentor, welche durch Tinkerforge Module physikalisch integriert und letztlich über den Bus von OpenHAB angesprochen werden soll.

Hands-on

Folgende Utensilien werden dafür benötigt:

  1. Eine bereits gepaarte Garagentorsteuerung (möglichst ein Zweitgerät, ohne Garantie). Dieses Gerät muss im Wesentlichen über einen Schalter verfügen.
  2. Tinkerforge Master Brick,
  3. Tinkerforge Industrial Quad Relay Bricklet,
  4. 2 Kabel und
  5. ein Lötkolben.

Zunächst sind auf der Platine der Fernbedienung am Schalter die beiden aktiven Anschlüsse zu identifizieren. Dies lässt sich leicht feststellen, indem man sie probeweise mit einem Kabel überbrückt. An die beiden so identifizierten Anschlüsse des Schalters wird dann je ein Kabel gelötet. (Achtung: Dies geschieht auf eigene Verantwortung! Hierdurch kann schlimmstenfalls die Fernbedienung unbrauchbar werden!) Die Enden dieser beiden Kabel werden dann einem der vier Schaltrelais auf dem Industrial Quad Relay Bricklet zugeführt (im Bild sind dies das rote und das grüne Kabel im ersten bzw. im der Kamera zugewandten Relais).

tinkerforge_setupBild: Industrial Quad Relay Bricklet, Master Brick und die Platine einer vorhandenen Fernsteuerungen

Das Industrial Quad Relay Bricklet wird am Master Brick befestigt und letzterer mittels USB angeschlossen, nämlich an den Rechner, auf dem der so genannte “Brick Daemon” laufen muss.

Software – Brick Viewer und Brick Daemon

Zur Umsetzung ist neben OpenHAB auch Software von der Tinkerforge-Website notwendig. Zunächst wird mit dem Tinkerforge Brick Viewer die ID des Industrial Quad Relay Bricklets ausgelesen und notiert, z.B.: ifd. Diese ID wird später für die Konfiguration von OpenHAB benötigt.

Danach wird auf einem von OpenHAB erreichbaren Server der Brick Daemon installiert. Dies kann natürlich auch derselbe Server sein, auf dem OpenHAB läuft.

Konfiguration in OpenHAB

In OpenHAB wird nun zunächst die Tinkerforge Binding so konfiguriert, dass der Brick Dämon per IP auf dessen Standard-Port erreicht werden kann:

####### Tinkerforge Binding #######
tinkerforge:hosts=127.0.0.1

Listing openhab.cfg (Auszug)

Jetzt sind zwei Items zu definieren. Das erste Item (hier: QR1) repräsentiert das physikalische Tinkerforge Relais, das zweite Item Garage wird benötigt um den physikalischen Druckschalter einer Fernbedienung über den Touchscreen eines Smartphones zu simulieren. In OpenHAB wollen wir für die Nutzung von Touchscreens nur ein “button pressed” Event auswerten, nicht aber zusätzlich ein “button released” Event. Also wird beim Antippen des Switch-Items Garage das Relais über das Switch-Item QR1 aktiviert und nach 1,5 Sekunden – über eine Zeitverzögerung gesteuert – wieder unterbrochen. Die subid referenziert das benutzte Relais; hier ist es der erste von insgesamt vier Stück, also relay0.

/* Garage */
Switch QR1    "QR1" {tinkerforge="uid=ifd, subid=relay0"}
Switch Garage "Garage" <garagedoor>

Listing Items (Auszug)

Zur Realisierung der Aktivierung und zeitverzögerten Deaktivierung des Schalters wird noch eine Regel hinzugefügt.

rule "Garage"
when
Item Garage received command
then
QR1.sendCommand(ON)
Thread::sleep(1500)
QR1.sendCommand(OFF)
// Sure it is off? Wait...
Thread::sleep(1500)
// ...and send again...
QR1.sendCommand(OFF)
end

Listing Rules (Auszug)

Schließlich wird die interaktive Schaltfläche als Button Element in die Sitemap eingefügt.

 Switch item=Garage mappings=[ON="Door"]

Listing Sitemap (Auszug)

Für Näheres sei auf die OpenHAB-Binding-Doku zu Tinkerforge verwiesen.

Im Ergebnis zeigt das OpenHAB UI dann einen interaktiven Button, bei dessen Druck die Handfernbedienung 1,5 Sekunden lang über das Relais geschaltet wird.

tinkerforge_openhab_ui

Bild: OpenHAB UI (hier mit Button für eine Garagentorsteuerung)

Fazit

Das hier beschriebene Vorgehen ist rein experimenteller Natur und empfiehlt sich nur sehr bedingt zur Nachahmung. Eine derartige Modifikation einer Fernbedienung führt sehr wahrscheinlich zum Verlust des Garantieanspruchs! Außerdem kann eine Fernbedienung grundsätzlich beim Löten beschädigt werden. Eine derartige Schaltung (hier: Relais) kann natürlich auch über viele andere Mechanismen und dann ggf. preiswerter realisiert werden, z.B. über den GPIO-Port eines Raspberry Pi oder über Schaltkreise hinter einer seriellen Schnittstelle. Als Einstieg in die Ergänzung von OpenHAB um Tinkerforge ist eine solche Schaltung aber gut geeignet, da man sehr schnell zu Ergebnissen gelangt.

Dieser Beitrag wurde unter Code & Kernel, Tipps & Tricks abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Die Kommentarfunktion ist geschlossen.