openHAB 5 Shelly Aktor als Garagentoröffner

Shelly 1 Gen3 konfigurieren


Im letzten Artikel habe ich beschrieben, wie man mit openHAB 5 eine einfache Alarmanlage realisieren kann. Hier geht es jetzt darum auch Geräte schalten zu können, die nicht vom Design her bereits für die Hausautomatisierung vorgesehen sind, z.B. Steckdosen oder einfache Leuchten mit Ein- und Ausschalter. Auf der Suche nach geeigneten Aktoren habe ich die Produkte von Shelly entdeckt. Viele der Aktoren sind für die Installation in einer Schalterdose vorgesehen. Ich bestelle zwei unterschiedliche Shelly Aktoren. Einen potentialfreien Schalter Shelly 1 Gen3, der auch zum Schalten von Niederspannung genutzt werden kann, sowie den Shelly 1PM Gen3. Ebenfalls ein Schalter mit zusätzlicher Leistungsmessung.

Shelly 1 Gen3
Shelly 1 Gen3

Shelly 1 Gen3 Rückseite
Shelly 1 Gen3 Rückseite mit dem Reset Taster

Voraussetzungen für die Installation und Einbindung in openHAB:


Der Shelly 1 Gen3 Aktor benötigt eine Betriebsspannung und bietet dafür drei Optionen: Wechselspannung mit 110 bis 240 V, Gleichspannung mit 12 V und Gleichspannung 24 bis 48 V. Ich schließe den Aktor an 230 V an (Klemmen L und N). VORSICHT Lebensgefahr. Auf der Rückseite beginnt eine rote LED an zu blinken. Für die Einrichtung empfehle ich die Shelly App, die für iPhone und Android zur Verfügung steht:

Shelly Smart Control App

Nach der Installation und Start der App muss zuerst ein Account by Shelly angelegt werden. Nach erfolgreicher Registrierung rechts unten auf das Pluszeichen tippen:

Shelly 1 Gen3 konfigurieren Schritt 1

Über Bluetooth ist die Einrichtung schnell und zuverlässig möglich. Die Vorauswahl Bluetooth mit Weiter bestätigen:

Shelly 1 Gen3 konfigurieren Schritt 2

Bluetooth sollte den Aktor sofort finden und anzeigen. Shelly 1 Gen3 antippen:

Shelly 1 Gen3 konfigurieren Schritt 3

Die voreingestellten Optionen Bluetooth deaktivieren und WLAN-AP deaktivieren sollten aus Sicherheitsgründen nicht abgewählt werden. Sollte es zu einem späteren Zeitpunkt Probleme mit dem Shelly geben, kann dieser durch langes Drücken (10 Sekunden) auf den Taster (Rückseite) problemlos auf Werkseinstellungen zurückgesetzt werden.

Shelly 1 Gen3 konfigurieren Schritt 4

Jetzt noch einen Gerätenamen vergeben (in meinem Fall: Garagentor), ein Bild oder eine Farbe auswählen und auf Weiter tippen.

Shelly 1 Gen3 konfigurieren Schritt 5

Einen neuen Raum hinzufügen (z.B. Garage), diesen auswählen und auf Speichern tippen. Damit ist die Einrichtung abgeschlossen.

Tippt man in der App auf das Haus Icon am unteren Rand und wählt den Raum aus, in dem man den Shelly Aktor installiert hat (bei mir: Garage), wird der Shelly 1 Gen3 mit dem vergebenen Namen (hier: Garagentor) angezeigt. Durch Tippen auf das Schaltersymbol kann der potentialfreie Kontakt ein- und wieder ausgeschaltet werden.

Shelly 1 Gen3 konfigurieren Schritt 6

Vor der Einbindung des Aktors in openHAB 5 noch ein paar Hinweise:



Shelly Aktor in openHAB 5 einbinden


Im Add-on Store und Bindings das Shelly Binding hinzufügen.

Shelly Binding

Unter Things mit Klick auf ein neues Thing hinzufügen.

Shelly Binding auswählen:

Shelly Binding auswählen

Über Scan kann man nach Shelly Devices suchen. Ich wähle die manuelle Methode. Vorsicht: in diesem Fall nicht Shelly 1 auswählen, das ist der Aktor der 1. Generation. Die dritte Generation ist unter ShellyPlus 1 zu finden.

Shelly Binding auswählen

Wer sich nicht sicher ist, welcher Thing Name zum Shelly Device passt, sucht zuerst in der Shelly App nach dem Gerätemodell (Zahnrad Icon und Geräteinformation):

Shelly Gerätemodell

Auf der Internetseite www.openhab.org/addons/bindings/shelly/ sucht man jetzt nach dem Gerätemodell S3SW-001X16EU:

Shelly Gerätemodell suchen

In openHAB jetzt diesen Eintrag auswählen:

openHAB think type ShellyPlus 1

Die Thing ID kann übernommen werden. Ich bevorzuge eine etwas aussagekräftigere ID aus Bezeichnung und Geräte-ID. Den Label Eintrag sollte man ändern, damit der Shelly Aktor zum Einsatzort passt (hier: Garagentor). Die Location ist optional, Garage passt hier aber gut. Jetzt noch die IP Adresse eingeben. Ein Passwort wird nicht benötigt.

openHAB new thing ShellyPlus 1

Nach Klick auf Create Thing sollte der Status nach wenigen Sekunden auf ONLINE wechseln. Jetzt wird noch ein Item benötigt, damit der Schalter ein- und ausgeschaltet werden kann.

Unter Einstellungen Model und Create Equipment from Thing auswählen. Nach Klick auf Thing werden die verfügbaren Things angezeigt. Das gerade angelegt Thing auswählen:

openHAB select thing ShellyPlus 1

Name (Garagentor) und Label (Garagentor) werden unverändert übernommen. Nicht zwingend erforderlich, über sinnvoll: Category und Semantic Class auswählen:

openHAB Source Thing Garagentor

Nach unten scrollen. Es werden die verfügbaren Channels (Kanäle) angezeigt:

openHAB verfügbare ShellyPlus1 Channels

Zum Öffnen und Schließen des Garagentors wird nur der Channel Betrieb benötigt. Optional können natürlich auch die anderen Channels hinzugefügt werden (ist zu einem späteren Zeitpunkt auch noch möglich).

Nach Klick auf die Checkbox vor dem Channel Betrieb können weitere Einstellungen vorgenommen werden. Den vorgeschlagenen Namen Garagentor_Betrieb übernehme ich. Als Label wird Betrieb vorgegeben. Diesen Eintrag ändere ich in Garagentor_Betrieb, damit das Item später schneller und vor allem eindeutig ausgewählt werden kann.

openHAB verfügbare ShellyPlus1 Channels

Zum Abschließen der Einrichtung auf Add to Model klicken. Unter Model Garagentor auswählen und mit Klick auf openHAB Items aufklappen die verfügbaren Items anzeigen. Im Item Garagentor_Betrieb kann das Relais geschaltet werden.

openHAB verfügbare ShellyPlus1 Channels

Um jetzt das Garagentor z.B. über die openHAB App zu öffnen, wird in der entsprechenden Seite ein Schalter ergänzt, z.B. in der Seite Overview: Pages - Overview. An beliebiger Stelle eine Spalte hinzufügen:

openHAB Pages Add Column

Nach Klick auf das Plus-Zeichen aus der Standard Library Toggle Card auswählen:

openHAB Toggle Card

Der Schalter lässt sich bereits bedienen, aber damit das Garagentor aufgeht, muss der Schalter erst noch mit einem Item verknüpft werden. Im Menü openHAB Widget Menu Icon Configure Widget auswählen. Als Title bietet sich in diesem Beispiel Garagentor an. Jetzt noch das Item Garagentor_Betrieb auswählen und das Widget mit Done speichern.

Vorausgesetzt der Shelly Aktor ist korrekt mit der Garagentor Steuerung verbunden, kann jetzt über den Schalter das Garagentor geöffnet werden. Der Nachteil: Garagentore werden üblicherweise über einen Taster geöffnet bzw. geschlossen und nicht wie hier über einen Schalter. Um sicherzustellen, dass der Schalter nur eine kurze Zeit eingeschaltet ist, kann über eine Regel der Schalter automatisch ausgeschaltet werden.

In Rules durch Klick auf openHAB Widget Menu Icon eine neue Regel erstellen. Optional die Rule ID ändern, z.B. Garagentor_Betrieb_AutoOFF. Noch ein Label definieren, z.B. Garagentor_Betrieb automatisch ausschalten und mit Save speichern.

Zuerst wird eine Ereignis benötigt, das dazu führt, dass die neue Regel ausgeführt wird. Unter Add Trigger einen Item Event und aus der Liste Pick from Model unter Garagentor Garagentor_Betrieb auswählen und diesen mit Pick übernehmen.

Wenn jetzt der Schalter eingeschaltet wird, wechselt der Status von OFF zu ON. Genau auf dieses Ereignis soll getriggert werden:

openHAB Add Trigger

Mit Save den Trigger speichern. Jetzt wird noch eine Aktion benötigt. Klick auf Add Action und Inline Script. Wer viel Erfahrung mit JavaScript besitzt, wählt ECMAScript, ansonsten bietet Design with Blockly eine anfängerfreundliche Möglichkeit die erforderlichen Blöcke zusammenzustellen. Vollkommen selbsterklärend ist diese Option für Anfänger nicht. Wer nicht zurechtkommt, sollte auf YouTube einmal nach "openHAB Blockly" suchen.

Das fertige Blockly Script sieht folgendermaßen aus:

openHAB Add Trigger

Über eine if Abfrage wird der Status geprüft. Nur wenn der Schalter auf ON steht, ist die Bedingung wahr und die nächsten beiden Blöcke werden ausgeführt. Mit einer Verzögerung von 2 Sekunden (wait for 2000 milliseconds) wird OFF an den Schalter gesendet.

Hinweis: die if Abfrage ist eigentlich nicht erforderlich, da das Script nur ausgeführt wird, wenn der Trigger das Ereignis ausgelöst hat.

Die Regel sollte jetzt so aussuehen:

openHAB Rule Garagentor

Über den jetzten Punkt But only if kann man noch eine Bedingung hinzufügen, die eine Ausführung des Scripts erlaubt bzw. verhindert.

In JavaScript sieht das Script folgendermaßen aus:

if (items.getItem('Garagentor_Betrieb').state == 'ON') {
  thread.sleep(2000);
  items.getItem('Garagentor_Betrieb').sendCommand('OFF');
}

Vorausgesetzt der Shelly Aktor ist korrekt mit der Garagentorsteuerung verbunden (in der Regel parallel zum Taster bzw. Schlüsselschalter), kann das Garagentor ab sofort optional auch über openHAB geöffnet und geschlossen werden.