-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathwatermeterkit.yaml
204 lines (185 loc) · 4.84 KB
/
watermeterkit.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
#Name of device
substitutions:
device_name: watermeterkit
friendly_name: WaterMeterKit
watermeterkit_software_version: "V1.1"
watermeterkit_hardware_version: "V2"
esphome:
name: ${device_name}
friendly_name: ${friendly_name}
project:
name: "smarthomeshop.watermeterkit"
version: ${watermeterkit_software_version}
esp8266:
board: esp01_1m
restore_from_flash: true
# Enable logging
logger:
# Enable Home Assistant API
api:
#Enable Over the Air updates
ota:
- platform: esphome
dashboard_import:
package_import_url: github://smarthomeshop/watermeterkit/watermeterkit.yaml@main
wifi:
# remove leading '#' and fill in your wifi details
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: ${device_name}
password: ${device_name}
captive_portal:
#Enable web server
web_server:
port: 80
# Status LED of ESP
status_led:
pin: GPIO12
# Switch to restart the watermeter
switch:
- platform: restart
id: switch_restart
name: "${friendly_name} Restart"
# Time for uptime
time:
- platform: homeassistant
id: time_homeassistant
on_time_sync:
- component.update: sensor_uptime_timestamp
- platform: sntp
id: time_sntp
# I²C Bus
#
# This component sets up the I²C bus for the ESP8266.
#
# https://esphome.io/components/i2c.html
#
i2c:
sda: GPIO04
scl: GPIO05
#LED for measure status
output:
- platform: esp8266_pwm
id: output_led_green
pin: GPIO14
- platform: esp8266_pwm
id: output_led_blue
pin: GPIO16
light:
- platform: monochromatic
id: light_led_green
output: output_led_green
- platform: monochromatic
id: light_led_blue
output: output_led_blue
sensor:
#Wifi signal
- platform: wifi_signal
name: "${friendly_name} WiFi Signal"
update_interval: 300s
id: sensor_wifi_signal
# Uptime Sensor
#
# The uptime sensor allows you to track the time the ESP has stayed up for in
# seconds. Time rollovers are automatically handled.
#
# https://esphome.io/components/sensor/uptime.html
#
#
# WARNING! DO NOT USE THIS SENSOR IN HOME ASSISTANT!
#
# I see many of you using this sensor in Home Assistant, but please, don't.
# There is no need to have an update of the uptime, just send the timestamp
# of when the device started ONCE. It will have the same effect and saves
# you system tons of processing and recording.
#
- platform: uptime
id: sensor_uptime
# Uptime Timestamp Sensor
#
# This sensor is an alternative for the uptime sensor, which only sends the
# startup timestamp of the device ONCE! Instead of sending updates to
# Home Assistant constantly.
#
# This saves you tons of updates to be processed and, if recorded/stored in the
# Home Assistant database, many many less rows.
#
# This sensor can be triggered manually and will only update the status once!
#
- platform: template
id: sensor_uptime_timestamp
name: "${friendly_name} Uptime"
device_class: "timestamp"
accuracy_decimals: 0
update_interval: never
lambda: |-
static float timestamp = (
id(time_homeassistant).utcnow().timestamp - id(sensor_uptime).state
);
return timestamp;
#Pulse meter part
- platform: pulse_meter
id: sensor_pulse_meter
name: "${friendly_name} Current Usage"
icon: "mdi:water-pump"
unit_of_measurement: "L/min"
internal_filter_mode: PULSE
timeout: 2min
internal_filter: 200ms
accuracy_decimals: 1
total:
id: sensor_pulse_meter_total
name: "${friendly_name} Total Consumption"
icon: "mdi:cube-outline"
unit_of_measurement: "m³"
state_class: total_increasing
device_class: water
accuracy_decimals: 3
filters:
- multiply: 0.001
pin: GPIO13
on_value:
then:
- light.turn_on:
id: light_led_green
flash_length: 1s
#HDC1080 temp & hum sensor
- platform: hdc1080
temperature:
id: sensor_temperature
name: "Temperature"
filters:
offset: -5.5
humidity:
id: sensor_humidity
name: "Humidity"
filters:
offset: 12
update_interval: 60s
text_sensor:
# IP address #
- platform: wifi_info
ip_address:
name: "IP address"
icon: "mdi:network-outline"
ssid:
name: "Connected SSID"
bssid:
name: "Connected BSSID"
- platform: version
id: text_sensor_version
name: "ESPHome Version"
- platform: template
id: text_sensor_watermeterkit_version
name: "Software version"
update_interval: 5h
lambda: |-
return {"${watermeterkit_software_version}"};
- platform: template
id: text_sensor_watermeterkit_hardware_version
name: "Hardware version"
update_interval: 5h
lambda: |-
return {"${watermeterkit_hardware_version}"};