Regenerativen Lüfter per Temperatur steuern

Hi,
ich habe eine Lüftungsanlage von Inventer und möchte einen der Lüfter Smart machen. Zum Thema Elektrik hat sich mein Dad drum gekümmert (shelly RGBW + ensprechende Elko/spule usw)
Der Lüfter kann regenerativ lüften und damit 80% Wärmerückgewinnung erreichen. Ich würde nun das ganze anhand der Raumtemperatur und Luftfeuchte regeln.
Der Lüfter ist bereits smart über 2 Kanäle steuerbar. Kanal1 in und Kanal2 out. Zur Messung habe ich mir den Shelly H&T Sensor geholt.
Nun zur eigentlichen frage: Ich würde das ganze gerne per automation lösen (automatisches lüften anhand von 4 stufen je nach raumtemperatur und bei zu hoher luftfeuchte regeneratives lüften sowie einen overwrite per StreamDeck Integration.

Mein gedanke für den Automatismus war wie folgt (berichtigt mich bitte wenn es sinnvoller/einfacher geht)
Wenn Temperatur > 22 und Helfer (Overwrite on/off) ist aus und Helfer (Wärmetauscher aktiv) ist aus dann schalte lüftung an.

nur wie würde ich das mit dem Wärmetausche umsetzen? bei der original lüftungssteuerung schaltet er alle 5min die drehrichtung um.

Machen wir das ganze mal schritt für schritt ich bin grad an der Umschalt Automatik für rein/raus blasen für die Wärmeregeneration. Ich bekomme aber aktuell immer folgenden Fehler:
Message malformed: expected float for dictionary value @ data[‘brightness_pct’]

das Skript schaut wie folgt aus:

type: turn_on
device_id: 45befdd2cf5bf352692f0cd1e4f50399
entity_id: 34c79d0f70784ee1c7bc4e47e3b86a5d
domain: light
brightness_pct: {{ states('input_number.luftung_buro_stufe') | float}}

luftung_buro_stufe ist nen Zahlenwert-Eingabe helper in dem 0/25/50/75/100 steht
woran könnte das liegen?

type: turn_on
device_id: 45befdd2cf5bf352692f0cd1e4f50399
entity_id: 34c79d0f70784ee1c7bc4e47e3b86a5d
domain: light
brightness_pct: "{{ states('input_number.luftung_buro_stufe') | float }}"

oder

type: turn_on
device_id: 45befdd2cf5bf352692f0cd1e4f50399
entity_id: 34c79d0f70784ee1c7bc4e47e3b86a5d
domain: light
brightness_pct: |
  {{ states('input_number.luftung_buro_stufe') | float }}

LG

Danke für die Hilfe :slight_smile:
Stand heute:
Skript für Lüftung mit Wärmetauscher
Skript für Lüftung ohne Wärmetauscher

Automatismus zum beenden des Wärmetauscher Skripts und starten des Skripts ohne Wärmetauscher
Automatismus zum starten des Wärmetauscher Skripts
Automatismus um Lüfterdrehzahl bei Änderung des Helpers zu übernehmen

Stream Deck integration zum umschalten der Overwrites (Overwrite und Temperatursteuerung stehen noch aus)
Stream Deck integration zum umschalten des Wärmetauschers
Die Funktion hierfür lautet in Stream Deck Domain: homeassistant Service Generic Toggle

Hat jemand ne Idee wie die Stream Deck integration zum switchen der verschiedenen Lüfterstufen zu realisieren wäre?
Der Helper ist eine Zahlenwert-Eingabe.

P.s. das Script für den Wärmetauscher:

sequence:
  - type: turn_off
    device_id: 45befdd2cf5bf352692f0cd1e4f50399
    entity_id: 23df9119a8efe3f7149e1e3f59b1f221
    domain: light
    enabled: true
  - delay:
      hours: 0
      minutes: 0
      seconds: 5
      milliseconds: 0
  - repeat:
      sequence:
        - target:
            entity_id: light.shellyplusrgbwpm_2cbcbbc1a534_light_0
          data:
            brightness_pct: "{{ states('input_number.luftung_buro_stufe') | float }}"
            transition: 5
          action: light.turn_on
        - delay:
            hours: 0
            minutes: 5
            seconds: 0
            milliseconds: 0
        - type: turn_off
          device_id: 45befdd2cf5bf352692f0cd1e4f50399
          entity_id: 34c79d0f70784ee1c7bc4e47e3b86a5d
          domain: light
        - delay:
            hours: 0
            minutes: 0
            seconds: 5
            milliseconds: 0
        - target:
            entity_id: light.shellyplusrgbwpm_2cbcbbc1a534_light_1
          data:
            brightness_pct: "{{ states('input_number.luftung_buro_stufe') | float }}"
            transition: 5
          action: light.turn_on
        - delay:
            hours: 0
            minutes: 5
            seconds: 0
            milliseconds: 0
        - type: turn_off
          device_id: 45befdd2cf5bf352692f0cd1e4f50399
          entity_id: 23df9119a8efe3f7149e1e3f59b1f221
          domain: light
          enabled: true
        - delay:
            hours: 0
            minutes: 0
            seconds: 5
            milliseconds: 0
      while:
        - condition: state
          entity_id: input_boolean.luftung_buro_warmetauscher
          state: "on"
alias: Lüftung Wärmetauscher
description: ""
mode: restart

Moinsen,

hätte mein skript jetzt soweit fertig, auch die elektronik steht. Ich habe das Skript non stop laufen mit einer wiederholung wenn wenn Lüftung Stufe unter 200, der Helper wird aber nie über 100 schalten. Nun hatte ich den rgbw abgesteckt um die elektronik zu testen und festgestellt, sobald der rgbw nicht erreichbar ist, läuft das skript auf fehler und beendet. Wie kann ich das unterbinden bzw. am dümmsten wieder starten?

anbei das skript:

sequence:
  - repeat:
      sequence:
        - repeat:
            sequence:
              - choose:
                  - conditions:
                      - condition: state
                        entity_id: input_boolean.luftung_buro_warmetauscher
                        state: "on"
                    sequence:
                      - target:
                          entity_id: light.shellyplusrgbwpm_2cbcbbc1a534_light_0
                        data:
                          brightness_pct: >-
                            {{ states('input_number.luftung_buro_stufe') | float
                            }}
                          transition: 5
                        action: light.turn_on
                      - delay:
                          hours: 0
                          minutes: 1
                          seconds: 0
                          milliseconds: 0
                      - type: turn_off
                        device_id: 45befdd2cf5bf352692f0cd1e4f50399
                        entity_id: 34c79d0f70784ee1c7bc4e47e3b86a5d
                        domain: light
                      - delay:
                          hours: 0
                          minutes: 0
                          seconds: 5
                          milliseconds: 0
                      - target:
                          entity_id: light.shellyplusrgbwpm_2cbcbbc1a534_light_1
                        data:
                          brightness_pct: >-
                            {{ states('input_number.luftung_buro_stufe') | float
                            }}
                          transition: 5
                        action: light.turn_on
                      - delay:
                          hours: 0
                          minutes: 1
                          seconds: 0
                          milliseconds: 0
                      - type: turn_off
                        device_id: 45befdd2cf5bf352692f0cd1e4f50399
                        entity_id: 23df9119a8efe3f7149e1e3f59b1f221
                        domain: light
                        enabled: true
                      - delay:
                          hours: 0
                          minutes: 0
                          seconds: 5
                          milliseconds: 0
                  - conditions:
                      - condition: state
                        entity_id: input_boolean.luftung_buro_warmetauscher
                        state: "off"
                    sequence:
                      - type: turn_off
                        device_id: 45befdd2cf5bf352692f0cd1e4f50399
                        entity_id: 23df9119a8efe3f7149e1e3f59b1f221
                        domain: light
                        enabled: true
                      - delay:
                          hours: 0
                          minutes: 0
                          seconds: 5
                          milliseconds: 0
                      - target:
                          entity_id: light.shellyplusrgbwpm_2cbcbbc1a534_light_0
                        data:
                          brightness_pct: >-
                            {{ states('input_number.luftung_buro_stufe') | float
                            }}
                          transition: 5
                        action: light.turn_on
            while:
              - condition: numeric_state
                entity_id: input_number.luftung_buro_stufe
                above: 1
        - delay:
            hours: 0
            minutes: 0
            seconds: 2
            milliseconds: 0
      while:
        - condition: numeric_state
          entity_id: input_number.luftung_buro_stufe
          below: 200
alias: Lüftung Wärmetauscher
description: ""
mode: restart