Post

Home Assistant - iOS Notification & Action Button

Anleitung zur Einrichtung von iOS Push Notification.

Einleitung

Ich besitze seit kurzem einen 3D Drucker - Artillery Genius. Ein ordentlicher Druck dauert mehrere Stunden und ist oftmals erst mitten in der Nacht fertiggestellt. Deshalb habe ich eine Automation in Home Assistant erstellt, welche mir per iOS Push Notification mitteilt, dass mein Druck fertig ist und per Default den Drucker nach 5 Minuten ausschaltet. Innerhalb dieser 5 Minuten habe ich die Möglichkeit den Ausschaltvorgang abzubrechen um z.B. einen weiteren Druck zu starten.

Achtung: Die Aktion des iOS Button funktioniert im LAN ohne weitere Einstellungen. Willst du die Aktion per Internet ausführen, musst du sicherstellen, dass Home Assistant über das Internet erreichbar ist!

iOS Notification iOS Notification Button

Tools & Devices

Editor: Visual Studio Code
Smart Plug: Gosund WLAN Steckdose + ESPHome Firmware
Controller: Raspberry Pi4 + Hassio
App: Home Assistant Companion

Allgemeine Config

In der Datei configuration.yaml wird der Button welcher auf dem iPhone erscheint erstellt.

Wichtig ist hierbei eindeutige “identifier” Bezeichnungen zu nutzen!

1
2
3
4
5
6
7
8
9
ios:
  push:
    categories:
      - name: '3dprinter'
        identifier: '3dprinter'
        actions:
          - identifier: 'CANCEL_01'
            title: 'Nicht ausschalten'
            destructive: 'true'

Input Boolean

Ich nutze für die Automation einen Input Boolean um den Zustand des iOS Buttons temporär zu speichern. Dieser wird dann in der Automation als Bedingung abgefragt.

1
2
3
4
5
input_boolean:
  ios_button_3dprinter:
    name: Status iOS Button
    initial: off
    icon: mdi:cellphone

Automation 01

Der Zustand ob der Druck abgeschlossen ist erfolgt über den Octoprint Status. Anschließend wird die Benachrichtigung an mein iPhone gesendet. Nach 5 Minuten wird geprüft, ob der iOS Button gedrückt wurde (Automation 02), falls nicht wird der Drucker ausgeschaltet.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
- id: '1578249490920'
  alias: '3D Print finished'
  description: 'turn printer off after 5min'
  trigger:
    - entity_id: sensor.octoprint_current_state
      for: '00:00:05'
      from: 'Printing'
      platform: state
      to: 'Operational'
  condition: []
  action:
    - service: notify.mobile_app_bens_iphone
      data:
        title: "3D-Druck fertig"
        message: "Gerät wird in 5min ausgeschaltet"
        data:
          push:
          #Verweis zum iOS Butten in der configuration.yaml
            category: '3dprinter'
    - delay: '00:05:00'
    - condition: state
      entity_id: input_boolean.ios_button_3dprinter
      state: 'off'
    - entity_id: switch.3d_printer
      service: switch.turn_off

Automation 02

Die zweite Automation wird ausgelöst, wenn der iOS Button gedrückt wurde und der Input Boolean vermerkt den Zustand. Da die Automation 01 nach 5 Minuten beendet ist, wird der Input Boolean nach 05:10 Minuten zurückgesetzt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
- id: '1578249490921'
  alias: '3D Print Push Action'
  description: 'turn 3d print automation off'
  trigger:
    platform: event
    event_type: ios.notification_action_fired
    event_data:
      actionName: CANCEL_01
  condition: []
  action:
    - service: input_boolean.turn_on
      entity_id: input_boolean.ios_button_3dprinter
    - delay: 00:05:10
    - service: input_boolean.turn_off
      entity_id: input_boolean.ios_button_3dprinter
This post is licensed under CC BY 4.0 by the author.