/
d1mini-n2.yaml
164 lines (139 loc) · 4.77 KB
/
d1mini-n2.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
# -----------------------------------------------------------------------------
# Wemos d1 mini + MH-Z19B + CCS811
#
# DATE: 2021-09-21
#
# MH-Z19B use UART on pins:
# rx_pin: GPIO3
# tx_pin: GPIO1
#
# CCS811 use i2c on pins:
# sda: GPIO4
# scl: GPIO5
#
# Фильтрация значений - при uptime_sensor < 600s не передавать значения сенсоров
#
# -----------------------------------------------------------------------------
esphome:
name: d1mini-n2
comment: Датчик качества воздуха в спальне
platform: ESP8266
board: d1_mini
# Enable logging
logger:
baud_rate: 0 #disable uart log
# [19:11:25][W][uart:041]: You're using the same serial port for logging and the UART component. Please disable logging over the serial port by setting logger->baud_rate to 0.
# Enable Home Assistant API
api:
ota:
password: !secret ota_password_n2
# WiFi settings
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
reboot_timeout: 30min # время ожидания перед перезагрузкой при отсутствии Wi-Fi-соединения
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: !secret hotspot_wifi_ssid_n2
password: !secret hotspot_wifi_password_n1
# Captive portal резервный механизм для настройки, если подключение к сконфигурированной WiFi сети не удалось
captive_portal:
# включим Web server
web_server:
port: 80
# auth:
# username: admin
# password: !secret web_server_password
# Get the time from Home Assistant to sync the onboard real-time clock.
time:
- platform: homeassistant
id: esptime
# СИСТЕМНЫЕ ШИНЫ
# настроим UART
uart:
rx_pin: GPIO3
tx_pin: GPIO1
baud_rate: 9600
# настроим i2c
i2c:
sda: GPIO4
scl: GPIO5
scan: true # If ESPHome should do a search of the I2C address space on startup. Defaults to true.
# СЕНСОРЫ
sensor:
# MH-Z19 CO_2 and Temperature Sensor
- platform: mhz19
co2:
name: "d1mini-n2 MH-Z19 CO2 Value"
filters:
# костыль 1 - отфильтруем скачки при старте ESP
- lambda: |-
if (id(uptime_sensor).state > 600) return x; else return {};
# костыль 2 - отфильтруем одиночные скачки
- median:
window_size: 7
send_every: 7
send_first_at: 1
temperature:
name: "d1mini-n2 MH-Z19 Temperature"
filters:
- lambda: |-
if (id(uptime_sensor).state > 600) return x; else return {};
update_interval: 65s
automatic_baseline_calibration: false
# CCS811 CO_2 and Volatile Organic Compound Sensor
- platform: ccs811
eco2:
name: "d1mini-n2 CCS811 eCO2 Value"
filters:
- lambda: |-
if (id(uptime_sensor).state > 600) return x; else return {};
tvoc:
name: "d1mini-n2 CCS811 Total Volatile Organic Compound"
filters:
- lambda: |-
if (id(uptime_sensor).state > 600) return x; else return {};
address: 0x5A
update_interval: 60s
#baseline: 0xA483 # Static Calibrating Baseline CCS811
# системные сенсоры
- platform: uptime
name: "d1mini-n2 Uptime Sensor"
id: uptime_sensor
update_interval: 60s
on_raw_value:
then:
- text_sensor.template.publish:
id: uptime_human
state: !lambda |-
int seconds = round(id(uptime_sensor).raw_state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
return (
(days ? String(days) + "d " : "") +
(hours ? String(hours) + "h " : "") +
(minutes ? String(minutes) + "m " : "") +
(String(seconds) + "s")
).c_str();
- platform: wifi_signal
name: "d1mini-n2 WiFi Signal"
update_interval: 60s
# ТЕКСТОВЫЕ СЕНСОРЫ
text_sensor:
# Версия
- platform: version
name: "d1mini-n2 Version"
# Human readable Uptime sensor
- platform: template
name: "d1mini-n2 Uptime Human Readable"
id: uptime_human
icon: mdi:clock-start
# ПЕРЕКЛЮЧАТЕЛИ
switch:
# программный переключатель, который позволит нам перезагрузить устройство из Home Assistant (или путем публикации вручную в MQTT или API)
- platform: restart
name: "d1mini-n2 restart"