Aktion soll auf Handy-Nachricht folgen (cickable notification)

es ist je relativ einfach, als Ergebnis der angeklickten Handy-Nachricht eine URI zu öffnen, zB wird in diesem Beispiel die Einkaufsliste geöffnet.

actions:
  - action: notify.mobile_app_handy_he
    data:
      message: hier ist Deine Einkaufsliste ...
      data:
        actions:
          - action: URI
            title: ansehen
            uri: /todo?entity_id=todo.einkaufen
    enabled: true

ich möchte als Klick-Aktion aber etwas ausführen, Beispiel:

Der Trockner ist fertig.
Aktion:

  • ein Nachtlicht leuchtet in einer bestimmten Farbe
  • es wird eine Nachricht an das Handy meiner Frau geschickt mit
    einem entsprechenden Hinweis und einer Klick-Aktion …
    Wenn Sie diese Klick-Aktion ausführt, wird der Trockner als erledigt betrachtet und das Nachtlicht ausgeschaltet

action müsste also etwas anderes sein als eine URI
ist sowas möglich?

kann man dann analog für Spülmaschine, Waschmaschine, Posteingang, Müll-Ausgang etc. verwenden.

Hai hardy,

meinst Du sowas?

:thinking:

ja genau aber eben als action keine URI sondern zB
“schalte den Helfer XY um”

Ja, gibts doch, brauchts nur eine kleine Automation die als Trigger diesen Klick hat. Ich häng gleich noch ein Beispiel ran…

In der Doku gefunden:

Guck mal, ob was passendes für Dich dabei ist. :wink:

die docu habe ich gesehen, werde da aber nicht schlau draus …

Bei Android kann man nur URI eintragen:

Android requires setting the action to URI to use this key.

Man kann damit aber auch Sachen machen, z.B.:

- action: "URI"
  title: "View the sun"
  uri: "entityId:sun.sun"

URI-Values

Oder missverstehe ich Dich gerade? :thinking:

soweit ich das verstehe ist eine URI doch eine Seite am eigenen dashboard oder eine öffentliche URL zB Google.de aber keine Aktion, die ich ausführen kann.

Aaah, jetzt! klimper :laughing:

Ne, sollte auch gehen:

# inside a automation actions or script sequence
- alias: "Set up variables for the actions"
  variables:
    # Including an id in the action allows us to identify this script run
    # and not accidentally trigger for other notification actions
    action_open: "{{ 'OPEN_' ~ context.id }}"
    action_close: "{{ 'CLOSE_' ~ context.id }}"
- alias: "Ask to close or open the blinds"
  action: notify.mobile_app_<your_device>
  data:
    message: "The blinds are half-open. Do you want to adjust this?"
    data:
      actions:
        - action: "{{ action_open }}"
          title: Open
        - action: "{{ action_close }}"
          title: Close
- alias: "Wait for a response"
  wait_for_trigger:
    - platform: event
      event_type: mobile_app_notification_action
      event_data:
        # waiting for the specific action avoids accidentally continuing
        # for another script/automation's notification action
        action: "{{ action_open }}"
    - platform: event
      event_type: mobile_app_notification_action
      event_data:
        action: "{{ action_close }}"
- alias: "Perform the action"
  choose:
    - conditions: "{{ wait.trigger.event.data.action == action_open }}"
      sequence:
        - action: cover.open_cover
          target:
            entity_id: cover.some_cover
    - conditions: "{{ wait.trigger.event.data.action == action_close }}"
      sequence:
        - action: cover.close_cover
          target:
            entity_id: cover.some_cover

Findest Du dort:

building notification action scripts

Ich kann Dir nur leider gerade mit keinem eigenen Beispiel dienen. Ich bin außer Haus. :man_shrugging:

1 „Gefällt mir“

geht mir genauso, bin selbst auch im Urlaub, habe aber Fernzugriff.

Demnach gehen Actions nur mit einem Script und damit habe ich mich noch nicht befasst.

Ein Script ist wie eine Automation, nur ohne Trigger. Das kannst Du einfach aufrufen.

Ich bisher auch nur theoretisch :laughing:

HA.io → Scripts

Ich bin auf Arbeit. Und habe leider noch keinen Fernzugriff. :grimacing:

Ist aber in Arbeit. :wink:

kurz OT:
ich habe für Fernzugriff die (unsichere) quick & easy http Version laufen:
1.) FritzBox exponieren, entweder über myfritz von AVM oder selfhost.eu
2.) in der FritzBox den Port 8123 nach aussen freigeben
und das war’s auch schon.
oder wenn man es sicher haben will per VPN mit wireguard

Ich gönne nabu casa einen weiteren Nutzer ihrer Cloud. Ich muss es nur noch in HA freischalten. Das hab ich vor der Abreise (aus Unkenntnis) nicht gemacht. :grimacing:

zurück zum Thema…
ich habe ein script erstellt (nennt sich script.trockner_off).
wir bastel ich das jetzt in die Klick-Aktion der Benachrichtigung?

Bin auch noch unterwegs, ich habe meine Action erstellt in dem ich einen Tag mitgebe der beim Klick auf den entsprechenden Button wieder beim HA zurückkommt. Auf diesen Tag bzw. dessen Event kann man triggern und dann geht einfach alles :nerd_face:

Ich hab die Trigger auch teilweise in bestehenden Automationen mit integriert, so das ich am Handy mit der Push-Message, in der App, am Computer oder am Dashboard im Flur diesselbe Aktion auslösen kann.

ja sowas würde ich auch machen und bin auf Dein yaml Beispiel gespannt.

Eilt aber nicht und ist auch nur nice-to-have …
und ob das ganze Praxistauglich ist, ist auch noch die Frage.
also würde ich an meinem Handy auf eine Erinnerung klicken, die besagt, daß ich den Müll raustragen muß wenn ich den Job gemacht habe?

Ich habe als Beispiel mal das

alias: "Presence: Everybody leaves home - helper"
description: ""
triggers:
  - entity_id:
      - sensor.abstand_home_nachste_entfernung
    above: 250
    trigger: numeric_state
conditions:
  - condition: state
    entity_id: input_boolean.somebody_is_home
    state: "on"
actions:
  - data:
      title: Alle außer Haus?
      message: Anscheinend ist niemand zu Hause. Sind wirklich alle außer Haus?"
      data:
        actions:
          - action: Somebody_leaves_home_YES
            title: Alle außer Haus!
        ttl: 0
        priority: high
    action: notify.mobile_app_sm_s926b
  - wait_for_trigger:
      - event_type: mobile_app_notification_action
        event_data:
          action: Somebody_leaves_home_YES
        trigger: event
    timeout:
      hours: 1
      minutes: 30
      seconds: 0
      milliseconds: 0
    continue_on_timeout: false
  - data: {}
    target:
      entity_id: all
    action: light.turn_off
  - data: {}
    target:
      entity_id: all
    action: media_player.turn_off
  - data: {}
    target:
      entity_id: input_boolean.somebody_is_home
    action: input_boolean.turn_off
mode: restart

Wichtig sind die beiden

Somebody_leaves_home_YES

Die kannst du aber nennen wie du willst, Hauptsache gleich.

Das erste erscheint in der Nachricht und kann bestätigt werden. Mit wait_for_trigger wird 1h30m darauf gewartet.

2 „Gefällt mir“

ok danke, was ich als einfaches Beispiel sehe ist media_player.turn.off
und die Aktion ist dann offensichtlich
input_boolean.turn_off

muss ich checken, ob ich das hinbekomme …

EDIT:
also das funktioniert nicht sondern bringt die companien app zum Absturz, wenn man klickt…

action: notify.mobile_app_handy_he
data:
  message: Der Trockner ist fertig, hier klicken, wenn ...
  data:
    actions:
      - action: script.trockner_off
        title: ausgeräumt
enabled: true

So hast sowohl den data-Teil als auch den wait_for_trigger eingebunden?

Direkt im Action-Teil das Script ist falsch.

wait for trigger brauche ich nicht.
Die Handynachricht bleibt da, bis man sie entweder weggewischt hat oder auf die Nachricht klickt.

und wie müsste es denn dann richtig heissen?