Jan-Philipp Litza

Garagentormotor in Home Assistant einbinden

Unser Garagentor wurde bereits als wir die Garage übernahmen von einem Motor angetrieben. Um genau zu sein von einem „novoferm VivoPort“. Der hat zwar immerhin eine Fernbedienung, aber leider auch nur genau eine. Man könnte welche nachkaufen und anlernen, aber die hätte ich dann im entscheidenden Moment doch nicht dabei.1

Außer mit der Fernbedienung kann man den Motor mit einem kleinen blauen Knopf unten am Gehäuse starten. Und da dachte ich mir: Den Knopfdruck kann man doch auch simulieren! Also habe ich mir einen Shelly 1 Gen3 besorgt und ein wenig gelötet: Auf der Platine des Motors selbst habe ich mir direkt am Eingang die 24V und Erde mit einem Kabel abgegriffen; außerdem beide Seiten des Schalters.

Nach entsprechender Verkabelung klappt das auch wunderbar. Der Shelly hat einen Auto-OFF Timer von 0,2s eingestellt, damit er einen kurzen Knopfdruck simuliert anstatt den Knopf gedrückt zu halten. Damit konnte ich also über Home Assistant das Garagentor vom Handy aus auf- und zumachen – außer bei Regen, dann ist das WLAN aktuell zu schwach in der Garage.

Aber schon am nächsten Tag habe ich versehentlich auf dem Heimweg das Garagentor geschlossen anstatt es zu öffnen, weil jemand anders es schon kurz vorher geöffnet hatte. Blöd. Also muss ich auch den aktuellen Zustand erkennen können.

Jetzt gäbe es viele Möglichkeiten, zu erkennen ob das Garagentor offen ist. Da der Shelly aber so schön im Gehäuse des Motors verbaut war wollte ich auch die Zustandserkennung irgendwie dort ansiedeln. Da erschien mir eine Art Neigungssensor das einfachste zu sein, da der Motor am Tor montiert ist und sich daher mit ihm zusammen neigt. Mit genauer Winkelangabe könnte man dem Tor sogar digital beim Öffnen und Schließen zusehen, bräuchte aber zusätzliche Hardware. Mir reicht vorerst eine digitale Auf/Zu-Angabe, die ich zudem über den Schalter-Eingang des Shelly selbst realisieren könnte.

Jetzt sind solche digitalen Neigungsschalter zwar Centartikel, aber nur im Fachhandel erhältlich, sodass die Versandkosten den Warenwert um ein Vielfaches übersteigen. Außerdem: Wo wäre da der Spaß?

Also habe ich so einen Neigungsschalter selbst gebaut! Dazu habe ich einen alten Kugelschreiber seiner Miene beraubt und stattdessen eine Metallkugel eingesetzt. Diese rollt darin je nach Lage hin und her und verbindet am einen Ende zwei Kabelenden, die ich im Schraubverschluss eingeklemmt und vorne durch die Öffnung herausgeführt habe.

Und schon habe ich einen Neigungsschalter zum Anschluss am Schalter-Eingang des Shelly. Im Foto ist zu sehen wie er rechts am Rand auch noch Platz im Gehäuse des Motors fand. In den Einstellungen des Shelly musste ich natürlich noch Eingang und Ausgang entkoppeln (auf „Detached“ stellen). Außerdem sollte man in den Einstellungen des Eingangs die Option „Enable factory reset from input“ deaktivieren2.

Das geöffnete Gehäuse des Garagentormotors mit Shelly (blau) und Neigungsschalter (Kugelschreiber am Rechten Rand)
Das geöffnete Gehäuse des Garagentormotors mit Shelly (blau) und Neigungsschalter (Kugelschreiber am Rechten Rand)

Schließlich musste ich in Home Assistant noch Eingang und Schalter des Shelly zu einer Garagentor-Entität machen, um sie hübsch darstellen zu können:

template:
  - cover:
      - name: Garagentor
        state: '{{ states("binary_sensor.shelly1g3_0123456789ab_input_0_input") != "on" }}'
        device_class: garage
        optimistic: true
        open_cover: &garagedoor_action
          action: switch.turn_on
          target:
            entity_id: switch.shelly1g3_0123456789ab_switch_0
        close_cover: *garagedoor_action

Diese ganze Lösung ist nicht nur komplett im ursprünglichen Gehäuse versteckt, sondern auch kompatibel zur klassischen Steuerung: Sowohl die Fernbedienung als auch der Knopf funktionieren noch wie zuvor, und der Zustand in Home Assistant wird trotzdem passend aktualisiert. Dafür war sie preislich vermutlich sogar günstiger als eine Fernbedienung nachzukaufen.

Jetzt bleibt (neben dem grenzwertigen WLAN-Empfang) nur noch ein Problem, das ich noch nicht gelöst habe. Während der Motor läuft fällt die Spannung so stark ab, dass der Shelly neustartet. In den bis zu 60 Sekunden nach dem Senden des Signals zum Öffnen oder Schließen (egal ob der Home Assistant oder Fernbedienung oder Knopf) ist also keine Kommunikation möglich und der Zustand wird nicht aktualisiert. Da der Neigungsschalter aber eh erst auslöst wenn das Tor fast ganz offen ist macht das beim Öffnen nur wenig Unterschied. Eventuell könnte ich mit einem passend dimensionierten3 Kondensator am Eingang des Shelly sowie einer Diode vom 24V-Eingang der Motor-Platine lösen, aber dazu stört es mich aktuell zu wenig.

  1. Wir nutzen die Garage eher mit Fahrrädern, sodass es keine Lösung ist, die Fernbedienung einfach im Auto oder beim Autoschlüssel zu lagern. 

  2. Ask me how I know… Der Eigenbau scheint etwas zu federn und daher gerne mal ungewollt den Shelly auf Werkseinstellungen zurücksetzen. 

  3. Ich habe mir noch nicht angelesen, wie man das eigentlich berechnet. Ob ich da auch bei 1 Farad landen würde?