Smartplug / Sleeptimer

Hallo zusammen,

wahrscheinlich bin ich einfach nur Blind und es gibt schon zig Tutorials hier. Aber ich suche Hilfe für folgende Automation.

Ich würde gern eine Smartplug nach einer von mir auswählbaren Zeit zwischen 30min - 180min ausschalten lassen. Es geht mir dabei um so eine Art “Sleeptimer”, habe keine Lust immer die Fernbedienung zu bemühen mit ihren zig Untermenus, da der TV ansonsten über einen TV Stick genutzt wird, dieser aber leider keine Sleeptimer Funktion besitzt.

Wie könnte ich das umsetzen. Gibt es dazu schon evtl einen Blueprint, oder könnte mich jemand Step by Step zum Ergebnis führen, bin aktuell noch recht überfordert mit dem kompletten anlegen solcher Automationen, wollte aber klein anfangen :slight_smile:

Vielen lieben Dank!

cheers

Ich würde dazu einen Timer-Helfer anlegen und mir diesen ins Dashboard holen.

In einer Automatisierung würde ich als Trigger den Timer setzen und als Aktion, dass die Smartplug beim Beenden des Timers ausschaltet.

triggers:
  - trigger: state
    entity_id:
      - timer.xyz
    to: idle
    from: active
conditions: []
actions:
  ....

Dann hat er aber keine flexible Zeiteinstellung. Ich würde einen input_number-Helfer in 15er oder 30er Schritten anlegen und als Verzögerung verwenden:

actions:
- delay:
      minutes: "{{ states('input_number.xxxxxxxxx') |int(30) }}"
- action: homeassistant.turn_off
  target:
    entity_id: media_player.xxxxxxx

Stimmt. Dann würde ich mir eher 2-3 Buttons ins Dashboard holen, z. B. für 15, 30, 45 Min.

show_name: true
show_icon: false
type: button
tap_action:
  action: perform-action
  perform_action: timer.start
  target:
    entity_id:
      - timer.xyz
  data:
    duration: "00:15:00"
entity: timer.xyz
icon: mdi:timer
show_state: false
name: 15 Min.
icon_height: 30px
grid_options:
  columns: 3
  rows: 1

Oder die Data Duration direkt mit einem input_number-Helfer verknüpfen und nur den ins Dashboard holen

Die letzte Lösung gefällt mir ganz gut sagen wir 4 Buttons mit 30, 60, 120 und 180min. Einen Timer Helfer hab ich schon angelegt.

timer.sleep_timer

Die zu steuernde Smartplug nennt sich

switch.fernseher_schlafzimmer

Wie verfahre ich nun weiter? Kann ich einfach den Code oben nutzen und mir damit meine Buttons anlegen? Das wäre ja überragend einfacher als alles was ich bisher gefunden habe im Netz…

Vielen Danke euch schon einmal. :slight_smile:

Versuche es einfach. Ich würde die 4 Buttons anlegen und ggf. auch den Timer ins Dashboard holen, damit du erstmal siehst was passiert.

Zusätzlich natürlich die Automatisierung, die abfragt ob der Timer von active zu idle wechselt, um dann das Plug auszuschalten.

Habe nun schon einmal die 4 Buttons angelegt und auf meinen Timer umbenannt also kein .xyz mehr :wink:

Edit:

Nun hapert es aber schon bei der Automation. Was muss ich da eintragen als Trigger? (Sobald). Denn der Timer soll ja nur starten wenn ich ihn auslöse und nicht direkt loslegen bei eingeschalteter Steckdose :confused:

Dann sollte mit den Buttons der Timer bereits starten. Wenn das funktioniert, teste die Automatisierung.

Das tun sie. Aber wie verknüpfe ich das ganz nun mit der Steckdose.? Siehe mein Edit oben.

Trigger siehe

Du fragst nur ab ob der Timer zuende ist. Der Start ist ja quasi egal.

also lasse ich den trigger einfach leer? ok ich teste mal :slight_smile:

Nein. Ich habe den Trigger doch oben gepostet

Edit:
Noch mal zum Verständnis.

Zum Starten des Timers benötigst du keine Automatisierung. Da nutzt du die Buttons.

Bei Beenden des Timers greift die Automatisierung mit dem Trigger active zu idle.

alias: Sleep Timer
description: ""
triggers:
  - trigger: state
    entity_id:
      - timer.sleep_timer
    to: idle
    from: active
conditions: []
actions: []
conditions: []
actions: []
mode: single

Leider bekomme ich so direkt einen parsing Error. Hätte gedacht ich speicher das ersteinmal so und mache im UI anstelle der YAML weiter. das geht leider nicht :confused:

Und ich sehe immer noch keine Verbindung woher die Automation/Timer nun weiß welche steckdose er schalten soll.

condition und action dürfen nicht doppelt, also 1x löschen. Und dann in den visuellen Modus wechsel und dort bei “Dann” das ausschalten der Steckdose auswählen.

1 „Gefällt mir“

Ich glaube ich habe es nun :slight_smile:

Macht es einen Unterschied ob ich die Entität oder ein Gerät ausschalten lasse?

EDIT: Es funktioniert einwandfrei, vielen vielen Dank! Nun mache ich mich daran das ganze auf dem Dash noch ein wenig hübscher zu verpacken :blush:

1 „Gefällt mir“

In der Theorie nicht. Ich würde aber immer die Entität nehmen. Warum? Wenn der Switch mal defekt ist und du eine neue Steckdose kaufst, bekommt diese immer eine neue ID (device_id). Wenn du sie aber wieder genauso nennst, wie die alte, bleibt die entity_id gleich und alle Automatisierungen funktionieren noch.

2 „Gefällt mir“

Dann werde ich die Entität nutzen :+1:

Gibt es noch eine Möglichkeit die Buttons nun in den Timer einzubauen, also dort in den Footer? Leider funktioniert das einfach kopieren des Codes dort rein nicht.

Edit: Und was mir noch aufgefallen ist, wenn ich den Timer starte, dann aber abbreche oder beende schaltet sich die Steckdose auch aus. Kann man das noch irgendwie fixen?

Auf die schnelle würde ich mir ein Script anlegen und dort als Aktion automation.turn_off und timer.stop setzen, anschließend ein "Warte 5 Sekunden und dann mit automation.turn_on die Automatisierung wieder aktivieren. Und dann einen zusätzlichen Button, der das Script auslöst.

show_name: false
show_icon: true
type: button
icon_height: 30px
icon: mdi:stop
show_state: false
grid_options:
  columns: 3
  rows: 1
entity: script.sleeptimer_stop
tap_action:
  action: perform-action
  perform_action: script.sleeptimer_stop
  target: {}
name: " "
1 „Gefällt mir“

Um zu vermeiden, dass sich der TV ausschaltet, wenn der Timer abgebrochen wird, kann man alternativ einen event-Trigger benutzen:


  - trigger: event
    event_type: timer.finished
    event_data:
      entity_id: timer.DEINTIMER

Im Gegensatz dazu tut der Timer bei „beenden“ eben genau das, was er soll. Mit anderen Worten: Immer „Timer abbrechen“ wählen, wenn der TV anbleiben soll.

Dann reden wir jetzt aber nicht mehr über eine type: button-Karte, oder?

Super danke dir. Den Eventtrigger nutze ich dann anstelle des “state” Triggers von oben?

Nein ich denke nicht das es dann noch eine Button Karte ist. Sondern halt die Karte die für den Timer erstellt worden ist, diese bietet mir ja anscheinend auch die Möglichkeit es kompakter dort unterzubringen.