-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathesphome.yaml
246 lines (212 loc) · 5.53 KB
/
esphome.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
esphome:
name: eufy-robovac-g10-hybrid
# will be supported in an upcoming release
friendly_name: Eufy Robovac G10 Hybrid
esp8266:
board: esp01_1m
api:
encryption:
key: !secret robovac_encryption_key
ota:
- platform: esphome
password: !secret robovac_ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
fast_connect: true
ap:
ssid: Eufy-Robovac Fallback Hotspot
password: !secret robovac_fallback_ap_password
captive_portal:
# Tuya supports sending time to the application processor and the vacuum does use it (not sure for why though) so let's configure a time reference
time:
- platform: homeassistant
id: time_source
# UART will be used to talk to the application processor, so we need to disable any logging over it
logger:
baud_rate: 0
# UART to talk to the application processor
uart:
id: vacuum_uart
rx_pin: GPIO3
tx_pin: GPIO1
baud_rate: 115200
debug: null
# the TuyaMCU object
tuya:
id: vacuum_tuya
uart_id: vacuum_uart
time_id: time_source
number:
- platform: tuya
name: Volume
number_datapoint: 111
min_value: 0
max_value: 10
step: 1
entity_category: config
device_class: volume
icon: mdi:volume-high
sensor:
- platform: tuya
name: Battery
sensor_datapoint: 104
unit_of_measurement: "%"
icon: mdi:battery
device_class: battery
state_class: measurement
entity_category: diagnostic
- platform: tuya
name: Last clean time
sensor_datapoint: 109
unit_of_measurement: seconds
icon: mdi:timer-sync
device_class: duration
state_class: total_increasing
entity_category: diagnostic
- platform: tuya
name: Last clean area
sensor_datapoint: 110
icon: mdi:map-marker
entity_category: diagnostic
- platform: tuya
name: Total clean time
sensor_datapoint: 119
unit_of_measurement: seconds
icon: mdi:timer-sync
device_class: duration
state_class: total_increasing
entity_category: diagnostic
- platform: tuya
name: Total clean area
sensor_datapoint: 120
icon: mdi:map-marker
entity_category: diagnostic
- platform: tuya
name: Side brush time
sensor_datapoint: 112
unit_of_measurement: seconds
icon: mdi:broom
device_class: duration
state_class: total_increasing
entity_category: diagnostic
- platform: tuya
name: Main brush time
sensor_datapoint: 113
unit_of_measurement: seconds
icon: mdi:broom
device_class: duration
state_class: total_increasing
entity_category: diagnostic
- platform: tuya
name: Filter time
sensor_datapoint: 114
unit_of_measurement: seconds
icon: mdi:air-filter
device_class: duration
state_class: total_increasing
entity_category: diagnostic
- platform: tuya
name: Sensor time
sensor_datapoint: 127
unit_of_measurement: seconds
icon: mdi:leak
device_class: duration
state_class: total_increasing
entity_category: diagnostic
button:
- platform: template
name: Reset side brush time
icon: mdi:broom
entity_category: config
on_press:
- lambda: id(vacuum_tuya).force_set_enum_datapoint_value(115, 0);
- platform: template
name: Reset main brush time
icon: mdi:broom
entity_category: config
on_press:
- lambda: id(vacuum_tuya).force_set_enum_datapoint_value(115, 1);
- platform: template
name: Reset filter time
icon: mdi:air-filter
entity_category: config
on_press:
- lambda: id(vacuum_tuya).force_set_enum_datapoint_value(115, 2);
- platform: template
name: Reset sensor time
icon: mdi:leak
entity_category: config
on_press:
- lambda: id(vacuum_tuya).force_set_enum_datapoint_value(115, 3);
- platform: template
name: Start cleaning
entity_category: config
on_press:
- lambda: id(vacuum_tuya).force_set_enum_datapoint_value(5, 0);
- platform: template
name: Start spot cleaning
entity_category: config
on_press:
- lambda: id(vacuum_tuya).force_set_enum_datapoint_value(5, 2);
- platform: template
name: Pause
entity_category: config
on_press:
- lambda: id(vacuum_tuya).force_set_enum_datapoint_value(122, 1);
- platform: template
name: Resume
entity_category: config
on_press:
- lambda: id(vacuum_tuya).force_set_enum_datapoint_value(122, 2);
- platform: template
name: Return to dock
entity_category: config
on_press:
- lambda: id(vacuum_tuya).force_set_boolean_datapoint_value(101, true);
select:
- platform: tuya
id: status_dp
enum_datapoint: 15
options:
0: Running
1: Idle
2: Sleeping
3: Charging
4: Charged
5: Docking
on_value: &publish_state_sensor
then:
- text_sensor.template.publish:
id: state_sensor
state: !lambda 'return (id(pause_dp).state == "Paused" && id(status_dp).state == "Idle") ? "Paused" : id(status_dp).state;'
- platform: tuya
id: pause_dp
enum_datapoint: 122
options:
1: Paused
2: Resume
on_value: *publish_state_sensor
- platform: tuya
name: Fan speed
enum_datapoint: 102
entity_category: config
options:
1: Standard
2: Max
text_sensor:
- platform: template
name: State
entity_category: diagnostic
id: state_sensor
switch:
- platform: tuya
name: Locate
icon: mdi:map-marker
entity_category: config
switch_datapoint: 103
- platform: tuya
name: Auto-return cleaning
icon: mdi:restore
entity_category: config
switch_datapoint: 135