Fahrtrichtung Garagentor über Neigungssensor möglich?

Hallo,
ich habe mein Garagentor mittels Shelly in Home Assistant eingebunden.
Die Rückmeldung geschlossen erfolgt über einen Magnetschalter.

Nun würde ich gerne aber auch wissen, ob das Tor in Richtung Auf oder Zu fährt.
Bei Betätigung des Tasters fährt das Tor auf oder zu, bei nochmaliger Betätigung stoppt es.

Wäre das ggf. über einen Neigungssensor möglich.
Die Winkelgrade ändern sich ja entsprechend.

Hat das schon jemand umgesetzt oder probiert?
Welcher Neigungssensor wäre geeignet?

Moin,

Ich habe ebenfalls ein klassisches Garagentor, das ich mit einem Schalter-Modul und einem Fensterkontakt-Sensor nachgerüstet habe.

Man könnte sicherlich auch einen Neigungssensor verwenden, aber ich vermute, dass die Aktualisierungsrate bei batteriebetriebenen Sensoren nicht besonders hoch ist. Viele fertige Geräte, wie beispielsweise Rollladenmotoren, arbeiten auch nur mit Endschaltern. Sobald ein Referenzpunkt erreicht ist, weiß man schließlich, ob das Garagentor beim Betätigen gerade öffnet oder schließt. Hast du deine Schalter- und Fensterkontakt-Sensoren als Cover-Template und einen Template-Sensor für die Position integriert?

Der Vorteil eines Template-Sensors für die Position besteht darin, dass du den aktuellen Zustand beim Zustandswechsel abfragen kannst, um z. B. zwischen opening und closing zu unterscheiden:

{% if is_state('sensor.garage_left_door_state', 'open')  %}
  closing
{% else %}
  opening
{% endif %}

Diese Logik kann man noch erweitern, um abzufragen, ob der Schalter während der Bewegung betätigt wurde, also ob die Fahrt gestoppt wurde. Aber auch ohne diese zusätzliche Information funktioniert die Automation einwandfrei. Auch die Darstellung lässt sich damit wunderbar realisieren.

Ich habs über das Meross-Modul gemacht, da wird es mir angezeigt.
meross Smart WLAN Garagentoröffner, APP-Steuerung, Kompatibel mit Alexa, Google Assistant und SmartThings, kein Hub erforderlich : Amazon.de

Vielen Dank für das Beispiel! Der Meross arbeitet, wie bereits von @Kusei umgesetzt und von mir beschrieben, mit nur einem Endschalter, um die Position des Garagentors zu bestimmen. Wichtig ist in solchen Fällen, dass der Zustand anhand der vorliegenden Informationen zuverlässig berechnet wird, da keine zusätzlichen Sensoren zur genauen Positionsbestimmung vorhanden sind. Aber auch hier zeigt dein Beispiel – wie bereits zuvor erwähnt –, dass dies zuverlässig allein mit einem Endschalter möglich ist.

Da ist richtig. Beispielsweise der Shelly Blu Door/Windows hat da nen delay von 8 sekunden bei der Neigung. (Laut Anleitung: Wenn sich der Neigungswinkel ändert, sendet das
Gerät innerhalb von 8 Sekunden seinen neuen Status.)

Klingt interessant. Hast du ein paar Details zur Verdrahtung und screenshots? Mein Hörman Antrieb schaltet potentialfrei. Hoffe dass das auch mit dem meross gehen würde.

Einfach die beiden Strippen, parallel zu Handbedientaster auflegen und das Gerät über USB mit Strom versorgen.

Hallo Czemizm,

ich habe dies über einen Shelly Plus 1 mit Add-On realisiert.
Hier gibt es dazu dann eine entsprechende Entiät in Home Assistant.
Der Magnetschalter zeigt die geschlossene Position des Garagentores an.
Ist das Garagentor etwas oder ganz geöffnet zeigt meine Mushroomm Card geööfnet an.
Die Info kommt von der Entitat: Shelly_binary.shelly_garage_magnetschalter_switch_100_input

Deine Lösung sieht sehr ansprechend aus.
Ich bin in Templates nicht so fit.
Ich verstehe dein Template so:
Meldet dein Magnetschalter “open” führt ein Druck auf den Taster zum Schließen des Tores und meldet “Closing”. Ist das Tor aber zu, dann würde “opening” angezeigt.
Dementsprechend kann ich dann auch die Anzeige auf dem Dashboard gestalten.
Korrekt?

Korrekt. Ich habe bei mir zwei Kontaktsensoren, aber das funktioniert auch mit nur einem Sensor. Da der Sensor den Zustand open des Garagentors nicht direkt erkennen kann, wird dieser zeitbasiert ermittelt. Wenn der Geschlossen-Kontaktsensor länger als X Sekunden geöffnet ist, wird der Zustand auf open gesetzt. Andernfalls wird angenommen, dass das Garagentor gerade hochfährt, also opening. Im folgenden Beispiel wird eine Fahrzeit von 20 Sekunden angenommen, die du durch die tatsächliche Zeit ersetzen kannst:

template:
  - sensor:
      - name: "Garage Links Position"
        unique_id: sensor.garage_left_door_state
        state: >
          {% set is_contact_closed = is_state('binary_sensor.garage_left_door_open_state', 'off') %}
          {% set is_contact_open = is_state('binary_sensor.garage_left_door_open_state', 'on') %}
          {% set is_switch_pressed = is_state('switch.garage_door_a', 'on') %}
          {% set last_opened = as_timestamp(states.binary_sensor.garage_left_door_open_state.last_changed) %}
          {% set now = as_timestamp(now()) %}
          
          {% if is_contact_closed %}
            closed
          {% elif is_contact_open and (now - last_opened) < 20 %}
            opening
          {% elif is_contact_open and (now - last_opened) >= 20 %}
            open
          {% elif is_switch_pressed %}
            closing
          {% else %}
            unknown
          {% endif %}

Wie im Blog-Beitrag beschrieben, handelt es sich hierbei lediglich um den Template-Sensor für die Position. Du kannst außerdem den Cover-Template 1:1 übernehmen, um standardisierte Entitäten für ein Garagentor zu erstellen – wie in dem Bild weiter oben dargestellt.

1 „Gefällt mir“

Hallo ,
du schreibst in deinem Beitrag
“So wird beispielsweise das erneute Stoppen des Garagentors verhindert, wenn es bereits geschlossen ist.”

Mein Tor stoppt ja automatisch in den Endlagen meines Schartec Move 600 Torantriebes. Leider kann man dies in Home Assistant nicht auswerten, man könnte sich ja sonst die zusätzlichen Endschalter sparen!

Wie ist daher dieser Satz zu verstehen?

Weiterhin schreibst du:
“Ohne ein solches Template könnten ungewollte Aktionen auftreten, wie das Stoppen des Garagentors bei einem erneuten Tastendruck, was insbesondere bei älteren Steuerungen problematisch sein kann.”

Ist das Tor geschlossen und ich betätige den Taster fährt das Tor auf. Betätige ich nochmals den Taster stoppt es. Bei nochmaliger Betätigung fährt es wieder zu, usw.

Würde das bei deiner Automation anders funktionieren?.

Das ist bei meinem Tor genauso. Ich hatte ebenfalls überlegt, einen Stromsensor zu verwenden, um zu erkennen, ob sich das Tor bewegt oder nicht. Allerdings funktionieren die beiden Template-Sensoren bereits ziemlich zuverlässig, sodass ich darauf verzichtet habe.

Mein Tor verhält sich identisch, aber meine Implementierung des Cover-Template arbeitet anders – sie sorgt dafür, dass das Tor immer vollständig öffnet oder schließt. Es gibt keine Zwischenzustände, da Home Assistant sonst nicht sicher bestimmen könnte, ob eine erneute Betätigung zum Öffnen oder Schließen führen soll.

Theoretisch könnte man das Verhalten nachbilden, indem man sich die letzte Bewegungsrichtung merkt und beim nächsten Impuls umkehrt. Allerdings besteht hier das Risiko, dass Home Assistant und der tatsächliche Zustand des Tores nicht mehr synchron sind – zumindest so lange, bis eine Endposition erreicht wird. Da ich meine Garage jedoch nie nur teilweise öffne, habe ich mir diesen zusätzlichen Aufwand gespart.

open_cover:
      - condition: state
        entity_id: sensor.garage_left_door_state
        state: "closed"
      - service: switch.turn_on
        target:
          entity_id: switch.garage_door_a

Die condition im Cover-Template stellt sicher, dass der Taster (UI) nur betätigt werden kann, wenn die Garage tatsächlich geschlossen ist. Dadurch wird verhindert, dass das Tor ungewollt in einem undefinierten Zustand bleibt oder in die entgegengesetzte Richtung bewegt.

Da es sich hierbei nur um Templates handelt, wird das tatsächliche Verhalten deines Garagentors, Schalters oder deiner bisherigen Implementierung nicht verändert. Du kannst die beiden Templates also problemlos einbinden und testen, um eventuelle Unklarheiten über die Funktionsweise auszuräumen. :blush:

Dann passt es dann wohl nicht bei mir.
Ich nutzte tatsächlich gelegentlich auch die Funktion stoppen.
Trotzdem danke für die hilfrchen Antworten. :+1: