Jalousie mit Fernbedienung steuern - 4 getrennte Automatisierungen vereinfachen

Hi, ich hab ne Frage zur Vereinfachung von Automationen. Ich brauche aktuell 4 Automationen für die Fernsteuerung einer Jalousie mit einem Ikea Dimmer Switch.

  1. Automation: Button 1 > Jalousie öffnen, wenn sie nicht schon läuft
  2. Automation: Button 1 > Jalousie-Bewegung stoppen, wenn sie gerade läuft
  3. Automation: Button 2 > Jalousie schliessen, wenn sie nicht schon läuft
  4. Automation: Button 2 > Jalousie-Bewegung stoppen, wenn sie gerade läuft

Das funktioniert super, aber es ist recht viel geklicke und fühlt sich einfach etwas albern an. Wie löst ihr so etwas?

Best Grüße
Mario

(und Hi an alle hier im Forum - ich kannte den YT channel schon länger, aber das Forum bislang noch nicht.)

Jeden einzelnen Auslöser einer Aktion zuzuweisen, darum kommst Du nicht herum.
Allerdings kannst Du alles in eine Automatisierung packen.

Den jeweiligen Auslöser eine ID verpassen und als Aktion dann Baustein → Auswählen

Für jeden Auslöser eine Option mit der Bedingung ausgelöst durch.

Oder Du schaust nach einem passenden Blueprint für den Schalter, das Prinzip ist aber das gleiche.

Gruß
Osorkon

1 „Gefällt mir“

Hallo Osorkon und danke für die schnelle Antwort. Ich hab das über das UI-Animations-Tool zusammengeklickt. Ich bin Webentwickler, aber das Skripten in Yaml fand ich immer etwas eigenartig, aber vielleicht muss ich das einfach langsam mal nutzen :slight_smile:

Schau mal - diese Automation kümmert sich bei mir um die Jalousie. Gesteuert wird dabei über einen Ikea-Button.

Die Lichtsteuerung kannst du dabei natürlich außer Acht lassen.

Kurz zur Erklärung:

  • Über die Buttons werden die Trigger mit den IDs Rollade_Senken und Rollade_Heben “erzeugt”
  • Zur Verarbeitung werden wird
    • bei Rollade_Senken gecheckt, ob sich der Rolladen aktuell schon senkt - wenn ja, wird gestoppt, ansonsten wird das Senken gestartet
    • bei Rollade_heben gecheckt, ob sich der Rolladen aktuell schon hebt - wenn ja, wird gestoppt, ansonsten wird das Heben gestartet

So kann mit den Links/Heller und Rechts/Dunkler Buttons die Fahrt der Rollade gestartet oder aber bei Aktivität jederzeit auch gestoppt werden.

alias: "BTN: Büro"
description: ""
trigger:
  - platform: device
    domain: mqtt
    device_id: dd8cfe7a8b5a3ce0b2d572a438dc9fd1
    type: action
    subtype: toggle
    id: Licht_umschalten
  - platform: device
    domain: mqtt
    device_id: dd8cfe7a8b5a3ce0b2d572a438dc9fd1
    type: action
    subtype: arrow_right_click
    discovery_id: 0x5c0272fffe9978bf action_arrow_right_click
    id: Rollade_Senken
    enabled: true
  - platform: device
    domain: mqtt
    device_id: dd8cfe7a8b5a3ce0b2d572a438dc9fd1
    type: action
    subtype: brightness_down_click
    discovery_id: 0x5c0272fffe9978bf action_brightness_down_click
    id: Rollade_Senken
  - platform: device
    domain: mqtt
    device_id: dd8cfe7a8b5a3ce0b2d572a438dc9fd1
    type: action
    subtype: arrow_left_click
    discovery_id: 0x5c0272fffe9978bf action_arrow_left_click
    id: Rollade_Heben
  - platform: device
    domain: mqtt
    device_id: dd8cfe7a8b5a3ce0b2d572a438dc9fd1
    type: action
    subtype: brightness_up_click
    discovery_id: 0x5c0272fffe9978bf action_brightness_up_click
    id: Rollade_Heben
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Licht_umschalten
        sequence:
          - metadata: {}
            data: {}
            target:
              entity_id: light.licht_buero_klein
            action: light.toggle
      - conditions:
          - condition: trigger
            id:
              - Rollade_Senken
        sequence:
          - if:
              - condition: state
                entity_id: cover.crt_buero
                state: closing
            then:
              - action: cover.stop_cover
                target:
                  entity_id:
                    - cover.crt_buero
                data: {}
            else:
              - action: cover.close_cover
                target:
                  entity_id:
                    - cover.crt_buero
                data: {}
      - conditions:
          - condition: trigger
            id:
              - Rollade_Heben
        sequence:
          - if:
              - condition: state
                entity_id: cover.crt_buero
                state: opening
            then:
              - action: cover.stop_cover
                target:
                  entity_id:
                    - cover.crt_buero
                data: {}
            else:
              - action: cover.open_cover
                target:
                  entity_id:
                    - cover.crt_buero
                data: {}
mode: single

:slight_smile: was ja schon genau das ist, was ich brauche. Genau den Button hab ich sogar auch noch hier liegen. Dann muss ich das nur noch für ZHA anpassen. Damit hast du es mir schon echt leicht gemacht. Danke.

Wie macht ihr das mit den Codes? Sind das bei euch einzelne Dateien, die ihr in einem Editor bearbeitet oder macht ihr das in Home Assistant direkt - oder über das vscode plugin?

Das ist eine Standardfunktion von HA - du kannst in jeder Automatsierung die Ansicht auf YAML umschalten:

Fast noch wichtiger ist aber, dass du in der YAML-Ansicht dann auch wieder zurück in den visuellen Editor kommst:

Damit kann du dann im HA wieder per Drag & Drop weiterarbeiten.

Ich habe die Automatisierung nun nochmals etwas modifiziert. Nun kann die Fahrt der Rollade (egal ob auf oder ab) jeweils mit allen Buttons gestoppt werden. Bislang konnte die öffnen Fahrt auch nur mit dem öffnen Button gestoppt werden bzw. vis-a-vers - das ist jetzt anders.

alias: "BTN: Büro"
description: ""
trigger:
  - platform: device
    domain: mqtt
    device_id: dd8cfe7a8b5a3ce0b2d572a438dc9fd1
    type: action
    subtype: toggle
    id: Licht_umschalten
  - platform: device
    domain: mqtt
    device_id: dd8cfe7a8b5a3ce0b2d572a438dc9fd1
    type: action
    subtype: arrow_right_click
    discovery_id: 0x5c0272fffe9978bf action_arrow_right_click
    id: Rollade_Senken
    enabled: true
  - platform: device
    domain: mqtt
    device_id: dd8cfe7a8b5a3ce0b2d572a438dc9fd1
    type: action
    subtype: brightness_down_click
    id: Rollade_Senken
  - platform: device
    domain: mqtt
    device_id: dd8cfe7a8b5a3ce0b2d572a438dc9fd1
    type: action
    subtype: arrow_left_click
    discovery_id: 0x5c0272fffe9978bf action_arrow_left_click
    id: Rollade_Heben
  - platform: device
    domain: mqtt
    device_id: dd8cfe7a8b5a3ce0b2d572a438dc9fd1
    type: action
    subtype: brightness_up_click
    discovery_id: 0x5c0272fffe9978bf action_brightness_up_click
    id: Rollade_Heben
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Licht_umschalten
        sequence:
          - metadata: {}
            data: {}
            target:
              entity_id: light.licht_buero_klein
            action: light.toggle
      - conditions:
          - condition: trigger
            id:
              - Rollade_Senken
        sequence:
          - if:
              - condition: or
                conditions:
                  - condition: state
                    entity_id: cover.crt_buero
                    state: closing
                  - condition: state
                    entity_id: cover.crt_buero
                    state: opening
            then:
              - action: cover.stop_cover
                target:
                  entity_id:
                    - cover.crt_buero
                data: {}
            else:
              - action: cover.close_cover
                target:
                  entity_id:
                    - cover.crt_buero
                data: {}
      - conditions:
          - condition: trigger
            id:
              - Rollade_Heben
        sequence:
          - if:
              - condition: or
                conditions:
                  - condition: state
                    entity_id: cover.crt_buero
                    state: closing
                  - condition: state
                    entity_id: cover.crt_buero
                    state: opening
            then:
              - action: cover.stop_cover
                target:
                  entity_id:
                    - cover.crt_buero
                data: {}
            else:
              - action: cover.open_cover
                target:
                  entity_id:
                    - cover.crt_buero
                data: {}
mode: single
1 „Gefällt mir“

Kann der UI-Editor wirklich alles, was auch per yaml geht oder was passiert, wenn ich in yaml etwas scripte, was der UI Editor nicht kann, ich aber wieder zum visuellen Editor zurück schalte? Aber das kann ich auch einfach direkt mal testen - ich faules Ding :slight_smile:

Übrigens ging mir in deinem Beispiel, in erster Linie ein Licht auf, weil ich nicht wusste, dass man bei den Actions auch noch einmal conditions verwenden kann. Damit bekomme ich meine 4 Automation natürlich in eine. Nochmals Danke für deine Tips.

Dann wird eine Meldung angezeigt, dass der Code von der UI nicht unterstützt wird und für diesen Teil wird weiterhin YAML Code angezeigt.