-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathweather_dashboard.yaml
180 lines (148 loc) · 4.45 KB
/
weather_dashboard.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
---
esphome:
name: monitor
platform: ESP32
board: esp-wrover-kit
wifi:
ssid: "REDACTED"
password: "REDACTED"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Monitor Fallback Hotspot"
password: "REDACTED"
captive_portal:
# Enable logging
logger:
level: DEBUG
# Enable Home Assistant API
api:
password: "REDACTED"
ota:
password: "REDACTED"
time:
- platform: homeassistant
id: esptime
# IMAGES
image:
- file: "images/gauge.png"
id: img_pressure
resize: 16x16
type: GRAYSCALE
- file: "images/battery-70.png"
id: img_battery
resize: 16x16
type: GRAYSCALE
- file: "images/molecule-co2.png"
id: img_co2
resize: 16x16
type: GRAYSCALE
- file: "images/temperature-celsius.png"
id: img_temperature
resize: 16x16
type: GRAYSCALE
- file: "images/water.png"
id: img_humidty
resize: 16x16
type: GRAYSCALE
sensor:
- platform: homeassistant
id: inside_temperature
entity_id: sensor.netatmo_mein_haus_wetterstation_temperature
internal: true
- platform: homeassistant
id: inside_co2
entity_id: sensor.netatmo_mein_haus_wetterstation_co2
internal: true
- platform: homeassistant
id: inside_humidty
entity_id: sensor.netatmo_mein_haus_wetterstation_humidity
internal: true
- platform: homeassistant
id: inside_pressure
entity_id: sensor.netatmo_mein_haus_wetterstation_pressure
internal: true
- platform: homeassistant
id: outside_temperature
entity_id: sensor.netatmo_mein_haus_wetterstation_balkon_temperature
internal: true
- platform: homeassistant
id: outside_humidity
entity_id: sensor.netatmo_mein_haus_wetterstation_balkon_humidity
internal: true
- platform: homeassistant
id: outside_battery
entity_id: sensor.netatmo_mein_haus_wetterstation_balkon_battery_percent
internal: true
font:
- file: 'fonts/OpenSans-Regular.ttf'
id: font1
size: 14
- file: 'fonts/OpenSans-Regular.ttf'
id: font2
size: 48
- file: 'fonts/OpenSans-Regular.ttf'
id: font3
size: 11
i2c:
sda: 12
scl: 14
scan: False
display:
- platform: ssd1306_i2c
model: "SH1106 128x64"
reset_pin: 0
address: 0x3C
id: my_display
pages:
- id: page1
lambda: |-
// Headline
it.printf(64, 0, id(font1), TextAlign::TOP_CENTER, "Office");
// inside_temperature
it.image(0, 26, id(img_temperature));
if (id(inside_temperature).has_state()) {
it.printf(55, 38, id(font3), TextAlign::BASELINE_RIGHT , "%.1f°C", id(inside_temperature).state);
}
// inside_humidty
it.image(0, 46, id(img_humidty));
if (id(inside_humidty).has_state()) {
it.printf(55, 58, id(font3), TextAlign::BASELINE_RIGHT , "%.1f%%", id(inside_humidty).state);
}
// inside_co2
it.image(60, 26, id(img_co2));
if (id(inside_co2).has_state()) {
it.printf(127, 38, id(font3), TextAlign::BASELINE_RIGHT , "%.0fppm", id(inside_co2).state);
}
// inside_pressure
it.image(60, 46, id(img_pressure));
if (id(inside_pressure).has_state()) {
it.printf(127, 58, id(font3), TextAlign::BASELINE_RIGHT , "%.0fmbar", id(inside_pressure).state);
}
- id: page2
lambda: |-
// Headline
it.printf(64, 0, id(font1), TextAlign::TOP_CENTER, "Garden");
// outside_temperature
it.image(0, 26, id(img_temperature));
if (id(outside_temperature).has_state()) {
it.printf(55, 38, id(font3), TextAlign::BASELINE_RIGHT , "%.1f°C", id(outside_temperature).state);
}
// outside_humidity
it.image(0, 46, id(img_humidty));
if (id(outside_humidity).has_state()) {
it.printf(55, 58, id(font3), TextAlign::BASELINE_RIGHT , "%.1f%%", id(outside_humidity).state);
}
// outside_battery
it.image(60, 26, id(img_battery));
if (id(outside_battery).has_state()) {
it.printf(127, 38, id(font3), TextAlign::BASELINE_RIGHT , "%.0f%%", id(outside_battery).state);
}
- id: page3
lambda: |-
// Clock
it.strftime(64, 42, id(font2), TextAlign::BASELINE_CENTER, "%H:%M", id(esptime).now());
interval:
- interval: 3s
then:
- display.page.show_next: my_display
- component.update: my_display