Button als Taster (Script nicht oder korrekt abbrechen)

aula02

New member
Hallo zusammen,

bin ganz neu bei Home Assitant, daher gehe ich das Thema warscheinlich falsch an, aber:

Ich habe eine schaltbare Steckdose. Mit der möchte ich ein Gerät einschalten und für eine Zeit "X" laufen lassen, danach soll das Gerät ausschalten. Dafür habe ich ein "Scripts.yaml" geschrieben und einen Button auf dem Dashboard hinterlegt, der das Script "script.geraetetimer" startet.

Scripts.yasml:
geraetetimer:
alias:
[...]
# schaltbare Steckdose auf ON
service: switch.turn_on
[...]
# Wartezeit X in Minuten
- delay: minutes: X
[...]
# schaltbare Steckdose auf OFF
service: switch.turn_off
[...]

Funktioniert wie es soll... ABER: wenn ich den Button während dem "delay" erneut drücke (und damit deaktiviere), dann beendet sich das Script und das Gerät bleibt dauerhaft an, der "switch.turn_off" wird nicht mehr ausgeführt. Daher wäre ein "Taster" gut, den man nur drücken könnte und das Script läuft "unaufhaltsam" durch. Alternativ natürlich: wenn der Button wieder auf "OFF" gesetzt wird, müsste auch der Switch auf OFF schalten.

Konfiguration:
Raspi Bullseye
Docker
HASS unter Docker
Mosquitto unter Docker
Tasmota-Steckdose

Problem bei Docker ist ja zudem, dass nicht alle Funktionaliatäten von HASS zur Verfügung stehen. Und damit fehlt mir evtl. die Übersicht, was denn möglich wäre... z.B. eine Automatisierung als Reaktion auf den oben genannten Button mit Wechsel nach OFF.

Da ich wirklich ein absoluter Neuling bin: bin dankbar für einen Lösungsansatz mit Beschreibung, mit 2 oder 3 Stichpunkten werde ich wohl leider nicht auskommen!

Danke und Gruß
Au La (02)
 
Mir fällt ein:
Automation zum Ausschalten, als Auslöser Gerät ist an seit xxx
oder als Auslöser einen Helfer Typ Timer, den du mit dem Button startest.
 
ich würde das mit einem Timer machen

YAML:
timer:
  timer1:
    name: "timer1"
    # 5 Minuten
    duration: '00:05:00'

dann eine Automation zum Einschalten, wo das Gerät ein und der Timer gestartet wird.

YAML:
alias: an
description: ...
trigger:
  ...
condition: []
action:
  - service: switch.turn_on
    data: {}
    target:
      entity_id:
        - ...
  - service: timer.start
    data: {}
    target:
      entity_id: timer.timer1
mode: single

Und eine Automation zum Ausschalten, wo das Gerät ausgeschalten wird, wenn der Timer abgelaufen ist.

YAML:
alias: aus
description: ""
trigger:
  - platform: event
    event_type: timer.finished
    event_data:
      entity_id: timer.timer1
action:
  - service: switch.turn_off
    data: {}
    target:
      entity_id:
        ...
mode: single
 
Zuletzt bearbeitet:
Hallo u5zzug,
Hallo Steevee,

danke für den Tip! Als Anfänger in HomeAssitant habe ich einfach (noch) kein Gefühl, welches der vielen Werkzeuge wann sinnvoll einzusetzen ist (wobei ich sicherlich nur einen sehr eingeschränkten Überblick habe, was es sonst noch alles gibt). Ich wollte die Aktion immer direkt am "Button" anhängen, aber über die Automatisierung ist das eine super-einfache Sache.

Der Button schaltet die Steckdose jetzt einfach normal "on" und "off". Und wenn ich nicht ausschalte, dann kommt der Timer zum Zug. Guter Ausgangspunkt für mich zum weiterbauen und experementieren.

Gruß
Au La (02)



 
kommt drauf an, was du machen willst. Ob das aus oder das an Vorrang hat. Bei der Treppenhausschaltung will man ja z.B. wenn man nochmal drückt, die Zeit von vorne losgeht. Vieleicht ist es auch andersrum: man hat im Timer nur die Maximallaufzeit, schaltet aber normalerweise mit dem Schalter wieder aus.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
7.016
Beiträge
68.293
Mitglieder
7.397
Neuestes Mitglied
Laurin
Zurück
Oben