Rollladen Automation mit Shelly 2PM Gen4

Hallo, ich bräuchte mal bitte eure Hilfe.

Ich benutze Shelly 2PM Gen4

Wenn ich mein Fenster in der Küche öffne, soll nach 10 Sekunden das Rollo in der Küche auf 85% fahren um zu lüften. Schließe ich es wieder, soll es nach 10 Sekunden wieder an die Position von vor dem Fenster öffnen fahren, es sei denn die Position hat sich geändert.

Mein Problem ist jetzt das der Rollladen laut HA und Shelly App zwar auf 85% fährt, er aber trotzdem ganz nach oben fährt. Irgendwie passen die Position in der Automation nicht. Der Rest der Automation scheint zu funktionieren.
Hat jemand einen Tipp?

alias: Fenster Küche auf - Rollo auf
description: ""
triggers:
  - trigger: state
    entity_id: binary_sensor.fenster_kueche
    from: "off"
    to: "on"
    for:
      seconds: 10
conditions: []
actions:
  - action: saver.save_state
    data:
      entity_id:
        - cover.rollo_kueche
  - action: cover.set_cover_position
    target:
      entity_id: cover.rollo_kueche
    data:
      position: 85
  - wait_for_trigger:
      - trigger: state
        entity_id: binary_sensor.fenster_kueche
        from: "on"
        to: "off"
        for:
          seconds: 10
  - choose:
      - conditions:
          - condition: template
            value_template: >
              {{ state_attr('cover.rollo_kueche', 'current_position') | int(0)
              == 85 }}
        sequence:
          - action: cover.set_cover_position
            target:
              entity_id: cover.rollo_kueche
            data:
              position: >
                {{ saver_entity('cover.rollo_kueche', 'current_position') |
                int(0) }}
mode: restart

Funktioniert die Aktion denn außerhalb der Automation?

Das funktioniert:

Das hier:

war so:

nicht gemeint..,. denke ich…

Schritt-für-Schritt

  1. Gehe in Home Assistant auf Entwicklerwerkzeuge

  2. Klicke oben auf den Reiter Aktionen.

  3. Suche im Feld “Aktion” nach “Position festlegen” und wähle das aus. (für Cover)

  4. Klicke auf Entität auswählen und wähle dein Rollo

  5. Setze einen Haken bei Position und gib den Wert ein.

  6. Klicke auf die Schaltfläche Aktion ausführen.

Das ganze funktioniert nur, wenn du den Shelly auch kalibriert hast. Ohne Kalibrierung kein current_position

Ja ich hatte meinen Post schon bearbeitet. Das funktioniert.

Im HA und in der Shelly App steht das Rollo auf jetzt auf 85%.
Ich hatte es vorher ganz geschlossen und dann die 85% eingestellt. Der Rollladen steht jetzt aber nicht an dieser Position sondern ist ganz hochgefahren. Trotzdem steht er auf 85%. Irgendwie verschieben sich die Positionen. Das ist das eigentliche Problem. Die 85% wandern nach oben.

Die Kalibrierung des Shelly wurde aber gemacht?

Hatte ich auch vermutet… aber wurde ja bestätigt…

Wenn das Rollo nicht zur korrekten Position fährt, dann würde ich annehmen, dass es an Saver liegt. Ich kenne Saver nicht, (verwende ich selbst nicht)
Hast du es mal ohne Saver probiert?

Einen helfer erstellen in den du den Wert des Rollo speichern kannst… z.B.: rollo_kueche_speicher

alias: Fenster Küche auf - Rollo auf
description: ""
triggers:
  - trigger: state
    entity_id: binary_sensor.fenster_kueche
    from: "off"
    to: "on"
    for:
      seconds: 10
    id: oeffnen
  - trigger: state
    entity_id: binary_sensor.fenster_kueche
    from: "on"
    to: "off"
    for:
      seconds: 10
    id: schliessen
actions:
  - choose:
      - conditions:
          - condition: trigger
            id: oeffnen
        sequence:
          - action: input_number.set_value
            target:
              entity_id: input_number.rollo_kueche_speicher
            data:
              value: "{{ state_attr('cover.rollo_kueche', 'current_position') | int }}"
          - action: cover.set_cover_position
            target:
              entity_id: cover.rollo_kueche
            data:
              position: 85
      - conditions:
          - condition: trigger
            id: schliessen
          - condition: template
            value_template: >
              {{ (state_attr('cover.rollo_kueche', 'current_position') | int -
              85) | abs <= 2 }}
        sequence:
          - action: cover.set_cover_position
            target:
              entity_id: cover.rollo_kueche
            data:
              position: "{{ states('input_number.rollo_kueche_speicher') | int }}"
mode: parallel

Warum einen Helfer?

Einfach zuvor eine Snapshot Szene erstellen und diese Szene dann einfach aufrufen.

Gruß Osorkon

Viele Wege führen nach Rom… wollte nur Saver ausschließen

Oder zerhaut “restart” eventuell die Automation? Wenn der Lauf Unterbrochen wird und Saver nen neuen Stand speichert?

Mal das ganze mit ner Szene (ist natürlich Einfacher ,weil braucht keinen Helfer stimmt @Osorkon )

alias: Fenster Küche - Lüften via Szene
description: ""
triggers:
  - trigger: state
    entity_id: binary_sensor.fenster_kueche
    from: "off"
    to: "on"
    for:
      seconds: 10
    id: "oeffnen"
  - trigger: state
    entity_id: binary_sensor.fenster_kueche
    from: "on"
    to: "off"
    for:
      seconds: 10
    id: "schliessen"
actions:
  - choose:
      - conditions:
          - condition: trigger
            id: "oeffnen"
        sequence:
          - action: scene.create
            data:
              scene_id: rollo_kueche_vor_lueften
              snapshot_entities:
                - cover.rollo_kueche
          - action: cover.set_cover_position
            target:
              entity_id: cover.rollo_kueche
            data:
              position: 85
      - conditions:
          - condition: trigger
            id: "schliessen"
          - condition: template
            value_template: >
              {{ (state_attr('cover.rollo_kueche', 'current_position') | int - 85) | abs <= 2 }}
        sequence:
          - action: scene.turn_on
            target:
              entity_id: scene.rollo_kueche_vor_lueften
mode: parallel

So da es sich ja Grundsätzlich um das Problem handelt, das bei meinen Rollläden die Positionen “wandern”, habe ich jetzt erstmal eine neue Automation zum Testen erstellt, die meine Rollos Morgens und Abends steuern.

Die Shellys benötigen anscheinend ein regelmäßiges Anfahren der Endpunkte. Macht man das nicht, verstellen sich die gespeicherten Positionen.
Die Rollläden sind ja Nachts ganz unten und fahren jetzt morgens erst komplett hoch, so kann der Shelly den oberen Endpunkt speichern und fahren dann wieder runter auf die gewünschten Positionen.
Der Rollladen der am längsten braucht um komplett zu Öffnen ist meine Terrassentür. Das dauert 25 Sekunden. Deshalb habe ich eine Wartezeit von 30 Sekunden eingestellt.
Sind die 30 Sekunden dann abgelaufen, fährt jedes Rollos auf seine Position.

Ich hoffe mal mein Problem hat sich dann damit erledigt.

alias: Rollladen-Steuerung Test
description: ""
variables:
  wartezeit_rollladen: 30
triggers:
  - id: abend_zeit
    at: "18:00:00"
    trigger: time
    alias: "Rollos abends schließen um:"
  - alias: "Rollos morgens öffnen um:"
    id: morgen_zeit
    at: "18:32:00"
    trigger: time
conditions: []
actions:
  - choose:
      - conditions:
          - condition: template
            value_template: "{{ trigger.id == 'abend_zeit' }}"
            alias: Wenn eingestellte Uhrzeit am Abend erreicht ist
        sequence:
          - action: cover.close_cover
            target:
              entity_id:
                - cover.rollo_kueche
            data: {}
          - action: cover.close_cover
            target:
              entity_id: cover.rollo_wc
            data: {}
        alias: Rollos Abends schließen
      - conditions:
          - condition: template
            value_template: "{{ trigger.id == 'morgen_zeit' }}"
            alias: Wenn eingestellte Uhrzeit am Morgen erreicht ist
        sequence:
          - alias: Rollos gleichzeitig öffnen
            parallel:
              - alias: Küche
                sequence:
                  - action: cover.open_cover
                    target:
                      entity_id: cover.rollo_kueche
                  - delay:
                      seconds: "{{ wartezeit_rollladen }}"
                  - action: cover.set_cover_position
                    target:
                      entity_id: cover.rollo_kueche
                    data:
                      position: 85
              - alias: WC
                sequence:
                  - action: cover.open_cover
                    target:
                      entity_id: cover.rollo_wc
                  - delay:
                      seconds: "{{ wartezeit_rollladen }}"
                  - action: cover.set_cover_position
                    target:
                      entity_id: cover.rollo_wc
                    data:
                      position: 75
        alias: Rollos Morgens öffnen
    default: []
mode: single

ich habe das Problem auch - aber nur bei den elektronischen Rohrmotoren.
Das passiert sowohl mit shelly als mit zigbee Modul.

Die Rolläden die einen eingestellten Endschalter haben, laufen problemlos.

Ich habe jetzt ein paar Tage meine neuen Automation am laufen und es sieht ganz gut aus. Ich habe vorhin nochmal an jedes Fenster Kreppband angeklebt und mit einem Edding markiert wo die Rollos jetzt stehen. So kann ich ab jetzt genau sehen ob die Rollos noch “wandern”.
Mal sehen was dabei herauskommt.