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!
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


