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 Rückseite mit dem Reset Taster
Voraussetzungen für die Installation und Einbindung in openHAB:
- openHAB, Shelly Aktoren und Smartphone befinden sich im selben lokalen Netzwerk.
- Bluetooth am Smartphone ist aktiviert.
- Der Internet Router (z.B. Fritz!Box) vergibt dynamische IP Adressen.
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:

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

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

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

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.

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

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.

Vor der Einbindung des Aktors in openHAB 5 noch ein paar Hinweise:
- Vom Internet Router wird eine dynamische IP Adresse vergeben. Ich bevorzuge für Geräte, die im lokalen Netzwerk immer eingeschaltet sind, feste IP Adressen. Im Router kann für den Shelly Aktor eine feste IP Adresse vergeben werden (bei mir: 192.168.0.50). Der Aktor muss neu gestartet werden (z.B. über Shelly App).
- Neben dem Zugriff mit der Shelly App ist ein drekter Zugriff im Browser über die IP Adresse möglich, z.B. http://192.168.0.50:
- Beim Einrichten des Aktors über die App steht dieser automatisch in der Shelly Cloud zur Verfügung. Wer das nicht möchte, kann dies über die Browser
Oberfläche ändern. Auf das Zahnradsymbol klicken, Cloud auswählen, das Häkchen bei Enable Cloud entfernen und auf Save Settings klicken.
Wichtig: anschießend kann der Aktor nicht mehr über die Shelly App angesprochen werden! - Für die Einbindung in openHAB 5 ist kein Cloud Zugriff erforderlich. Der Aktor wird über die IP Adresse direkt angesprochen.
Shelly Aktor in openHAB 5 einbinden
Im Add-on Store und Bindings das Shelly Binding hinzufügen.

Unter Things mit Klick auf

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.

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

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

In openHAB jetzt diesen Eintrag auswählen:

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.

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:

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

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

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.

Zum Abschließen der Einrichtung auf Add to Model klicken. Unter Model Garagentor auswählen und mit Klick auf


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:

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

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ü

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

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:

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:

Ü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:

Ü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:
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.