Files
esphome-configs/espwater.yaml
2021-12-05 14:33:07 +00:00

215 lines
4.6 KiB
YAML

esphome:
name: espwater
platform: ESP32
board: nodemcu-32s
logger:
api:
password: "feelhome123"
ota:
password: "5h4554h5x4th5x4d"
wifi:
ssid: "lauIOT"
password: "superiot1"
domain: .home.cabestan.be
ap:
ssid: "Espwater Fallback Hotspot"
password: "jTlMOFiFOzog"
captive_portal:
web_server:
port: 80
mqtt:
broker: hass20.home.cabestan.be
username: espsalon
password: sala45224
on_message:
topic: espwater/set_total_drop
qos: 0
then:
lambda: |-
// sprintf(id(lcd_line1),"|%s|%u|",x.c_str(),atol(x.c_str()));
id(drops_absolute) = atol(x.c_str())*4;
sprintf(id(lcd_line1),"Set Total:%u",id(drops_absolute)/4);
globals:
# - id: software_version
# type: float
# initial_value: '0.11'
- id: drops_absolute
type: unsigned long int
restore_value: yes
initial_value: '0'
- id: drops_today
type: int
restore_value: no
initial_value: '0'
# - id: drops_1min
# type: int
# restore_value: no
# initial_value: '0'
- id: lcd_line1
type: char[17]
initial_value: "{' ',' ',' ','I','N','I','T','I','A','L','I','Z','E','\0'}"
# it.strftime(0, 60, id(font2), TextAlign::BASELINE_LEFT, "%H:%M", id(esptime).now());
restore_value: no
- id: lcd_line2
type: char[17]
restore_value: no
initial_value: "{'v','e','r',':',' ','0','.','4','0','\0'}"
time:
- platform: sntp
id: sntp_time
timezone: "Europe/Brussels"
on_time:
- seconds: 0
minutes: 0
hours: 0
then:
lambda: |-
id(drops_today) = 0;
switch:
- platform: restart
name: "ESP Water Restart"
- platform: gpio
id: relay_2
name: "Relay 2"
pin: 25
inverted: true
- platform: gpio
id: co2_drop
name: "Relay CO2"
pin: 26
inverted: true
on_turn_on:
- delay: 60ms
- switch.turn_off: co2_drop
- platform: template
name: "Drop CO2"
id: drop_co2
turn_on_action:
- switch.turn_on: co2_drop
- switch.turn_off: drop_co2
- sensor.template.publish:
id: template_water_absolute
state: !lambda 'return id(drops_absolute)/4;'
- sensor.template.publish:
id: template_water_today
state: !lambda 'return id(drops_today)/4;'
display:
- platform: lcd_gpio
dimensions: 16x2
data_pins:
- 17
- 16
- 4
- 0
enable_pin: 5
rs_pin: 18
id: my_display
lambda: |-
it.printf(0,0,"%s",id(lcd_line1));
it.printf(0,1,"%s",id(lcd_line2));
update_interval: 1s
# sensor:
# - platform: rotary_encoder
# name: "Rotary Encoder"
# pin_a:
# number: 5
# pullup: true
# pin_b:
# number: 7
# pullup: true
sensor:
- platform: template
id: template_water_absolute
name: "Water Total Liters"
lambda: |-
return id(drops_absolute)/4;
update_interval: 60s
- platform: template
id: template_water_today
name: "Water Today Liters"
lambda: |-
return id(drops_today)/4;
update_interval: 60s
binary_sensor:
- platform: gpio
name: "rotary Left"
id: rot_left
pin:
number: 12
mode:
input: true
pullup: true
filters:
- delayed_on: 5ms
- delayed_off: 5ms
- platform: gpio
name: "rotary Right"
id: rot_right
pin:
number: 14
mode:
input: true
pullup: true
filters:
- delayed_on: 5ms
- delayed_off: 5ms
- platform: gpio
name: "rotary Push Button"
id: rot_push
pin:
number: 27
mode:
input: true
pullup: true
filters:
- delayed_on: 20ms
- delayed_off: 100ms
- platform: gpio
name: "push Button"
id: push_button
pin:
number: 13
mode:
input: true
pullup: true
filters:
- delayed_on: 20ms
- delayed_off: 100ms
on_press:
- switch.turn_on: drop_co2
- platform: gpio
name: "Water Hall Sensor"
id: water_relay
pin: 34
filters:
- delayed_on: 2ms
- delayed_off: 50ms
on_press:
- switch.turn_on: drop_co2
- lambda: |-
id(drops_absolute) += 1;
id(drops_today) += 1;
sprintf(id(lcd_line1),"%s%10.1f","Total:",float(id(drops_absolute)*0.25));
sprintf(id(lcd_line2),"%s%10.1f","Today:",float(id(drops_today)*0.25));