Hilfe bei Automatisation

Byllyy

New member
Hallo zusammen,
als Anfänger habe ich Probleme beim Erstellen einer Automatisation für folgendes Geschehen:

Wenn der „Eingang1“ in den Zustand „Ein“ geht, soll ein Shelly(kann toggle) eine Lampe für 30 Sekunden blinken lassen.
Das Blinken soll aber sofort enden wenn die Taste (Sonoff Taster) gedrückt wird.
Wenn die Taste aber nicht gedrückt wird soll nach Ende der Zeit ein „Ausgang1“ eingeschaltet werden.

Ich hoffe für dieses komplexe Geschehen gibt es eine Lösung, im Forum bin ich bisher nur Stückweise weiter gekommen.
Vielen Dank,
Byllyy
 
Ich denke, das kann man mit Bordmitteln hin bekommen.
Auslöser Eingang 1, das bekommst Du sicher alleine hin.
Im "Dann mache" Zweig folgendes.
Eine WENN DANN Abfrage
- WENN Taste = Off, DANN schalte Shelly ein, SONST schalte Shelly aus.
DELAY 1 Sekunde.
- Wenn Taste = OFF, DANN schalte Shelly aus.
DELAY 1 Sekunde.

Das ganze dann 15 mal, weil ja 30 Sekunden blinken.
Das blinken endet, sobald der Taster gedrückt wurde bzw. innerhalb der nächsten Sekunde. Da dann alle Bedingungen nicht mehr zutreffen, wird auch nichts mehr gemacht.
Am ende dann noch eine WENN DANN
- WENN Taste = OFF, DANN Shelly = ein.

Hab es jetzt nicht getestet, nu mal eben aus dem Kopf, aber sollte eigentlich klappen.
 
Hallo RudiP,
vielen Dank für deine schnelle Hilfe.
Nach einigen Fehlversuchen habe ich es nach deiner Anleitung hinbekommen (y).
Durch solche Anleitungen lerne ich immer wieder etwas dazu und komme weiter.
LG, Byllyy
 
Super. Und ja, so habe ich auch angefangen, zu lernen. Einer schlägt einem das Brett vor Kopf, quasi der erste Anstupser und dann lernt man Stück für Stück dazu und es macht einfach nur Spaß.

Wäre klasse, wenn Du später mal deinen Code hier dazu schreiben könntest, damit andere auch davon lernen können.

Und wenn Du wieder ein Problem hast, einfach melden.
 
Hier zeige ich den etwas angepassten Code der zur Lösung führte:
Ich finde Ihn eigentlich zu lang und komplex ( eigentlich nur wegen dem Blinken)


YAML:
alias: Testforum2
description: ""
trigger:
  - platform: state
    entity_id:
      - switch.dingtian_relay41679_switch20
    from: "off"
    to: "on"
condition: []
action:
  - if:
      - condition: state
        entity_id: switch.dingtian_relay41679_switch21
        state: "off"
    then:
      - service: switch.turn_on
        target:
          entity_id: switch.shellyflur
        data: {}
    else:
      - service: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.shellyflur
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - if:
      - condition: state
        entity_id: switch.dingtian_relay41679_switch21
        state: "off"
    then:
      - service: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.shellyflur
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - if:
      - condition: state
        entity_id: switch.dingtian_relay41679_switch21
        state: "off"
    then:
      - service: switch.turn_on
        target:
          entity_id: switch.shellyflur
        data: {}
    else:
      - service: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.shellyflur
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - if:
      - condition: state
        entity_id: switch.dingtian_relay41679_switch21
        state: "off"
    then:
      - service: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.shellyflur
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - if:
      - condition: state
        entity_id: switch.dingtian_relay41679_switch21
        state: "off"
    then:
      - service: switch.turn_on
        target:
          entity_id: switch.shellyflur
        data: {}
    else:
      - service: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.shellyflur
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - if:
      - condition: state
        entity_id: switch.dingtian_relay41679_switch21
        state: "off"
    then:
      - service: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.shellyflur
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - if:
      - condition: state
        entity_id: switch.dingtian_relay41679_switch21
        state: "off"
    then:
      - service: switch.turn_on
        target:
          entity_id: switch.shellyflur
        data: {}
    else:
      - service: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.shellyflur
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - if:
      - condition: state
        entity_id: switch.dingtian_relay41679_switch21
        state: "off"
    then:
      - service: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.shellyflur
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - if:
      - condition: state
        entity_id: switch.dingtian_relay41679_switch21
        state: "off"
    then:
      - service: switch.turn_on
        target:
          entity_id: switch.shellyflur
        data: {}
    else:
      - service: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.shellyflur
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - if:
      - condition: state
        entity_id: switch.dingtian_relay41679_switch21
        state: "off"
    then:
      - service: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.shellyflur
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - if:
      - condition: state
        entity_id: switch.dingtian_relay41679_switch21
        state: "off"
    then:
      - service: switch.turn_on
        target:
          entity_id: switch.shellyflur
        data: {}
    else:
      - service: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.shellyflur
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - if:
      - condition: state
        entity_id: switch.dingtian_relay41679_switch21
        state: "off"
    then:
      - service: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.shellyflur
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - if:
      - condition: state
        entity_id: switch.dingtian_relay41679_switch21
        state: "off"
    then:
      - service: switch.turn_on
        target:
          entity_id: switch.shellyflur
        data: {}
    else:
      - service: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.shellyflur
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - if:
      - condition: state
        entity_id: switch.dingtian_relay41679_switch21
        state: "off"
    then:
      - service: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.shellyflur
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - if:
      - condition: state
        entity_id: switch.dingtian_relay41679_switch21
        state: "off"
    then:
      - service: switch.turn_on
        target:
          entity_id: switch.shellyflur
        data: {}
    else:
      - service: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.shellyflur
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - if:
      - condition: state
        entity_id: switch.dingtian_relay41679_switch21
        state: "off"
    then:
      - service: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.shellyflur
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - if:
      - condition: state
        entity_id: switch.dingtian_relay41679_switch21
        state: "off"
    then:
      - service: switch.turn_on
        target:
          entity_id: switch.shellyflur
        data: {}
    else:
      - service: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.shellyflur
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - if:
      - condition: state
        entity_id: switch.dingtian_relay41679_switch21
        state: "off"
    then:
      - service: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.shellyflur
  - service: switch.turn_off
    metadata: {}
    data: {}
    target:
      entity_id: switch.shellyflur
  - if:
      - condition: state
        entity_id: switch.dingtian_relay41679_switch21
        state: "off"
    then:
      - service: switch.turn_on
        data: {}
        target:
          entity_id: switch.dingtian_relay41679_switch23
    else:
      - service: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.shellyflur
mode: single
 
Ja, lang ist er. Ist halt der Preis, den man fürs Blinken bezahlen muß.
Du könntest die Blinkfrequenz reduzieren und damit ein paar Durchläufe einsparen.
Aber im Endeffekt kann es ja erst mal egal sein, wie lange der Code ist, so lange er tut, was er soll oder jemand ne bessere Lösung aufzeigt.
 
Die ESPHome Lichtkomponente kann selbstständig blinken: https://esphome.io/components/light/#light-effects und wenn du sowieso lötest, sollte es kein Problem sein, 2 wled/neopixel anzuschließen. den resultierenden LED"streifen" kann man partitionieren und die Teile getrennt ansteuern https://esphome.io/components/light/partition.html

YAML:
light:
# Notify lights
  - platform: esp32_rmt_led_strip
    id: fastled_notify
    name: "Fastled Notify Light"
    pin: GPIO16
    num_leds: 2
    rmt_channel: 0
    rgb_order: GRB
    chipset: ws2812
    effects:
      - pulse:
          name: "Pulse"
          transition_length: 0.2s
          update_interval: 0.5s       
      - pulse:
          name: "Fast Pulse"
          transition_length: 0.1s
          update_interval: 0.2s
      - pulse:
          name: "Slow Pulse"
          # transition_length: 1s      # defaults to 1s
          update_interval: 2s
  - platform: partition
    name: "Fastled Notify - Batterie Handy RR"
    restore_mode: ALWAYS_OFF
    segments:
    - id: fastled_notify
      from: 0
      to: 0
    effects:
      - pulse:
      - pulse:
          name: "Fast Pulse"
          transition_length: 0.2s
          update_interval: 0.5s
      - pulse:
          name: "Slow Pulse"
          # transition_length: 1s      # defaults to 1s
          update_interval: 2s     
  - platform: partition
    name: "Fastled Notify - Sensor 2"
    restore_mode: ALWAYS_OFF
    segments:
      - id: fastled_notify
        from: 1
        to: 1
    effects:
      - pulse:
      - pulse:
          name: "Fast Pulse"
          transition_length: 0.5s
          update_interval: 1s
      - pulse:
          name: "Slow Pulse"
          # transition_length: 1s      # defaults to 1s
          update_interval: 2s
vielleicht kann man die Effektdefinition auch weglassen, beim Service Licht in HA gibts auch ne erweiterte Funktion flash long/short.
 
Zurück
Oben