Steuerung der Garagentore / Torantriebe mit openHAB
Ich konnte unsere beiden Garagentore schon immer per EIB / KNX und per Infrarottaster im Auto aktivieren. Da ich durch die Umstellung auf openHAB jetzt auch eine mobile App auf einen Endgeräten habe, wollte ich auch die Steuerung ohne Infrarottaster durchführen können (damit ich nicht noch ein weiteren Taster mitschleppen muss).
Die Konfiguration war eigentlich ganz einfach, aber im Detail doch etwas aufwändiger (darum beschreibe ich das hier noch einmal). Gelöst habe ich für mich noch nicht, dass ich bis zur Garage keine WLAN-Verbindung mehr habe. Entweder muss ich openHAB noch über das Internet verfügbar machen (was ich eigentlich nicht will) oder ich muss einen WLAN-Repeater in der Garage aufstellen (macht wahrscheinlich Sinn, weil ich dann generell im Garten mehr Empfang habe).
Die Besonderheit der technischen Realisierung ist das Mapping in der Sitemap, damit ein Button anstatt ein „Slider“ dargestellt wird. Außerde musste ich in der Regel etwas „tricksen“, damit ein Timer 3 Sekunden wartet und die richtigen Stati an das Bus-System gemeldet werden.
Aufbau der Items
Ich habe die Torantriebe als Items wie folgt definiert:
Switch Garage_Links_Torantrieb "Torantrieb Garage (Links)" (gTor_Garage, gGarage_Links) {knx="0/0/1"} Switch Garage_Rechts_Torantrieb "Torantrieb Garage (Rechts)" (gTor_Garage, gGarage_Rechts) {knx="0/0/2"}
Aufbau der Sitemap
Die Sitemap habe ich wie folgt aufgebaut:
Frame { Switch item=Garage_Links_Torantrieb label="Torantrieb Garage (Links)" icon="garage_detached" mappings=[ON="@"] Switch item=Garage_Rechts_Torantrieb label="Torantrieb Garage (Rechts)" icon="garage_detached" mappings=[ON="@"] }
Aufbau der Regel
Zusätzlich habe ich noch folgende Regel pro Garagentor implementiert:
import org.openhab.core.library.types.* import org.openhab.model.script.actions.* import org.openhab.core.transform.actions.* var Timer timer = null var Timer Garage_OnTime = null rule "Garagentor Links" when Item Garage_Links_Torantrieb received command or Time cron "0 0/3 * * * ?" then if(receivedCommand==ON) { if(Garage_OnTime == null) { Garage_OnTime = createTimer(now.plusSeconds(3)) [ sendCommand(Garage_Links_Torantrieb, OFF) postUpdate(Garage_Links_Torantrieb, OFF) Garage_OnTime.cancel Garage_OnTime = null ] logInfo("Gargentor (Links)","Garagentor auf/zu wurde ausgeführt") } } end
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!