Rollladen invertieren

Einer meiner Rollladenaktoren ist leider falsch verkabelt, so dass er genau umkehrt verfährt. Das zu ändern ist mit Aufwand verbunden, den ich aktuell noch scheue.

Ich habe dann diesen Beitrag von Simon gefunden: Home Assistant Template Sensoren & Hilfsentitäten (Helfer) 101

Allerdings verstehe ich leider die entsprechende Kopiervorlage nicht. Ist jalousie_bad_curtain die Entität für den Rollladen, der falsch herum läuft? Und müsste nicht irgendwo eine Bezeichnung für eine neue inverse Entität stehen?

Ich habe einfach mit Suchen+Ersetzen in der Kopiervorlage “jalousie_bad_curtain” mit meiner falsch verkabelten “esszimmerwestrechts” ersetzt. Nachdem ich das dann in meine configuration.yaml eingebaut habe, passiert aber nichts.
Habe ich vielleicht das Konzept der Templates noch nicht korrekt verstanden?

Hier ist jedenfalls mein Block aus der configuration.yaml:

cover:
  - platform: template
    covers:
      esszimmerwestrechts:
        friendly_name: EsszimmerWestRechts
        position_template: "{{ 100 - (state_attr('cover.esszimmerwestrechts', 'current_position') | int) }}"
        open_cover:
          service: cover.close_cover
          data:
            entity_id: cover.esszimmerwestrechts
        close_cover:
          service: cover.open_cover
          data:
            entity_id: cover.esszimmerwestrechts
        stop_cover:
          service: cover.stop_cover
          data:
            entity_id: cover.esszimmerwestrechts
        set_cover_position:
          service: cover.set_cover_position
          data:
            entity_id: cover.esszimmerwestrechts
            position: "{{ 100 - (position) }}"

Für Hilfe wäre ich dankbar.

Mit welchem Gerät steuerst du die Rollladen denn? Bei Shellys kann man dies Beispielsweise auch einfach über deren Weboberfläche ändern.

Edit: Dein Code sieht aber sonst soweit gut aus, hätte ich zumindest gesagt. Hast du HA neu gestartet?
Falls ja, sollte ändere den friendly name mal auf Testrollo, starte neu und suche ihn dann in der neuen Cover Entität.

cover.esszimmerwestrechts ist die Orginal Cover Entität

Aus rollladen_esszimmer_rechts_neu wird die Entität cover.rollladen_esszimmer_rechts_neu erzeugt.

cover:
  - platform: template
    covers:
      rollladen_esszimmer_rechts_neu:
        friendly_name: "Esszimmer West Rechts"
        position_template: "{{ 100 - state_attr('cover.esszimmerwestrechts', 'current_position') | int(100) }}"
        open_cover:
          service: cover.close_cover
          data: {}
          target:
            entity_id: cover.esszimmerwestrechts
        close_cover:
          service: cover.open_cover
          data: {}
          target:
            entity_id: cover.esszimmerwestrechts
        stop_cover:
          service: cover.stop_cover
          data: {}
          target:
            entity_id: cover.esszimmerwestrechts
        set_cover_position:
          service: cover.set_cover_position
          data:
            position: "{{100-position}}"
            entity_id: cover.esszimmerwestrechts
        unique_id: 0fd817ec-b03b-47c9-8b1c-d873433898e7

Gruß
Osorkon

Mit welchem Gerät steuerst du die Rollladen denn?

Es sind Homematic-Schalter. Da gibt es meines Wissens leider keinen Weg, die Richtung softwareseitig zu ändern.

So hätte ich es sogar vermutet. Ich habe Deinen Block 1:1 in meine configuration.yaml eingesetzt. Aber ich finde danach keine neue Entität. Da ich noch relativ neu beim Home Assistant bin, vermute ich, dass es vielleicht noch an einem Anfängerfehler meinerseits liegt …
Muss ich vielleicht noch irgendwas installieren, um den Weg über ein Template zu gehen?

Hier ist meine configuration.yaml:

# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

comfoconnect:
  host: 192.168.1.53

sensor:
  - platform: comfoconnect
    resources:
      - air_flow_exhaust
      - air_flow_supply
      - bypass_state
      - current_humidity
      - current_temperature
      - exhaust_humidity
      - exhaust_temperature
      - outside_humidity
      - outside_temperature
      - power_total
      - power_usage
      - supply_humidity
      - supply_temperature

mqtt:
  sensor:
    - name: "e-Up-SOC"
      unique_id: e-Up_SOC_prozent
      state_topic: "openWB/vehicle/1/get/soc"
      unit_of_measurement: "%"

cover:
  - platform: template
    covers:
      rollladen_esszimmer_rechts_neu:
        friendly_name: "Esszimmer West Rechts"
        position_template: "{{ 100 - state_attr('cover.esszimmerwestrechts', 'current_position') | int(100) }}"
        open_cover:
          service: cover.close_cover
          data: {}
          target:
            entity_id: cover.esszimmerwestrechts
        close_cover:
          service: cover.open_cover
          data: {}
          target:
            entity_id: cover.esszimmerwestrechts
        stop_cover:
          service: cover.stop_cover
          data: {}
          target:
            entity_id: cover.esszimmerwestrechts
        set_cover_position:
          service: cover.set_cover_position
          data:
            position: "{{100-position}}"
            entity_id: cover.esszimmerwestrechts
        unique_id: 0fd817ec-b03b-47c9-8b1c-d873433898e7

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

Hast Du die Template Konfiguration Neu geladen?

Entwicklungswerkzeuge → YAML
Zuerst die Konfiguration prüfen. Wenn keine Fehler die Template Entitäten neu Laden.

Gruß
Osorkon

1 „Gefällt mir“

schreibe hinter den “friendly_name” ebenfalls noch neu. Mit deiner jetzigen Einstellung sollte die neu Entität nämlich so aussehen (zwei Mal der gleiche “friendly name” vorliegen):
image

Ja, das habe ich gemacht. Einen Neustart muss ja nicht sein, oder?

Meinst Du das so?

cover:
  - platform: template
    covers:
      rollladen_esszimmer_rechts_neu:
        friendly_name: "Esszimmer West Rechts neu"
        position_template: "{{ 100 - state_attr('cover.esszimmerwestrechts', 'current_position') | int(100) }}"
        open_cover:
          service: cover.close_cover
          data: {}
          target:
            entity_id: cover.esszimmerwestrechts
        close_cover:
          service: cover.open_cover
          data: {}
          target:
            entity_id: cover.esszimmerwestrechts
        stop_cover:
          service: cover.stop_cover
          data: {}
          target:
            entity_id: cover.esszimmerwestrechts
        set_cover_position:
          service: cover.set_cover_position
          data:
            position: "{{100-position}}"
            entity_id: cover.esszimmerwestrechts
        unique_id: 0fd817ec-b03b-47c9-8b1c-d873433898e7

Hier sind noch die Status-Attribute der Original-Entität. Vielleicht hilft das.

current_position: 100
interface_id: CCU3-BidCos-RF
address: LEQ0132877:1
model: HM-LC-Bl1PBU-FM
entity_type: custom
value_state: valid
friendly_name: EsszimmerWestRechts
supported_features: 15

:crayon:by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)

genau so meine ich es @home-assist-ab - du musst allerdings auf jeden Fall neu starten, so wie es @Osorkon geschrieben hat. Ohne das kann HA deine Änderung nicht kennen. Das gilt für alle Änderungen die du in den YAML-Dateien machst.

Wenn das Funktioniert, kannst du auch noch die Anzeigeart ändern, wenn du das benötigst - erstmal wäre aber die Frage, ob es nach einem Neustart läuft.

Neu Laden der Template Konfiguration reicht aus, wie oben beschrieben.
Ein Home Assistant Neustart ist nicht notwendig, schadet aber nicht, dabei werden halt alle Konfigurationen neu geladen.

BTW: Der Friendly Name ist egal, dieser Darf auch doppelt vorkommen.

Gruß
Osorkon

1 „Gefällt mir“

Der Neustart hat tatsächlich geholfen. Danke für eure Hilfe!

Das stimmt - ich mache das nur immer, damit ich die zu 100% auf den ersten Blick unterscheiden kann.

@home-assist-ab solltest du das Icon noch ändern wollen, kannst du unter dem friendly_name noch die “device_class” einfügen.
Eine Übersicht findest du hier: https://www.home-assistant.io/integrations/cover/

Meine “cover-Entitäten” sehen alle wie in diesem Beispiel aus:

friendly_name: "Esszimmer West Rechts neu"
device_class: shutter

Sorry @Osorkon, dass ich immer so halb dazwischen gepostet habe und es damit wahrscheinlich komplizierter wurde als es hätte sein müssen.

Die Device Class kann man bequem in der GUI einstellen. Genau so wie den Friendly Namen und die Entity-ID oder das Symbol.
Zu diesem Zweck hat er ja die Unique ID verwendet. :wink:

Gruß
Osorkon

1 „Gefällt mir“

Dass das logischerweise auch für solche Helfer aus der Config geht, hatte ich bis dato noch nicht auf dem Schirm. Da habe ich auch wieder etwas dazu gelernt. Vielen Dank @Osorkon =)

Die Device Class auf Rollladen zu stellen, sieht wirklich viel besser aus.
Danke für den Tipp!

Moin,

als HAC Neuling mit eher geringen Programmierfähigkeiten stolpere ich natürlich als erstes bei der Einrichtung von mehreren Rolläden, die bisher unter Elesion liefen. Diese habe ich inzwischen in Tuya überführt und Tuya in HAC integriert. Die Rolläden zeigen in HAC die bekannte Thematik mit der vertauschten Laufrichtung.
Die hier gezeigten Vorschläge habe ich kopiert und mit meinen Geräten-/Entitätsnamen versehen. Dabei habe ich auch die meiner Meinung nach möglichen Alternativbezeichnungen getestet.
Die aktuelle unten gezeigte Konfiguration legt auf jeden Fall eine neue Entität an, die genau das gewünschte Ergebnis zeigt. Ein neues virtuelles Gerät wird nicht erzeugt oder ich finde es nicht ;-). Die Steuerung funktioniert jedoch wie gewünscht. Dafür schon mal ein herzliches Dankeschön in die Runde.

Noch nicht klar ist mir, wie ich das für alle 6 Rolläden umsetze. Einfach eine weitere Datei mit den Daten für Rolladen2 anfügen funktioniert nicht, ich teste gerade die Variante, den neuen Datensatz mit cover2 zu benennen.

Ausgelesenen Daten des Testobjektes:

rolladen_gast_zx_5082_3_vorhang
Gerätename: Rolladen Gast ZX-5082 3
Entitäts-ID: cover.rolladen_gast_zx_5082_3_vorhang_2
device_id: 63c64ede24ded2e3b9c7d3e6e333d798
entity_id: 443cbe762911cd0645996e062936eb7e
#Rolladen Inverter-Gast-Start
cover:
  - platform: template
    covers:
      rolladen_gast_zx_5082_3_vorhang_2:
        friendly_name: "rolladen_gast_zx_5082_3_vorhang_2"
        position_template: "{{ 100 - state_attr('cover.rolladen_gast_zx_5082_3_vorhang_2', 'current_position') | int(100) }}"
        open_cover:
          service: cover.close_cover
          data: {}
          target:
            entity_id: cover.rolladen_gast_zx_5082_3_vorhang_2
        close_cover:
          service: cover.open_cover
          data: {}
          target:
            entity_id: cover.rolladen_gast_zx_5082_3_vorhang_2
        stop_cover:
          service: cover.stop_cover
          data: {}
          target:
            entity_id: cover.rolladen_gast_zx_5082_3_vorhang_2
        set_cover_position:
          service: cover.set_cover_position
          data:
            position: "{{100-position}}"
            entity_id: cover.rolladen_gast_zx_5082_3_vorhang_2
        unique_id: 1234567890rollogast
#Rolladen Inverter Ende

Zusatzfrage: Können auch mehrere Rolläden in diesem Skript zusammengefasst werden oder besser jeweils einzeln?

Gruß
Fred-A

Kurzer Nachtrag:
Inzwischen habe ich mein Problem auch gelöst, indem ich die Steuerungsfunktionen für alle Rolläden der Reihe nach ins Skript eingefügt habe. So funktioniert es bei mir jetzt anstandslos. Ist vielleicht nicht sonderlich elegant, aber damit kann ich leben :slight_smile:

#Rolladen Inverter-Start
cover:
  - platform: template
  -     covers:  
      rolladen_gast_zx_5082_3_vorhang_2:
        friendly_name: "rolladen_gast_inv"
        position_template: "{{ 100 - state_attr('cover.rolladen_gast_zx_5082_3_vorhang_2', 'current_position') | int(100) }}"
        open_cover:
          service: cover.close_cover
          data: {}
          target:
            entity_id: cover.rolladen_gast_zx_5082_3_vorhang_2
        close_cover:
          service: cover.open_cover
          data: {}
          target:
            entity_id: cover.rolladen_gast_zx_5082_3_vorhang_2
        stop_cover:
          service: cover.stop_cover
          data: {}
          target:
            entity_id: cover.rolladen_gast_zx_5082_3_vorhang_2
        set_cover_position:
          service: cover.set_cover_position
          data:
            position: "{{100-position}}"
            entity_id: cover.rolladen_gast_zx_5082_3_vorhang_2
        unique_id: 1234567890rollogast
      rolladen_schreibtisch_zx_5082_4_vorhang:
        friendly_name: "rolladen schreibtisch-inv"
        position_template: "{{ 100 - state_attr('cover.rolladen_schreibtisch_zx_5082_4_vorhang', 'current_position') | int(100) }}"
        open_cover:
          service: cover.close_cover
          data: {}
          target:
            entity_id: cover.rolladen_schreibtisch_zx_5082_4_vorhang
        close_cover:
          service: cover.open_cover
          data: {}
          target:
            entity_id: cover.rolladen_schreibtisch_zx_5082_4_vorhang
        stop_cover:
          service: cover.stop_cover
          data: {}
          target:
            entity_id: cover.rolladen_schreibtisch_zx_5082_4_vorhang
        set_cover_position:
          service: cover.set_cover_position
          data:
            position: "{{100-position}}"
            entity_id: cover.rolladen_schreibtisch_zx_5082_4_vorhang
        unique_id: 1234567890rolloschreibtisch
#Rolladen Inverter-Ende

Gruß
Fred-A