Türöffnung http-Befehl Fehler

Ich habe eine Automatisierung erstellt, die unsere Haustüre öffnen soll wenn ich nach Hause komme. Die erste Variante funktioniert direkt ohne das ich etwas bestätigen muss. Also der Befehl zum öffnen des Relais wird ausgeführt. Nun habe ich es so umgestellt, das ich manuell die Tür öffnen muss per Actionable Notification. Das klappt aber leider nicht. Es wird aber genau der gleiche http-Befehl aufgerufen. Hat jemand eine Idee warum Variante 2 nicht funktioniert?

Variante 1 Öffnung automatisch:

alias: Tür automatisch öffnen
triggers:
  - entity_id: person.tom
    zone: zone.home
    event: enter
    trigger: zone
  - entity_id:
      - device_tracker.iphone_4
    to: home
    trigger: state
    from: null
conditions:
  - condition: state
    entity_id: device_tracker.iphone_4
    state: home
actions:
  - action: notify.mobile_app_iphone_4
    data:
      title: Tür öffnen
      message: Du bist zu Hause. Möchtest du die Tür öffnen?
      data:
        actions:
          - action: DOOR_UNLOCK
            title: Tür öffnen
  - action: rest_command.door_unlock
    data: {}
mode: single

In der congiguration.yaml steht der Befehl:

rest_command:
  door_unlock:
    url: 'http://192.168.1.110/fcgi/do?action=OpenDoor&UserName=admin&Password=admin&DoorNum=1'
    method: GET

Variante 2 mit Bestätigung als Button:

alias: Tür automatisch öffnen (mit Bestätigung)
description: Öffnet die Tür, wenn du nach Hause kommst und dein iPhone im WLAN ist, aber erst nach Bestätigung.
trigger:
  - platform: zone
    entity_id: person.tom
    zone: zone.home
    event: enter
  - platform: state
    entity_id: device_tracker.iphone_4
    to: "home"
condition:
  - condition: state
    entity_id: device_tracker.iphone_4
    state: "home"
action:
  - service: notify.mobile_app_iphone_4
    data:
      title: "Tür öffnen"
      message: "Du bist zu Hause. Möchtest du die Tür öffnen?"
      data:
        actions:
          - action: "DOOR_UNLOCK"
            title: "Tür öffnen"
mode: single

Hi xnetworkerx,

lies dir den Blogbeitrag von meinem Namensvetter nochmal genau durch. Dir fehlt der Part mit “warte auf einen Auslöser”.

VG
Namensvetter

Das hat keine Lösung gebracht.

alias: Tür automatisch öffnen (mit Bestätigung)
description: >-
  Öffnet die Tür, wenn du nach Hause kommst und dein iPhone im WLAN ist, aber
  erst nach Bestätigung.
triggers:
  - entity_id: person.heiko
    zone: zone.home
    event: enter
    trigger: zone
  - entity_id:
      - device_tracker.iphone_4
    to: home
    trigger: state
conditions:
  - condition: state
    state: home
    entity_id: device_tracker.iphone_4
actions:
  - data:
      title: Tür öffnen
      message: Du bist zu Hause. Möchtest du die Tür öffnen?
      data:
        actions:
          - action: DOOR_UNLOCK
            title: Tür öffnen
    action: notify.mobile_app_iphone_4
  - wait_for_trigger:
      - event_type: mobile_app_notification_action
        event_data:
          action: DOOR_UNLOCK
        trigger: event
    continue_on_timeout: false
    timeout:
      hours: 0
      minutes: 2
      seconds: 0
      milliseconds: 0
mode: single

Sieht aber erstmal grundlegend richtig aus. Was sagen die Traces?

Also deine Automation sollte so funktionieren, hatte ich gerade mal bei mir getestet. Könnte es sein, dass dein Timeout von 10 Sekunden in deinem Trace etwas kurz ist?

Jap, würde dir auch ein größeres Zeitfenster empfehlen. Und gerade zum Testen kann es hilfreich sein von Single mode auf Parallel zu stellen. Sonst musst du ja immer das Zeitfenster abwarten bis ein neuer Lauf gestartet werden kann.

Habe jetzt 10 Minuten eingestellt und auf Parallels umgestellt. Leider keine Änderung.

Dir fehlt halt auch die finale Action.^^

Sollte so aussehen im Trace:
image

Ist das nicht enthalten?

actions:
  - data:
      title: Tür öffnen
      message: Du bist zu Hause. Möchtest du die Tür öffnen?
      data:
        actions:
          - action: DOOR_UNLOCK
            title: Tür öffnen
    action: notify.mobile_app_iphone_4
  - wait_for_trigger:
      - event_type: mobile_app_notification_action
        event_data:
          action: DOOR_UNLOCK
        trigger: event
    continue_on_timeout: false
    timeout:
      hours: 0
      minutes: 10
      seconds: 0
      milliseconds: 0
mode: parallel

Äh, nein?!

Es fehlt noch:

  - action: <switch, oder button, etc.>
    target:
      entity_id: <deine tür entität>

Bzw. du hast ja im ersten Beitrag irgendeinen rest_command gebaut.

1 „Gefällt mir“

Stimmt. Das hat gefehlt. Danke

Problem wurde nicht ganz behoben. Jetzt ist es so, dass der Befehl zur Türöffnung trotzdem gegeben wird, auch wenn niemand die Taste zum öffnen angeklickt hat. WIe löse ich das?

:crayon:by HarryP: Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)

Mit continue_on_timeout: false passiert genau das nicht. Er läuft in den eingestellten timeout und führt die Aktion nicht mehr aus.

1 „Gefällt mir“