-
Notifications
You must be signed in to change notification settings - Fork 35
/
Copy pathkitchen.yaml
executable file
·129 lines (123 loc) · 3.64 KB
/
kitchen.yaml
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
switch:
# Power Metering Plug Dishwaser
- platform: mystrom
host: 10.10.70.13
name: Plug Dishwasher
sensor:
# Extract power attribute from dishwasher plug
- platform: template
sensors:
power_dishwasher:
friendly_name: Strom Geschirrspüler
unit_of_measurement: "W"
device_class: power
value_template: "{{ state_attr('switch.plug_dishwasher', 'current_power_w') }}"
# Convert power (W) to energy (kWh)
- platform: integration
source: sensor.power_dishwasher
name: energy_dishwasher
unit_prefix: k
round: 2
input_select:
# Dishwasher state
status_dishwasher:
name: Status Geschirrspüler
options:
- Sauber
- Dreckig
- Läuft
# Utility Meter Dishwasher
utility_meter:
energy_quarterly_dishwasher:
source: sensor.energy_dishwasher
cycle: quarterly
tariffs:
- Hochtarif
- Niedertarif
automation:
# Determine Dishwasher State
- id: determine_dishwasher_state
alias: Status Geschirrspüler
mode: single
trigger:
# -> Running
- platform: numeric_state
entity_id: sensor.power_dishwasher
above: 30
for:
minutes: 2
# -> Clean
- platform: numeric_state
entity_id: sensor.power_dishwasher
below: 5
for:
minutes: 35
# -> Dirty
- platform: state
entity_id: input_select.status_dishwasher
to: 'Sauber'
for:
hours: 4
action:
- variables:
new_state: "{{ trigger.to_state.state }}"
- choose:
# -> Running
- conditions:
- "{{ new_state | float > 30 }}"
- "{{ not is_state('input_select.status_dishwasher', 'Läuft') }}"
sequence:
- service: input_select.select_option
data:
entity_id: input_select.status_dishwasher
option: 'Läuft'
# -> Clean
- conditions:
- "{{ new_state | float < 5 }}"
- "{{ is_state('input_select.status_dishwasher', 'Läuft') }}"
sequence:
- service: input_select.select_option
data:
entity_id: input_select.status_dishwasher
option: 'Sauber'
- service: notify.mobile_app_phone_dimitri
data:
title: "🍽️ Geschirrspüler fertig!"
message: >
Der Geschirrspüler ist fertig. Zeit zum ausräumen.
# -> Dirty
- conditions:
- "{{ new_state == 'Sauber' }}"
sequence:
- service: input_select.select_option
data:
entity_id: input_select.status_dishwasher
option: 'Dreckig'
# Entity Customization
homeassistant:
customize:
# Door/Window Sensor
binary_sensor.window_kitchen:
friendly_name: Fenster Küche
device_class: window
binary_sensor.door_kitchen:
friendly_name: Tür Küche
device_class: door
# Waterleak Sensors
binary_sensor.water_leak_kitchen:
friendly_name: Wasserleck Küche
device_class: moisture
# Battery Sensors
sensor.battery_level_door_kitchen:
friendly_name: Tür Sensor Küche
sensor.battery_level_window_kitchen:
friendly_name: Fenster Sensor Küche
sensor.battery_level_water_leak_kitchen:
friendly_name: Wasserleck Sensor Küche
# Smart Plugs
switch.plug_dishwasher:
friendly_name: Plug Geschirrspüler
icon: mdi:dishwasher
sensor.energy_dishwasher:
friendly_name: Konsum Geschirrspüler
device_class: energy