-
Notifications
You must be signed in to change notification settings - Fork 0
/
esp32_test.yaml
155 lines (137 loc) · 4.47 KB
/
esp32_test.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
substitutions:
devicename: esp32
upper_devicename: ESP32
esphome:
name: esp32_test
platform: ESP32
board: esp-wrover-kit
wifi:
ssid: "Your_SSID"
password: !secret Wifi_Password #Assumes the use of the ESPHome sercrets.yaml
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esp32 Test Fallback Hotspot"
password: !secret AP_Password #Assumes the use of the ESPHome sercrets.yaml
captive_portal:
# Enable logging
logger:
# Enable Home Assistant API
api:
password: !secret OTA_Password #Assumes the use of the ESPHome sercrets.yaml
ota:
password: !secret OTA_Password #Assumes the use of the ESPHome sercrets.yaml
spi: #define the SPI interface on the ESP32
clk_pin: 18
mosi_pin: 23
miso_pin: 19
id: spi1
i2c: #define the I2C interface on the ESP32
sda: 21
scl: 22
id: i2c_1
esp32_touch: #define the touch interface on the ESP32
setup_mode: False
sensor:
- platform: wifi_signal
name: ${upper_devicename} Wifi
- platform: bme280 #temperature-Presure and Humidity sensor
temperature:
name: ${upper_devicename} Temperature
id: test_temp
oversampling: 16x
pressure:
name: ${upper_devicename} Pressure
id: test_pres
humidity:
name: ${upper_devicename} Humidity
id: test_humid
address: 0x76
update_interval: 60s
- platform: bh1750 #Ambient light sensor
name: ${upper_devicename} light
id: test_ambi
update_interval: 30s
internal: true
- platform: ccs811 #eCO2 and tVOC sensor
eco2:
name: ${upper_devicename} eCO2 Value
id: test_eco2
tvoc:
name: ${upper_devicename} Total Volatile Organic Compound
id: test_tvoc
temperature: test_temp
humidity: test_humid
update_interval: 60s
binary_sensor:
- platform: gpio #Physical touch button 1 - Sonos On/Off
pin:
number: 2
mode: INPUT_PULLUP
name: "Touch Button T1"
id: 't1_touch_button'
filters:
- delayed_on: 100ms
- platform: gpio #Physical touch button 2 - Sonos Next track
pin:
number: 34
mode: INPUT_PULLUP
name: "Touch Button T2"
id: 't2_touch_button'
filters:
- delayed_on: 100ms
- platform: gpio
pin:
number: 4 #Physical touch button 3 - Sonos Previous track
mode: INPUT_PULLUP
name: "Touch Button T3"
id: 't3_touch_button'
filters:
- delayed_on: 100ms
- platform: esp32_touch #Captive touch though "open wire" - Sonos volume up
name: "ESP32 Touch Pad 32"
pin: 32
threshold: 1000
- platform: esp32_touch #Captive touch though "open wire" - Sonos volume down
name: "ESP32 Touch Pad 33"
pin: 33
threshold: 1000
text_sensor: #Sensor to get Sonos data from Home Assistant
- platform: homeassistant
name: "Title Song Sonos Joachim"
id: sonos_player_title
entity_id: sensor.media_player_title #Links to the template sensor in your Home Assistant configuration.yaml
internal: true
- platform: homeassistant
name: "Artist Song Sonos Joachim"
id: sonos_player_artist
entity_id: sensor.media_player_artist #Links to the template sensor in your Home Assistant configuration.yaml
internal: true
- platform: homeassistant
name: "State Sonos Joachim"
entity_id: sensor.media_player_state #Links to the template sensor in your Home Assistant configuration.yaml
id: sonos_player_state
internal: true
font: #make sure you have these fonts included in the ESPhome directory. This font can be downloaded from: https://fonts.google.com/specimen/Open+Sans
- file: 'fonts/OpenSans-Light.ttf'
id: os10
size: 10
- file: 'fonts/OpenSans-Light.ttf'
id: os12
size: 12
display:
- platform: ssd1306_spi #SPI based OLED display
model: "SSD1306 128x64"
cs_pin: 5
dc_pin: 25
reset_pin: 27
lambda: |-
it.printf(0, 5, id(os10), "T: %.1f°C", id(test_temp).state);
it.printf(0, 20, id(os10), "H: %.1f%%", id(test_humid).state);
it.printf(50, 5, id(os10), "P: %.1fhPA", id(test_pres).state);
it.printf(50, 20, id(os10), "eCO2: %.1fppm", id(test_eco2).state);
if (id(sonos_player_state).state == "on") {
it.printf(0, 35, id(os12), TextAlign::BASELINE_LEFT, "Art: %s", id(sonos_player_artist).state.c_str());
it.printf(0, 50, id(os12), TextAlign::BASELINE_LEFT, "Song: %s", id(sonos_player_title).state.c_str());
} else {
it.printf(0, 35, id(os12), TextAlign::BASELINE_LEFT, "Sonos Player is %s", id(sonos_player_state).state.c_str());
}