-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
example-diy-bs-with-features.yaml
277 lines (249 loc) · 5.73 KB
/
example-diy-bs-with-features.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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
# This is for an WT32-ETH01 board with an active buzzer, two WS2812 LEDs and
# two buttons configured. No WiFi, Ehternet is used instead.
substitutions:
device_name: sense-u-bs
friendly_name: Sense-U Baby Tracker Base Station
esphome:
name: ${device_name}
on_boot:
then:
- switch.turn_off: switch_alarm
- switch.turn_off: switch_connected
- light.turn_off: main_light
- light.turn_off: status_light
esp32:
board: esp-wrover-kit
framework:
type: arduino
# Enable logging
logger:
level: ERROR
# Enable Home Assistant API
api:
reboot_timeout: 0s
ota:
external_components:
- source: github://andyboeh/esphome-sense-u
components: senseu
refresh: 60s
ethernet:
type: LAN8720
mdc_pin: GPIO23
mdio_pin: GPIO18
clk_mode: GPIO0_IN
phy_addr: 1
power_pin: GPIO16
esp32_ble_tracker:
ble_client:
- mac_address: AA:BB:CC:DD:EE:FF #update with your Sense-U's MAC address
id: my_senseu_ble
senseu:
- ble_client_id: my_senseu_ble
id: my_senseu
# baby_code is optional. Needs to be retrieved during pairing phase.
# This allows using the Sense-U with multiple devices, e.g. at different
# locations.
# baby_code: aabbccddeeff
# Sensors
sensor:
- platform: senseu
id: my_senseu
breath_rate:
name: Breath Rate
temperature:
name: Temperature
humidity:
name: Humidity
battery_level:
name: Battery Level
# Uptime sensor
- platform: uptime
name: ${friendly_name} Uptime
# Sync time with Home Assistant
time:
- platform: homeassistant
id: homeassistant_time
timezone: Europe/Vienna
script:
- id: script_button_touch
mode: restart
then:
- delay: 1s
- if:
condition:
switch.is_on: senseu_power_switch
then:
- switch.turn_off: senseu_power_switch
- switch.turn_off: switch_connected
else:
- switch.turn_on: senseu_power_switch
- switch.turn_off: switch_connected
- id: script_notify_local
mode: restart
then:
- light.turn_on:
id: main_light
effect: pulse
red: 100%
green: 0%
blue: 0%
- delay: 20s
- repeat:
count: 1000
then:
- output.turn_on: buzzer
- delay: 0.5s
- output.turn_off: buzzer
- delay: 0.5s
# Text sensors with general information
text_sensor:
- platform: senseu
id: my_senseu
posture:
name: Posture
status:
name: State
binary_sensor:
- platform: gpio
pin:
number: GPIO15
inverted: yes
mode: INPUT_PULLUP
name: "Reset Button"
id: reset_button
filters:
- delayed_on: 50ms
- delayed_off: 50ms
- platform: gpio
pin:
number: GPIO14
inverted: yes
mode: INPUT_PULLUP
id: touch_sensor
name: "Touch Sensor"
filters:
- delayed_on: 50ms
- delayed_off: 50ms
on_press:
then:
- script.execute: script_button_touch
on_release:
then:
- script.stop: script_button_touch
on_click:
then:
- switch.turn_off: switch_alarm
- platform: senseu
id: my_senseu
breath:
name: Breath Alarm
on_press:
then:
- switch.turn_on: switch_alarm
on_release:
then:
- switch.turn_off: switch_alarm
posture:
name: Posture Alarm
on_press:
then:
- switch.turn_on: switch_alarm
on_release:
then:
- switch.turn_off: switch_alarm
temperature:
name: Temperature Alarm
battery:
name: Battery Alarm
connected:
name: Sense-U Connected
on_press:
then:
- switch.turn_on: switch_connected
on_release:
then:
- switch.turn_off: switch_connected
switch:
- platform: senseu
senseu_id: my_senseu
name: Power Switch
id: senseu_power_switch
- platform: template
id: switch_connected
assumed_state: true
turn_on_action:
- if:
condition:
switch.is_on: senseu_power_switch
then:
- light.turn_on:
id: status_light
brightness: 20%
green: 100%
blue: 0%
red: 0%
effect: none
turn_off_action:
- if:
condition:
switch.is_on: senseu_power_switch
then:
- light.turn_on:
id: status_light
green: 0%
blue: 0%
red: 100%
effect: pulse
else:
- light.turn_on:
id: status_light
brightness: 20%
green: 0%
blue: 0%
red: 100%
effect: none
- platform: template
id: switch_alarm
assumed_state: true
turn_on_action:
- script.execute: script_notify_local
turn_off_action:
- script.stop: script_notify_local
- output.turn_off: buzzer
- light.turn_off: main_light
# Factory Reset Button
button:
- platform: factory_reset
name: Restart with Factory Default Settings
# Configure the output
output:
- platform: gpio
pin:
number: GPIO33
inverted: no
id: buzzer
light:
- platform: neopixelbus
variant: WS2812
pin: GPIO12
num_leds: 2
name: "Status Lights"
id: status_lights
- platform: partition
name: "Status Light"
id: status_light
segments:
- id: status_lights
from: 0
to: 0
effects:
- pulse:
- platform: partition
name: "Main Light"
id: main_light
segments:
- id: status_lights
from: 1
to: 1
effects:
- pulse: