Rollosteuerung mit saver -save state

Ich habe gemäß simons Video
[https://www.youtube.com/watch?v=SLo86-xpKcw&t=461s] (Der „Saver“ aus HACS)
die Rollladensteuerung nachgebaut.

Bei der mutmaßlich einfachen c&p-Aufgabe und Anpassung der Entitäten treffe ich jedoch auf Fehler, die ich nicht lösen kann/richtig interpretiere.
Zunächst habe ich den Code auf einen Aktor (Rollladen) heruntergebrochen - die Fehler bleiben die Gleichen.

id: '1737127628526'
alias: _Fenster offen = Rollo hoch
description: ''
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.keller_fenster_contact
    from: 'off'
    id: KE
    to: 'on'
conditions:
  - condition: or
    conditions:
      - alias: KE
        condition: and
        conditions:
          - condition: trigger
            id:
              - KE
          - condition: numeric_state
            entity_id: cover.rolladen_office_klein
            attribute: current_position
            below: 90
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - KE
        sequence:
          - action: saver.save_state
            metadata: {}
            data:
              entity_id:
                - cover.rolladen_office_klein
          - action: cover.open_cover
            metadata: {}
            data: {}
            target:
              entity_id: cover.rolladen_office_klein
          - wait_for_trigger:
              - trigger: state
                entity_id:
                  - binary_sensor.keller_fenster_contact
                from: 'on'
                to: 'off'
            timeout:
              hours: 0
              minutes: 0
              seconds: 30
          - action: cover.set_cover_position
            metadata: {}
            data:
              position: >-
                {{ saver_entity('cover.rolladen_office_klein',
                'current_position') }}
            target:
              entity_id: cover.rolladen_office_klein
mode: parallel
max: 10

Der Fehler scheint zu sein, dass beim Speichern/Abruf statt des korrekten Wertes ‘current_position’ (z.B. 75%) dort ‘null’ drinsteht.
Schaue ich mir dann das Attribut ‘current_positon’ der Entität ‘cover.rolladen_office_klein’ an steht dort der korrekte Wert.
Warum?

Folglich startet die Automation:

  • nach Öffnen des Fensterkontaktes (-> Position Rollo < 90%) öffnet das Rollo wie zu erwarten aber dann tritt der obige Fehler auf.

Ergo: da ‘null’ kein integer-Wert fällt die Automation auf die Nase.
edit:
hier noch die Attribute der cover-Entität:

Ich schließe mich hier mal an.
Auch ich habe gerade versucht die Automation nachzubauen, jedoch scheitere ich am gleichen Problem, wie @hipoo.
Fenster auf, dann fährt der Rollladen hoch. Aber weder bei Timeout noch Fenster zu fährt er wieder in die vorherige Position.
Ich habe einen Eintrag im LogBuch der ist für mich nicht ganz schlüssig.

Wenn ich jetzt den Eintrag vom Saver aufmache und dort in die Attribute gehe hat er einmal bei einer Entität (cover.rolladen.bad) den Positionswert null und weiter unten (sensor.rolladen_bad_position_ch3) 38 (was auch hinkam beim testen).
Jedoch fährt er dorthin nicht wieder zurück nach schließen des Fensters.
image

Ich wüßte jetzt nicht woran es noch liegt.

dann wäre es aber so falsch

              position: >-
                {{ saver_entity('cover.rolladen_office_klein',
                'current_position') }}

dann müsste imho ja der state vom sensor.rolladen_bad_position_ch3 wiederhergestellt werden

              position: >-
                {{ saver_entity('sensor.rolladen_bad_position_ch3',
                'state') }}

Ich nutze Saver selber nicht.

Kann es sein das du die Beiträge von @hipoo und mir mischt?
Ich habe keine Zeile mit „Rollo klein“
Aber dafür Bad Ch 3… :face_in_clouds:

Da du deinen Code nicht angegeben hast, muss ich ja vom TE ausgehen.
Hast du es denn mit state versucht? Vielleicht muss auch noch ein float() dran.

Stimmt hast recht…
hier zu Vollständigkeit


 alias: Fenster offen = Rollo hoch
 description: ''
 triggers:
 - trigger: state
   entity_id:
   - binary_sensor.fenstersensor_bad_erdgeschoss_contact
   from: 'off'
   to: 'on'
   id: Bad
 - trigger: state
   entity_id:
   - binary_sensor.fenstersensor_kuche_contact
   from: 'off'
   to: 'on'
   id: Küche
 conditions:
 - condition: trigger
   id:
   - Bad
 - condition: device
   device_id: c10f14a8d8faa0207888e985c6496b4a
   domain: cover
   entity_id: f4b843abc9311fd3e65fb7d6e89f89ee
   type: is_position
   below: 40
 actions:
 - choose:
   - conditions:
     - condition: trigger
       id:
       - Bad
     sequence:
     - action: saver.save_state
       metadata: {}
       data:
         entity_id:
         - sensor.rolladen_bad_position_ch3
     - action: cover.open_cover
       metadata: {}
       data: {}
       target:
         entity_id: cover.rolladen_bad
     - wait_for_trigger:
       - trigger: state
         entity_id:
         - binary_sensor.fenstersensor_bad_erdgeschoss_contact
         from: 'on'
         to: 'off'
       timeout:
         hours: 0
         minutes: 0
         seconds: 20
     - action: cover.set_cover_position
       metadata: {}
       data:
         position: saver_entity('cover.rollo_bad','current_position')
       target:
         entity_id: cover.rolladen_bad
 mode: single

Du sicherst den Zustand von einem sensor und willst anschließend aber den Zustand vom cover wiederherstellen? Sicher die mal die richtige Entität

action: saver.save_state
       metadata: {}
       data:
         entity_id:
         - cover.rollo_bad

Oder stell die andere Entität wieder her (hatte ich ja bereits oben beschrieben).

Ahh danke für den Hinweis:

alias: Fenster offen = Rollo hoch
  description: ''
  triggers:
  - trigger: state
    entity_id:
    - binary_sensor.fenstersensor_bad_erdgeschoss_contact
    from: 'off'
    to: 'on'
    id: Bad
  - trigger: state
    entity_id:
    - binary_sensor.fenstersensor_kuche_contact
    from: 'off'
    to: 'on'
    id: Küche
  conditions:
  - condition: trigger
    id:
    - Bad
  - condition: device
    device_id: c10f14a8d8faa0207888e985c6496b4a
    domain: cover
    entity_id: f4b843abc9311fd3e65fb7d6e89f89ee
    type: is_position
    below: 40
  actions:
  - choose:
    - conditions:
      - condition: trigger
        id:
        - Bad
      sequence:
      - action: saver.save_state
        metadata: {}
        data:
          entity_id:
          - sensor.rolladen_bad_position_ch3
      - action: cover.open_cover
        metadata: {}
        data: {}
        target:
          entity_id: cover.rolladen_bad
      - wait_for_trigger:
        - trigger: state
          entity_id:
          - binary_sensor.fenstersensor_bad_erdgeschoss_contact
          from: 'on'
          to: 'off'
        timeout:
          hours: 0
          minutes: 0
          seconds: 20
      - action: cover.set_cover_position
        metadata: {}
        data:
          position: saver_entity('sensor.rolladen_bad_position_ch3','current_position')
        target:
          entity_id: cover.rolladen_bad
  mode: single

Ich hab jetzt unten in der drittletzten Zeile auf den Sensor gewechselt aber die danach folgende entity_id kann die mit dem Wert was anfangen?

Müsste dann nicht state rein?

Aber warum saves du nicht das cover und stellst danach die current_position des covers wieder her?
Ich verstehe den Mix nicht.

Ich hatte gedacht, dass das cover den Positionspunkt nicht weiß, sondern nur eine Art Schalter ist und hoch runter kann. Probiere ich aber aus und melde mich.

@hippoo
was sagen denn bei dir die Attribute der saver Entität?

Ich habe hier einmal durch gewischt und einige Beiträge gelöscht.

Bitte bleibt freundlich. Und Nein, wir werden das Thema aktuell nicht schließen. Wenn jemand kein Interesse am weiteren Verlauf hat, kann er das beobachten beenden und bekommt keine weitere Benachrichtigung.

@tarag
Danke vielmals.

@maxe

Ich habe jetzt die auf cover gewechselt als Entität.
Das Problem bleibt aber bestehen.
Auf Rollo hoch funktioniert, bei zu weder nach Timeout noch nach schließen des Fensters.

alias: Fenster offen = Rollo hoch
  description: ''
  triggers:
  - trigger: state
    entity_id:
    - binary_sensor.fenstersensor_bad_erdgeschoss_contact
    from: 'off'
    to: 'on'
    id: Bad
  - trigger: state
    entity_id:
    - binary_sensor.fenstersensor_kuche_contact
    from: 'off'
    to: 'on'
    id: Küche
  conditions:
  - condition: trigger
    id:
    - Bad
  - condition: device
    device_id: c10f14a8d8faa0207888e985c6496b4a
    domain: cover
    entity_id: f4b843abc9311fd3e65fb7d6e89f89ee
    type: is_position
    below: 40
  actions:
  - choose:
    - conditions:
      - condition: trigger
        id:
        - Bad
      sequence:
      - action: saver.save_state
        metadata: {}
        data:
          entity_id:
          - cover.rolladen_bad
      - action: cover.open_cover
        metadata: {}
        data: {}
        target:
          entity_id: cover.rolladen_bad
      - wait_for_trigger:
        - trigger: state
          entity_id:
          - binary_sensor.fenstersensor_bad_erdgeschoss_contact
          from: 'on'
          to: 'off'
        timeout:
          hours: 0
          minutes: 0
          seconds: 20
      - action: cover.set_cover_position
        metadata: {}
        data:
          position: saver_entity('cover.rolladen_bad','current_position')
        target:
          entity_id: cover.rolladen_bad
  mode: single