Shelly Door/Window gekippt

Hallo,
ich verwende mittlerweile in einigen Zimmern den Shelly BLU Door/Window. Ich möchte gerne hier einen Sensor haben, der mir auch die gekippt Stellung anzeigt.
D.h. Fenster ganz offen → Sensor = Anzeige geöffnet; Fenster gekippt (Fenster offen + Rotation > 0) = Anzeige gekippt

Wie bekomme ich das in HA hin? Ich bin noch ziemlich neu hier, deshalb hab ich noch nicht den richtigen Ansatz.

Eine Lösung mit nur einem Sensor gibt es wohl nicht.
Variante 1: ein Sensor unten und einen oben am Fenster
Wenn unten und oben offen = Fenster offen
Wenn unten geschlossen und oben offen = gekippt

Variante 2: eine Selbstbastellösung mit 2 Sensoren unterhalb des Griffs und einem Magneten am Griff.
Je nach Griffstellung lässt sich dann anhand der Zustände ableiten ob offen, kipp oder geschlossen.
Hierzu gibt es auch bei YT ein Video und auch Adaptervorlagen für 3D Druck.

Bemühe mal die Suche hier, dann findest du den Thread dazu. Habe ihn ad hoc gerade nicht gefunden, aber vorgestern erst länger „studiert“, da ich eigentlich auch nach solch einer Lösung suche.
Bei mir wird es vermutlich Variante 1 mit Sensoren oben und unten am Fenster.

Viel Erfolg

EDIT: hier der Link zu dem Thread hier im Forum:

Es gibt von Homematic IP einen Griffsensor, der 3 Zustände übergibt, offen, gekippt und geschlossen. Allerdings braucht man dazu den HMIP Funk-Protokoll.

Was möchtest du denn mit dem Zustand gekippt machen? @AndScho ?
Dein Shelly Blu hat ja einen Kippsensor enthalten - “Rotation”.
Dieser Wert zeigt an, dass dein Fenster gekippt ist.
Ist dein Wert höher als NULL ist das Fenster gekippt.

Es gibt von der Firma AEOTEC den “Door / Window Sensor 7 Pro” der geöffnet und gekippt unterscheiden kann. Voraussetzung der Sensor selbst wird auf dem Fenster montiert, der Magnet auf den Fensterrahmen und das Fenster wird in der gekippt Öffnung um mindestens 5 Grad geneigt. Es gibt den Sensor nur in einer Z-Wave Variante.
Bei Drehgriff Sensoren sollte man ein Auge auf die Mechanik haben, bei den Homematic Classic Sensoren, von denen ich ein paar verbaut habe, besteht diese aus Plastik und hat daher nur eine begrenzte Lebensdauer. Ich tausche diese bei Störungen nach und nach gegen einfache Magnet Sensoren aus (z.B den AEOTEC Sensor in der nicht Pro Variante) weil ich für mich entschieden habe das ein Fenster offen ist wenn es offen ist, egal ob gekippt oder ganz geöffnet.

1 „Gefällt mir“

Wie schon beschrieben. Ich suche nicht nach einem neuen Sensor. Ich habe schon mehrere Shelly BLU Door/Window.

Ich würde dies gerne ähnlich wie in diesem Thread haben wollen. Jedoch nicht unbedingt als mushroom

Shelly BLE Door/Window-Sensor -verschiedene Staties in einem Icon darstellen - Dashboard/Cards/Frontend - simon42 Community

Es muss doch eine Möglichkeit geben einen Helfer zu erstellen, der mir ausgibt, wenn das Fenster geöffnet ist, dann zeige nur “offen” an und wenn die Rotation > 0 % dann zeige “gekippt” an.

Wie wäre dann der Code dazu? Bzw. wie stelle ich das an dass er bei Rotation > 0 % das Wörtchen gekippt anzeigt als Sensor.

Ich hatte versucht, das über bedingte Anzeigen im Dashboard anzulegen, wobei ich 2 Fenster angelegt hatte von denen eins gezeigt werden sollte, wenn der WInkel 0 ist und das andere für ungleich 0 … das hat leider so nicht funktioniert, da die Fensterbedingungen nicht schnell genug/heäufig genug abgefagt und aktualisiert werden.

Momentan lebe ich mit dieser simplen Amzeige:
grafik

Ursprünglich hatte ich ja gehofft die Sensoren für Zweiflügelige Fenster mit Kippfunktion zu Nutzen und beide Flügel mit einem Sensor anzudecken…ging aber nicht, da der Winkel bei “geschlossen” immer wieder auf Null gestzt wird.

Schau Dir mal die custom:button-card an, damit ist es möglich alle Status und auch Werte unterschiedlicher Entitäten in einer Karte darzustellen:

https://github.com/custom-cards/button-card

Ich habs für mich nun gelöst. Ich habe unter den Helfern nun einen Template Sensor für Binär-Sensor erstellt mit folgenden Code:

{% if states('sensor.shelly_b_XYZ_rotation')|float(0) > 1 %}   on
{% else %}
off
{% endif %}

Im Dashboard lass ich dann den Sensor dann anzeigen wenn er an (Sichtbarkeitsbedingung) ist mit dem Namen gekippt. Das geöffnete Fenster lasse ich anzeigen wenn die Sichtbarkeitsbedingung Fenster geöffnet und der Binär-Sensor aus ist.
image

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)

1 „Gefällt mir“

Moin Leute,

ich habe mir dazu Template-Sensoren erstellt.

Leider arbeitet Rotation des Shelly nicht zuverlässig

sensor:
  - name: "GastTuerKontakt_Status"
    unique_id: gasttuerkontakt_status
    attributes:
      friendly_name: "Gasttür Status"
    icon: mdi:door
    state: >
        {% set rotation = states('sensor.gasttuerkontakt_rotation') | default('0') | float %}
        {% set kontakt = states('binary_sensor.gasttuerkontakt_window') %}
        {% set kontakt_valid = kontakt in ['on', 'off'] %}
        {% set status = (
          'Geschlossen' if kontakt == 'off' and rotation <= 1 else
          'Gekippt'    if kontakt == 'on' and rotation > 1 else
          'Offen'      if kontakt == 'on' and rotation == 0 else
          'Unbekannt'
        ) %}
        {{ status }}

Hi!

Ich habe das gleich Problem, und habe es mit “triggers” funktioniert zu lösen. Egal welchen Wert ich in “milliseconds” eingebe - es geht erst auf “offen” und dann auf “gekippt” wenn ich das Fenster kippe - eigentlich sollte er doch solange warten wie es in “milliseconds” steht bis er beides auswertetet.

Hier mal mein Code:

template:

  - triggers:
     # Terrassentür geöffnet oder gekippt
      - trigger: state
        entity_id:
          - binary_sensor.tuer_window
          - sensor.tuer_rotation
        for:
          milliseconds: 800

    sensor:
      - name: "Tuer_Status"
        unique_id: 1234567890abcde
        icon: mdi:door-closed
        state: >
          {% set angle = states('sensor.tuer_rotation') | float(0) %}
          {% if is_state('binary_sensor.tuer_window', 'off') %}
            Geschlossen
          {% elif angle > 2.3 %}
            Gekippt
          {% else %}
            Offen
          {% endif %}

Ich habe ein ganz ähnliches Script wie DasWalle und danach das Ganze über eine Button-Card gelöst, die den Status anzeigt und gleichzeitig die Farbe ändert, damit es auf dem Tablet beim Verlassen des Hauses auffällt.

> type: custom:button-card
> entity: sensor.fenster_schlafzimmer_status
> name: Schlafzimmertür
> show_state: true
> state:
>
> * value: offen
>   icon: mdi:window-open-variant
>   color: red
>   styles:
>   card:
>   - background: rgba(255, 0, 0, 0.15)
>   - height: 120px
>   - width: 240px
>   icon:
>   - width: 36px
>   - height: 36px
>   name:
>   - font-size: 14px
>   state:
>   - font-size: 16px
> * value: gekippt
>   icon: mdi:window-open
>   color: orange
>   styles:
>   card:
>   - background: rgba(255, 165, 0, 0.15)
>   - height: 120px
>   - width: 240px
>   icon:
>   - width: 36px
>   - height: 36px
>   name:
>   - font-size: 14px
>   state:
>   - font-size: 16px
> * value: geschlossen
>   icon: mdi:window-closed-variant
>   color: green
>   styles:
>   card:
>   - background: rgba(0, 255, 0, 0.15)
>   - height: 120px
>   - width: 240px
>   icon:
>   - width: 36px
>   - height: 36px
>   name:
>   - font-size: 14px
>   state:
>   - font-size: 16px
>   styles:
>   card:
>   * border-radius: 12px
>   * box-shadow: 0 0 4px rgba(0,0,0,0.1)
>     tap_action:
>     action: more-info

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)
s.a.: (Neues Update & Features - Hier in der Community 🫶)

Mir geht es primär nicht um die Anzeige, sondern um Steuerungen von Automationen. Wie z.B.:

  • Terrassentür geöffnet <=> Jalousie geht auf und (bei Dunkelheit) auch das Licht an
  • Terrassentür gekippt <=> Jalousie fährt auf 80% zum lüften

Doof ist halt nur, da bei dem jetzigen Script ja erst “geöffnet” und dann irgendwann “gekippt” erkannt wird. So wird das Licht eingeschaltet und die Jalousie fährt hoch - dann ‘upps’ ist ja nur gekippt. Das nervt meine Frau beim Lüften schon sehr :wink:

Bei mir wird auch eine Automation, nämlich eine Push-Nachricht aufs Smartphone, ausgelöst, falls ein Fenster offen ist.

Ich kann bei meinem Script nicht feststellen, dass nicht zuverlässig nur offen oder gekippt angezeigt wird. Hier der Eintrag in meine templates.yaml

- sensor:
  - name: "fenster_schlafzimmer_status"
    unique_id: "fenster_schlafzimmer_status"
    state: >
      {% if is_state('binary_sensor.tuere_schlafzimmer_window', 'off') %}
        {{ 'geschlossen' }}
      {% elif is_state('binary_sensor.tuere_schlafzimmer_window', 'on') and (states('sensor.bthome_sensor_6edc_rotation') | float <= 1) %}
        {{ 'offen' }}
      {% elif is_state('binary_sensor.tuere_schlafzimmer_window', 'on') and (states('sensor.bthome_sensor_6edc_rotation') | float > 1) %}
        {{ 'gekippt' }}
      {% else %}
        {{ 'unbekannt' }}
      {% endif %}

Ich würde das mit 2 getrennten Automationen lösen

  • Tür offen für länger als 1 Sekunde
  • Tür gekippt